UNPKG

@shopify/hydrogen-react

Version:

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

61 lines (60 loc) 1.95 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const React = require("react"); const ShopifyProvider = require("./ShopifyProvider.js"); const cartConstants = require("./cart-constants.js"); const trackingUtils = require("./tracking-utils.js"); function useCartFetch() { const { storefrontId, getPublicTokenHeaders, getStorefrontApiUrl, sameDomainForStorefrontApi } = ShopifyProvider.useShop(); return React.useCallback( ({ query, variables }) => { const headers = getPublicTokenHeaders({ contentType: "json" }); if (storefrontId) { headers[cartConstants.SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId; } if (!sameDomainForStorefrontApi) { const { uniqueToken, visitToken } = trackingUtils.getTrackingValues(); if (uniqueToken) { headers[cartConstants.SHOPIFY_STOREFRONT_Y_HEADER] = uniqueToken; headers[trackingUtils.SHOPIFY_UNIQUE_TOKEN_HEADER] = uniqueToken; } if (visitToken) { headers[cartConstants.SHOPIFY_STOREFRONT_S_HEADER] = visitToken; headers[trackingUtils.SHOPIFY_VISIT_TOKEN_HEADER] = visitToken; } } return fetch(getStorefrontApiUrl(), { method: "POST", headers, body: JSON.stringify({ query: query.toString(), variables }) }).then( (res) => res.json() ).catch((error) => { return { data: void 0, // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call errors: error == null ? void 0 : error.toString() }; }); }, [ getPublicTokenHeaders, storefrontId, getStorefrontApiUrl, sameDomainForStorefrontApi ] ); } exports.useCartFetch = useCartFetch; //# sourceMappingURL=cart-hooks.js.map