@shopify/hydrogen-react
Version:
React components, hooks, and utilities for creating custom Shopify storefronts
47 lines (46 loc) • 1.74 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const require$$0 = require("react");
const storefrontApiConstants = require("./storefront-api-constants.js");
const jsxRuntime = require("react/jsx-runtime");
const ShopifyContext = require$$0.createContext({
storeDomain: "test.myshopify.com",
storefrontToken: "abc123",
storefrontApiVersion: storefrontApiConstants.SFAPI_VERSION,
country: {
isoCode: "US"
},
language: {
isoCode: "EN"
},
locale: "EN-US"
});
function ShopifyProvider({
children,
shopifyConfig
}) {
if (!shopifyConfig) {
throw new Error(`The 'shopifyConfig' prop must be passed to '<ShopifyProvider/>'`);
}
if (shopifyConfig.storefrontApiVersion !== storefrontApiConstants.SFAPI_VERSION) {
console.warn(`This version of Hydrogen-UI is built for Shopify's Storefront API version ${storefrontApiConstants.SFAPI_VERSION}, but it looks like you're using version ${shopifyConfig.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`);
}
const finalConfig = require$$0.useMemo(() => ({
...shopifyConfig,
storeDomain: shopifyConfig.storeDomain.replace(/^https?:\/\//, "")
}), [shopifyConfig]);
return /* @__PURE__ */ jsxRuntime.jsx(ShopifyContext.Provider, {
value: finalConfig,
children
});
}
function useShop() {
const shopContext = require$$0.useContext(ShopifyContext);
if (!shopContext) {
throw new Error(`'useShop()' must be a descendent of <ShopifyProvider/>`);
}
return shopContext;
}
exports.ShopifyProvider = ShopifyProvider;
exports.useShop = useShop;
//# sourceMappingURL=ShopifyProvider.js.map