UNPKG

@shopify/hydrogen-react

Version:

React components, hooks, and utilities for creating custom Shopify storefronts

175 lines (174 loc) 4.55 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const cartQueries = require("./cart-queries.js"); const cartHooks = require("./cart-hooks.js"); function useCartActions({ numCartLines, cartFragment, countryCode = "US", languageCode = "EN" }) { const fetchCart = cartHooks.useCartFetch(); const cartFetch = React.useCallback( (cartId) => { return fetchCart({ query: cartQueries.CartQuery(cartFragment), variables: { id: cartId, numCartLines, country: countryCode, language: languageCode } }); }, [fetchCart, cartFragment, numCartLines, countryCode, languageCode] ); const cartCreate = React.useCallback( (cart) => { return fetchCart({ query: cartQueries.CartCreate(cartFragment), variables: { input: cart, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); const cartLineAdd = React.useCallback( (cartId, lines) => { return fetchCart({ query: cartQueries.CartLineAdd(cartFragment), variables: { cartId, lines, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); const cartLineUpdate = React.useCallback( (cartId, lines) => { return fetchCart({ query: cartQueries.CartLineUpdate(cartFragment), variables: { cartId, lines, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); const cartLineRemove = React.useCallback( (cartId, lines) => { return fetchCart({ query: cartQueries.CartLineRemove(cartFragment), variables: { cartId, lines, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); const noteUpdate = React.useCallback( (cartId, note) => { return fetchCart({ query: cartQueries.CartNoteUpdate(cartFragment), variables: { cartId, note, numCartLines, country: countryCode, language: languageCode } }); }, [fetchCart, cartFragment, numCartLines, countryCode, languageCode] ); const buyerIdentityUpdate = React.useCallback( (cartId, buyerIdentity) => { return fetchCart({ query: cartQueries.CartBuyerIdentityUpdate(cartFragment), variables: { cartId, buyerIdentity, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); const cartAttributesUpdate = React.useCallback( (cartId, attributes) => { return fetchCart({ query: cartQueries.CartAttributesUpdate(cartFragment), variables: { cartId, attributes, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); const discountCodesUpdate = React.useCallback( (cartId, discountCodes) => { return fetchCart({ query: cartQueries.CartDiscountCodesUpdate(cartFragment), variables: { cartId, discountCodes, numCartLines, country: countryCode, language: languageCode } }); }, [cartFragment, countryCode, fetchCart, numCartLines, languageCode] ); return React.useMemo( () => ({ cartFetch, cartCreate, cartLineAdd, cartLineUpdate, cartLineRemove, noteUpdate, buyerIdentityUpdate, cartAttributesUpdate, discountCodesUpdate, cartFragment }), [ cartFetch, cartCreate, cartLineAdd, cartLineUpdate, cartLineRemove, noteUpdate, buyerIdentityUpdate, cartAttributesUpdate, discountCodesUpdate, cartFragment ] ); } exports.useCartActions = useCartActions; //# sourceMappingURL=useCartActions.js.map