@swishapp/browser
Version:
JS library to integrate Swish into a browser environment.
83 lines (82 loc) • 3.31 kB
TypeScript
import type { SwishUiManifest, SwishUiOptions } from "../types";
import type { Ref } from "./types";
import type { ShopBridge } from "../utils/shop-bridge";
import "../utils/shop-bridge";
export type * from "./types";
export declare const setConfig: (opts: SwishUiOptions) => void;
export declare const hideModal: (element: string | HTMLElement) => Promise<void>;
export declare const showModal: (element: string | HTMLElement) => Promise<void>;
export declare const showSignIn: (options?: {
returnTo?: string;
}) => Promise<void>;
export declare const showUnsaveAlert: (options: {
itemId: string;
onSubmit?: () => void | Promise<void>;
onCancel?: () => void | Promise<void>;
}) => Promise<void>;
export declare const showDeleteListAlert: (options: {
listId: string;
onSubmit?: () => void | Promise<void>;
onCancel?: () => void | Promise<void>;
}) => Promise<void>;
export declare const showDrawer: () => Promise<void>;
export declare const showListMenu: (options: {
listId: string;
onClose?: (data: {
reason: string;
}) => void;
}) => Promise<void>;
export interface ListSelectOptions<TData = unknown> {
itemId: string;
onSubmit?: (data: TData) => void | Promise<void>;
onClose?: () => void;
}
export declare const showListSelect: <TData = unknown>(options: ListSelectOptions<TData>) => Promise<void>;
export declare const showNotification: (options: {
title?: string;
text: string;
image?: string;
action?: {
label: string;
url?: string;
onAction?: () => void;
};
}) => Promise<void>;
export declare const hideAllNotifications: () => Promise<void>;
export declare const showVariantSelect: <TData = unknown>(options?: {
productId?: string;
productHandle?: string;
variantId?: string;
displayType?: "rows" | "pills";
action?: "none" | "save";
onSubmit: (data: TData) => void | Promise<void>;
}) => Promise<void>;
export declare const showListEditor: <TData = unknown>(options?: {
listId?: string;
variantId?: string;
onSubmit: (data: TData) => void | Promise<void>;
}) => Promise<void>;
export declare const initShopBridge: ({ onShopModalOpen, }: {
onShopModalOpen: () => void;
}) => Promise<ShopBridge>;
export declare const loadManifest: () => Promise<SwishUiManifest>;
export interface RequireUiComponentOptions<TComponent> {
instance?: string;
listeners?: Record<string, (event: Event) => void | Promise<void>>;
onHydrated?: (ref: Ref<TComponent>) => void;
}
export declare const requireUiComponent: <TComponent = unknown>(name: string, options?: RequireUiComponentOptions<TComponent>) => Promise<SwishUiElement>;
export declare const insertComponent: <T extends HTMLElement = SwishUiElement>({ name, instance, template, position, refElement, }: {
name: string;
instance?: string;
template: string;
position: InsertPosition;
refElement: HTMLElement;
}) => Promise<T>;
export declare const queryComponent: <T extends HTMLElement = SwishUiElement>(name: string, instance?: string) => T;
export declare class SwishUiElement extends HTMLElement {
constructor();
private componentRef;
getComponentRef: <TComponent = unknown>() => Ref<TComponent>;
setComponentRef: <TComponent = unknown>(ref: Ref<TComponent>) => void;
}