import {useCallback} from "react"; import { useApolloClient } from "@apollo/client/react"; import { CREATE_SAVE_CHECKOUT_CART } from "@/graphql"; import { SaveCheckoutCartVariables, SaveCheckoutCart } from "@/types/checkout/type"; interface SaveCheckoutCartResult { data: SaveCheckoutCart | null; msg: string; error: boolean; } export const useSaveCheckoutCart = () => { const client = useApolloClient(); const defaultVariables = { shippingMethod: '-1', paymentMethod: '-1', couponCode: '-1', giftCardNumber: '-1', memberDiscount: '-1', useShippingInsurance: '-1', rewardPoints: -1 }; const saveCheckoutCart = useCallback((params: SaveCheckoutCartVariables) => { const variables = Object.assign({},defaultVariables,params); return client.mutate({ mutation: CREATE_SAVE_CHECKOUT_CART, variables: variables //params }).then((res) => { const resData = res.data?.createSaveCheckoutCart.saveCheckoutCart ?? null; const result: SaveCheckoutCartResult = { data:resData, msg: '', error: false }; return result; }).catch((err) => { const result: SaveCheckoutCartResult = { data: null, msg: err.message, error: true }; return result; }); },[client]); return { saveCheckoutCart }; };