UNPKG

@revenuecat/purchases-ui-js

Version:

Web components for Paywalls. Powered by RevenueCat

68 lines (67 loc) 2.18 kB
import type { BaseComponent } from "../base"; import type { Overrides } from "../overrides"; import type { SheetProps } from "./sheet"; import type { StackProps } from "./stack"; interface WorkflowAction { type: "workflow"; } interface RestorePurchasesAction { type: "restore_purchases"; } interface NavigateBackAction { type: "navigate_back"; } interface CloseAction { type: "close_workflow"; } interface NavigateToAction { type: "navigate_to"; destination: "customer_center" | "offer_code" | "screen_redirect"; } interface NavigateToSheetAction { type: "navigate_to"; destination: "sheet"; sheet?: SheetProps | null; } interface NavigateToWebPurchase { type: "navigate_to"; destination: "web_paywall_link"; custom_url_options?: unknown; } interface NavigateToUrlAction { type: "navigate_to"; destination: "privacy_policy" | "terms" | "url"; sheet?: null; url: { url_lid: string; method: "deep_link" | "external_browser" | "in_app_browser"; }; } /** Optional query params for complete_workflow URLs (host merges values). */ export type CompleteWorkflowUrlQueryParams = { app_user_id?: boolean; }; /** Args passed to `onCompleteWorkflowNavigate` (host builds final URL if needed). */ export type CompleteWorkflowNavigateArgs = { url: string; method: "deep_link" | "external_browser" | "in_app_browser"; url_query_params?: CompleteWorkflowUrlQueryParams; }; /** End the workflow and open a URL (optional query params, e.g. app user ID). */ interface CompleteWorkflowAction { type: "complete_workflow"; url: { url_lid: string; method: "deep_link" | "external_browser" | "in_app_browser"; }; url_query_params?: CompleteWorkflowUrlQueryParams; } export type Action = WorkflowAction | RestorePurchasesAction | NavigateBackAction | CloseAction | NavigateToAction | NavigateToSheetAction | NavigateToWebPurchase | NavigateToUrlAction | CompleteWorkflowAction; export interface ButtonProps extends BaseComponent { type: "button"; action: Action; stack: StackProps; transition?: null; overrides?: Overrides<ButtonProps>; } export {};