UNPKG

@shopify/hydrogen-react

Version:

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

49 lines (48 loc) 1.73 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require$$0 = require("react"); const ShopifyProvider = require("./ShopifyProvider.js"); const cartConstants = require("./cart-constants.js"); const index = require("./node_modules/worktop/cookie/index.js"); function useCartFetch() { const { storeDomain, storefrontApiVersion, storefrontToken, storefrontId } = ShopifyProvider.useShop(); return require$$0.useCallback(({ query, variables }) => { const headers = { "Content-Type": "application/json", "X-SDK-Variant": "hydrogen", "X-SDK-Version": storefrontApiVersion, [cartConstants.STOREFRONT_API_PUBLIC_TOKEN_HEADER]: storefrontToken }; if (storefrontId) { headers[cartConstants.SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId; } const cookieData = index.parse(document.cookie); if (cookieData[cartConstants.SHOPIFY_Y] && cookieData[cartConstants.SHOPIFY_S]) { headers[cartConstants.SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[cartConstants.SHOPIFY_Y]; headers[cartConstants.SHOPIFY_STOREFRONT_S_HEADER] = cookieData[cartConstants.SHOPIFY_S]; } return fetch(`https://${storeDomain}/api/${storefrontApiVersion}/graphql.json`, { method: "POST", headers, body: JSON.stringify({ query: query.toString(), variables }) }).then((res) => res.json()).catch((error) => { return { data: void 0, errors: error.toString() }; }); }, [storeDomain, storefrontApiVersion, storefrontToken, storefrontId]); } exports.useCartFetch = useCartFetch; //# sourceMappingURL=cart-hooks.js.map