diff --git a/src/types.ts b/src/types.ts index d4c1d48..d90307b 100644 --- a/src/types.ts +++ b/src/types.ts @@ -747,12 +747,20 @@ export interface UpsellModulePromotionalBannerInstance { destroy: () => void } -export interface WidgetUpsellPromotionalBannerOptions { +export type WidgetUpsellPromotionalBannerOptions = + | WidgetUpsellPromotionalBannerSignUpBannerOptions + | WidgetUpsellPromotionalBannerInformationalBannerOptions + | WidgetUpsellPromotionalBannerInformationalLinkOptions + | WidgetUpsellPromotionalBannerInformationalIconOptions + +export interface WidgetUpsellPromotionalBannerSignUpBannerOptions { + /** Promotional banner which allows your customer to join Revolut and get rewards if applicable */ + variant?: 'sign_up' /** Unique id of transaction user has just performed */ transactionId: string - /** Max cashback amount */ + /** Transaction amount */ amount?: number - /** Cashback currency */ + /** Transaction currency */ currency: string /** Prefilled customer details within the banner */ customer?: Partial @@ -765,6 +773,33 @@ export interface WidgetUpsellPromotionalBannerOptions { } } +export interface WidgetUpsellPromotionalBannerInformationalBannerOptions { + /** Promotional banner with a summary of Revolut Pay benefits, allowing to view more details on click */ + variant: 'banner' + /** Checkout amount */ + amount?: number + /** Checkout currency */ + currency: string +} + +export interface WidgetUpsellPromotionalBannerInformationalLinkOptions { + /** Promotional banner displayed as a link, allowing to view Revolut Pay details on click */ + variant: 'link' + /** Checkout amount */ + amount?: number + /** Checkout currency */ + currency: string +} + +export interface WidgetUpsellPromotionalBannerInformationalIconOptions { + /** Promotional banner displayed as an icon, allowing to view Revolut Pay details on click */ + variant: 'icon' + /** Checkout amount */ + amount?: number + /** Checkout currency */ + currency: string +} + export interface UpsellModuleEnrollmentConfirmationBannerInstance { mount: ( target: string | HTMLElement, @@ -783,7 +818,7 @@ export interface WidgetUpsellEnrollmentConfirmationBannerOptions { /** Whether promotional banner should be shown if user has not enrolled */ promotionalBanner?: boolean /** Style object for promotional banner customisation */ - promotionalBannerStyle?: WidgetUpsellPromotionalBannerOptions['style'] + promotionalBannerStyle?: WidgetUpsellPromotionalBannerSignUpBannerOptions['style'] } export interface RevolutUpsellModuleOptions {