@shopify/hydrogen-react
Version:
React components, hooks, and utilities for creating custom Shopify storefronts
49 lines (48 loc) • 1.73 kB
JavaScript
;
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