Wishlist SDK reference

Wishlist state, mutations and update events.

Import these public values from @upstorr/theme-sdk/v1. Do not import their internal source files.

addThemeWishlistItem

addThemeWishlistItem<TProduct = unknown>(productId: string): Promise<ThemeWishlist<TProduct> | null>

createThemeWishlistView

createThemeWishlistView<TProduct>(wishlist: ThemeWishlist<TProduct> | null | undefined): { readonly wishlist: ThemeWishlist<TProduct> | null; readonly items: import("@upstorr/theme-sdk/v1").ThemeWishlistItem<TProduct>[]; readonly itemCount: number; readonly isEmpty: boolean; }

fetchThemeWishlist

fetchThemeWishlist<TProduct = unknown>(): Promise<ThemeWishlist<TProduct> | null>

getThemeWishlistItems

getThemeWishlistItems<TProduct>(wishlist: ThemeWishlist<TProduct> | null | undefined): import("@upstorr/theme-sdk/v1").ThemeWishlistItem<TProduct>[]

removeThemeWishlistItem

removeThemeWishlistItem<TProduct = unknown>(productId: string): Promise<ThemeWishlist<TProduct> | null>

useThemeProductWishlist

useThemeProductWishlist(productId: string): { readonly isUpdating: boolean; readonly isAdded: boolean; readonly canAdd: boolean; readonly label: "Adding..." | "Added to wishlist" | "Add to wishlist"; readonly message: string | null; readonly add: () => Promise<void>; }

useThemeWishlist

useThemeWishlist<TProduct>(initialWishlist: ThemeWishlist<TProduct> | null): { readonly isSyncing: boolean; readonly showEmptyState: boolean; readonly removingProductId: string | null; readonly error: string | null; readonly removeItem: (productId: string) => Promise<void>; readonly wishlist: ThemeWishlist<TProduct> | null; readonly items: import("@upstorr/theme-sdk/v1").ThemeWishlistItem<TProduct>[]; readonly itemCount: number; readonly isEmpty: boolean; }

useThemeWishlistCartItem

useThemeWishlistCartItem<TVariant extends ThemeProductPurchaseVariant, TProduct extends ThemeProductPurchaseProduct<TVariant>>(product: TProduct): { readonly canAdd: boolean; readonly isUpdating: boolean; readonly isAdded: boolean; readonly label: "Adding..." | "Added to cart" | "Add to cart" | "Unavailable"; readonly message: string | null; readonly add: () => Promise<void>; }