import { FavoriteParams, UnfavoriteParams, } from '@shopify/shop-minis-platform/actions' import {useHandleAction} from '../../internal/useHandleAction' import {useShopActions} from '../../internal/useShopActions' export interface UseSavedProductsActionsReturns { /** * Save a product. */ saveProduct: (params: FavoriteParams) => Promise /** * Unsave a product. */ unsaveProduct: (params: UnfavoriteParams) => Promise } export const useSavedProductsActions = (): UseSavedProductsActionsReturns => { const {favorite, unfavorite} = useShopActions() return { saveProduct: useHandleAction(favorite), unsaveProduct: useHandleAction(unfavorite), } } /** * The `useSavedProductsActions` hook provides mutation functions to save and unsave products (favorites). Returns `saveProduct()` and `unsaveProduct()` functions that accept product IDs and variant information. Saving a product adds it to the user's products collection in the Shop app. Use with `useSavedProducts()` to display current saved status and implement optimistic UI updates. * * * > Caution: This hook requires adding the following scopes to the manifest file: * > * > `product_list:write` * > * > For more details, see [manifest.json](/docs/api/shop-minis/manifest-file). * * @publicDocs */ export type UseSavedProductsActionsGeneratedType = () => UseSavedProductsActionsReturns