@shopify/hydrogen-react 2024.1.1 → 2024.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/customer-account.schema.json +1 -1
  2. package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
  3. package/dist/browser-dev/CartProvider.mjs +4 -0
  4. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  5. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  6. package/dist/browser-dev/Image.mjs.map +1 -1
  7. package/dist/browser-dev/ModelViewer.mjs +15 -15
  8. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  9. package/dist/browser-dev/Money.mjs.map +1 -1
  10. package/dist/browser-dev/Video.mjs.map +1 -1
  11. package/dist/browser-dev/analytics-constants.mjs +5 -1
  12. package/dist/browser-dev/analytics-constants.mjs.map +1 -1
  13. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  14. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  15. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  16. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  17. package/dist/browser-dev/analytics.mjs +13 -2
  18. package/dist/browser-dev/analytics.mjs.map +1 -1
  19. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  20. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  21. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  22. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  23. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  24. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  25. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  26. package/dist/browser-dev/storefront-client.mjs +18 -16
  27. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  28. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  29. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  30. package/dist/browser-dev/useShopifyCookies.mjs +1 -1
  31. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -1
  32. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  33. package/dist/browser-prod/CartProvider.mjs +4 -0
  34. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  35. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  36. package/dist/browser-prod/Image.mjs.map +1 -1
  37. package/dist/browser-prod/ModelViewer.mjs +15 -15
  38. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  39. package/dist/browser-prod/Money.mjs.map +1 -1
  40. package/dist/browser-prod/Video.mjs.map +1 -1
  41. package/dist/browser-prod/analytics-constants.mjs +5 -1
  42. package/dist/browser-prod/analytics-constants.mjs.map +1 -1
  43. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  44. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  45. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  46. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  47. package/dist/browser-prod/analytics.mjs +13 -2
  48. package/dist/browser-prod/analytics.mjs.map +1 -1
  49. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  50. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  51. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  52. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  53. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  54. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  55. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  56. package/dist/browser-prod/storefront-client.mjs +16 -16
  57. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  58. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  59. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  60. package/dist/browser-prod/useShopifyCookies.mjs +1 -1
  61. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -1
  62. package/dist/node-dev/CartLineProvider.js.map +1 -1
  63. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  64. package/dist/node-dev/CartProvider.js +4 -0
  65. package/dist/node-dev/CartProvider.js.map +1 -1
  66. package/dist/node-dev/CartProvider.mjs +4 -0
  67. package/dist/node-dev/CartProvider.mjs.map +1 -1
  68. package/dist/node-dev/ExternalVideo.js.map +1 -1
  69. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  70. package/dist/node-dev/Image.js.map +1 -1
  71. package/dist/node-dev/Image.mjs.map +1 -1
  72. package/dist/node-dev/ModelViewer.js +15 -15
  73. package/dist/node-dev/ModelViewer.js.map +1 -1
  74. package/dist/node-dev/ModelViewer.mjs +15 -15
  75. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  76. package/dist/node-dev/Money.js.map +1 -1
  77. package/dist/node-dev/Money.mjs.map +1 -1
  78. package/dist/node-dev/Video.js.map +1 -1
  79. package/dist/node-dev/Video.mjs.map +1 -1
  80. package/dist/node-dev/analytics-constants.js +5 -1
  81. package/dist/node-dev/analytics-constants.js.map +1 -1
  82. package/dist/node-dev/analytics-constants.mjs +5 -1
  83. package/dist/node-dev/analytics-constants.mjs.map +1 -1
  84. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +83 -5
  85. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  86. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  87. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  88. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +1 -1
  89. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  90. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  91. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  92. package/dist/node-dev/analytics.js +12 -1
  93. package/dist/node-dev/analytics.js.map +1 -1
  94. package/dist/node-dev/analytics.mjs +13 -2
  95. package/dist/node-dev/analytics.mjs.map +1 -1
  96. package/dist/node-dev/codegen.helpers.js.map +1 -1
  97. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  98. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +1 -1
  99. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  100. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  101. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  102. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  103. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  104. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  105. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  106. package/dist/node-dev/storefront-api-constants.js +1 -1
  107. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  108. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  109. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  110. package/dist/node-dev/storefront-client.js +18 -16
  111. package/dist/node-dev/storefront-client.js.map +1 -1
  112. package/dist/node-dev/storefront-client.mjs +18 -16
  113. package/dist/node-dev/storefront-client.mjs.map +1 -1
  114. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  115. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  116. package/dist/node-dev/useCartActions.js.map +1 -1
  117. package/dist/node-dev/useCartActions.mjs.map +1 -1
  118. package/dist/node-dev/useShopifyCookies.js +1 -1
  119. package/dist/node-dev/useShopifyCookies.js.map +1 -1
  120. package/dist/node-dev/useShopifyCookies.mjs +1 -1
  121. package/dist/node-dev/useShopifyCookies.mjs.map +1 -1
  122. package/dist/node-prod/CartLineProvider.js.map +1 -1
  123. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  124. package/dist/node-prod/CartProvider.js +4 -0
  125. package/dist/node-prod/CartProvider.js.map +1 -1
  126. package/dist/node-prod/CartProvider.mjs +4 -0
  127. package/dist/node-prod/CartProvider.mjs.map +1 -1
  128. package/dist/node-prod/ExternalVideo.js.map +1 -1
  129. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  130. package/dist/node-prod/Image.js.map +1 -1
  131. package/dist/node-prod/Image.mjs.map +1 -1
  132. package/dist/node-prod/ModelViewer.js +15 -15
  133. package/dist/node-prod/ModelViewer.js.map +1 -1
  134. package/dist/node-prod/ModelViewer.mjs +15 -15
  135. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  136. package/dist/node-prod/Money.js.map +1 -1
  137. package/dist/node-prod/Money.mjs.map +1 -1
  138. package/dist/node-prod/Video.js.map +1 -1
  139. package/dist/node-prod/Video.mjs.map +1 -1
  140. package/dist/node-prod/analytics-constants.js +5 -1
  141. package/dist/node-prod/analytics-constants.js.map +1 -1
  142. package/dist/node-prod/analytics-constants.mjs +5 -1
  143. package/dist/node-prod/analytics-constants.mjs.map +1 -1
  144. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +83 -5
  145. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  146. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +84 -6
  147. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  148. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +1 -1
  149. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  150. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +1 -1
  151. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  152. package/dist/node-prod/analytics.js +12 -1
  153. package/dist/node-prod/analytics.js.map +1 -1
  154. package/dist/node-prod/analytics.mjs +13 -2
  155. package/dist/node-prod/analytics.mjs.map +1 -1
  156. package/dist/node-prod/codegen.helpers.js.map +1 -1
  157. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  158. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +1 -1
  159. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  160. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +1 -1
  161. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  162. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  163. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  164. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  165. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  166. package/dist/node-prod/storefront-api-constants.js +1 -1
  167. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  168. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  169. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  170. package/dist/node-prod/storefront-client.js +16 -16
  171. package/dist/node-prod/storefront-client.js.map +1 -1
  172. package/dist/node-prod/storefront-client.mjs +16 -16
  173. package/dist/node-prod/storefront-client.mjs.map +1 -1
  174. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  175. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  176. package/dist/node-prod/useCartActions.js.map +1 -1
  177. package/dist/node-prod/useCartActions.mjs.map +1 -1
  178. package/dist/node-prod/useShopifyCookies.js +1 -1
  179. package/dist/node-prod/useShopifyCookies.js.map +1 -1
  180. package/dist/node-prod/useShopifyCookies.mjs +1 -1
  181. package/dist/node-prod/useShopifyCookies.mjs.map +1 -1
  182. package/dist/types/CartLineProvider.d.ts +1 -1
  183. package/dist/types/CartProvider.d.ts +2 -2
  184. package/dist/types/ExternalVideo.d.ts +1 -1
  185. package/dist/types/Image.d.ts +1 -1
  186. package/dist/types/ModelViewer.d.ts +1 -1
  187. package/dist/types/Money.d.ts +1 -1
  188. package/dist/types/Video.d.ts +1 -1
  189. package/dist/types/analytics-constants.d.ts +11 -5
  190. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +4 -0
  191. package/dist/types/analytics-types.d.ts +4 -0
  192. package/dist/types/cart-types.d.ts +2 -0
  193. package/dist/types/codegen.helpers.d.ts +2 -2
  194. package/dist/types/storefront-api-constants.d.ts +1 -1
  195. package/dist/types/storefront-api-types.d.ts +395 -25
  196. package/dist/types/storefront-client.d.ts +2 -2
  197. package/dist/types/useCartAPIStateMachine.d.ts +2 -2
  198. package/dist/types/useCartActions.d.ts +2 -2
  199. package/dist/umd/hydrogen-react.dev.js +136 -41
  200. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  201. package/dist/umd/hydrogen-react.prod.js +17 -18
  202. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  203. package/package.json +3 -3
  204. package/storefront.schema.json +1 -1
@@ -6,12 +6,12 @@ type CartResponse = PartialDeep<CartType, {
6
6
  /**
7
7
  * The `useCartActions` hook returns helper graphql functions for Storefront Cart API
8
8
  *
9
- * See [cart API graphql mutations](https://shopify.dev/api/storefront/2024-01/objects/Cart)
9
+ * See [cart API graphql mutations](https://shopify.dev/api/storefront/2024-04/objects/Cart)
10
10
  */
11
11
  export declare function useCartActions({ numCartLines, cartFragment, countryCode, languageCode, }: {
12
12
  /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */
13
13
  numCartLines?: number;
14
- /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2024-01/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
14
+ /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2024-04/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
15
15
  cartFragment: string;
16
16
  /** The ISO country code for i18n. Default to `US` */
17
17
  countryCode?: CountryCode;
@@ -796,21 +796,24 @@
796
796
  }
797
797
  `
798
798
  );
799
- const SFAPI_VERSION = "2024-01";
800
- const isMockShop = (domain) => domain.includes("mock.shop");
801
- function createStorefrontClient(props) {
802
- const {
803
- storeDomain,
804
- privateStorefrontToken,
805
- publicStorefrontToken,
806
- storefrontApiVersion = SFAPI_VERSION,
807
- contentType
808
- } = props;
799
+ const SFAPI_VERSION = "2024-04";
800
+ const MOCK_SHOP_DOMAIN = "mock.shop";
801
+ const isMockShop = (domain) => domain.includes(MOCK_SHOP_DOMAIN);
802
+ function createStorefrontClient({
803
+ storeDomain,
804
+ privateStorefrontToken,
805
+ publicStorefrontToken,
806
+ storefrontApiVersion = SFAPI_VERSION,
807
+ contentType
808
+ }) {
809
809
  if (!storeDomain) {
810
- throw new Error(
811
- H2_PREFIX_ERROR + `\`storeDomain\` is required when creating a new Storefront client.
812
- Received "${storeDomain}".`
813
- );
810
+ {
811
+ storeDomain = MOCK_SHOP_DOMAIN;
812
+ warnOnce(
813
+ `storeDomain missing, defaulting to ${MOCK_SHOP_DOMAIN}`,
814
+ "info"
815
+ );
816
+ }
814
817
  }
815
818
  if (storefrontApiVersion !== SFAPI_VERSION) {
816
819
  warnOnce(
@@ -891,10 +894,9 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
891
894
  }
892
895
  const warnings = /* @__PURE__ */ new Set();
893
896
  const H2_PREFIX_ERROR = "[h2:error:createStorefrontClient] ";
894
- const H2_PREFIX_WARN = "[h2:warn:createStorefrontClient] ";
895
- const warnOnce = (string) => {
897
+ const warnOnce = (string, type = "warn") => {
896
898
  if (!warnings.has(string)) {
897
- console.warn(H2_PREFIX_WARN + string);
899
+ console[type](`[h2:${type}:createStorefrontClient] ` + string);
898
900
  warnings.add(string);
899
901
  }
900
902
  };
@@ -1750,6 +1752,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
1750
1752
  }
1751
1753
  });
1752
1754
  const cartReady = React$1.useRef(false);
1755
+ const [isCartReady, setIsCartReady] = React$1.useState(false);
1753
1756
  const cartCompleted = cartState.matches("cartCompleted");
1754
1757
  const countryChanged = (cartState.value === "idle" || cartState.value === "error" || cartState.value === "cartCompleted") && countryCode !== ((_c = (_b = (_a = cartState == null ? void 0 : cartState.context) == null ? void 0 : _a.cart) == null ? void 0 : _b.buyerIdentity) == null ? void 0 : _c.countryCode) && !cartState.context.errors;
1755
1758
  const fetchingFromStorage = React$1.useRef(false);
@@ -1768,6 +1771,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
1768
1771
  }
1769
1772
  }
1770
1773
  cartReady.current = true;
1774
+ setIsCartReady(true);
1771
1775
  }
1772
1776
  }, [cart, cartReady, cartSend]);
1773
1777
  React$1.useEffect(() => {
@@ -1846,6 +1850,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
1846
1850
  error: (_b2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _b2.errors,
1847
1851
  totalQuantity: ((_d2 = (_c2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _c2.cart) == null ? void 0 : _d2.totalQuantity) ?? 0,
1848
1852
  cartCreate,
1853
+ cartReady: isCartReady,
1849
1854
  linesAdd(lines) {
1850
1855
  var _a3, _b3;
1851
1856
  if ((_b3 = (_a3 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _a3.cart) == null ? void 0 : _b3.id) {
@@ -1909,6 +1914,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
1909
1914
  };
1910
1915
  }, [
1911
1916
  cartCreate,
1917
+ isCartReady,
1912
1918
  (_f = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _f.cart,
1913
1919
  (_g = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _g.errors,
1914
1920
  cartDisplayState.value,
@@ -2252,7 +2258,11 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2252
2258
  }
2253
2259
  const AnalyticsEventName = {
2254
2260
  PAGE_VIEW: "PAGE_VIEW",
2255
- ADD_TO_CART: "ADD_TO_CART"
2261
+ ADD_TO_CART: "ADD_TO_CART",
2262
+ PAGE_VIEW_2: "PAGE_VIEW_2",
2263
+ COLLECTION_VIEW: "COLLECTION_VIEW",
2264
+ PRODUCT_VIEW: "PRODUCT_VIEW",
2265
+ SEARCH_VIEW: "SEARCH_VIEW"
2256
2266
  };
2257
2267
  const AnalyticsPageType = {
2258
2268
  article: "article",
@@ -2355,7 +2365,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2355
2365
  addDataIf(
2356
2366
  {
2357
2367
  pageType: pageViewPayload.pageType,
2358
- customerId: pageViewPayload.customerId,
2368
+ customerId: parseInt(parseGid(pageViewPayload.customerId).id || "0"),
2359
2369
  resourceType,
2360
2370
  resourceId: parseInt(id)
2361
2371
  },
@@ -2400,12 +2410,15 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2400
2410
  const PRODUCT_PAGE_RENDERED_EVENT_NAME = "product_page_rendered";
2401
2411
  const PRODUCT_ADDED_TO_CART_EVENT_NAME = "product_added_to_cart";
2402
2412
  const SEARCH_SUBMITTED_EVENT_NAME = "search_submitted";
2413
+ function prepareAdditionalPayload(payload) {
2414
+ return {
2415
+ canonical_url: payload.canonicalUrl || payload.url,
2416
+ customer_id: parseInt(parseGid(payload.customerId).id || "0")
2417
+ };
2418
+ }
2403
2419
  function pageView(payload) {
2404
2420
  const pageViewPayload = payload;
2405
- const additionalPayload = {
2406
- canonical_url: pageViewPayload.canonicalUrl || pageViewPayload.url,
2407
- customer_id: pageViewPayload.customerId
2408
- };
2421
+ const additionalPayload = prepareAdditionalPayload(pageViewPayload);
2409
2422
  const pageType = pageViewPayload.pageType;
2410
2423
  const pageViewEvents = [];
2411
2424
  pageViewEvents.push(
@@ -2470,6 +2483,74 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2470
2483
  }
2471
2484
  return pageViewEvents;
2472
2485
  }
2486
+ function pageView2(payload) {
2487
+ const pageViewPayload = payload;
2488
+ const additionalPayload = prepareAdditionalPayload(pageViewPayload);
2489
+ return [
2490
+ schemaWrapper(
2491
+ SCHEMA_ID,
2492
+ addDataIf(
2493
+ {
2494
+ event_name: PAGE_RENDERED_EVENT_NAME,
2495
+ ...additionalPayload
2496
+ },
2497
+ formatPayload(pageViewPayload)
2498
+ )
2499
+ )
2500
+ ];
2501
+ }
2502
+ function collectionView(payload) {
2503
+ const pageViewPayload = payload;
2504
+ const additionalPayload = prepareAdditionalPayload(pageViewPayload);
2505
+ return [
2506
+ schemaWrapper(
2507
+ SCHEMA_ID,
2508
+ addDataIf(
2509
+ {
2510
+ event_name: COLLECTION_PAGE_RENDERED_EVENT_NAME,
2511
+ ...additionalPayload,
2512
+ collection_name: pageViewPayload.collectionHandle
2513
+ },
2514
+ formatPayload(pageViewPayload)
2515
+ )
2516
+ )
2517
+ ];
2518
+ }
2519
+ function productView(payload) {
2520
+ const pageViewPayload = payload;
2521
+ const additionalPayload = prepareAdditionalPayload(pageViewPayload);
2522
+ return [
2523
+ schemaWrapper(
2524
+ SCHEMA_ID,
2525
+ addDataIf(
2526
+ {
2527
+ event_name: PRODUCT_PAGE_RENDERED_EVENT_NAME,
2528
+ ...additionalPayload,
2529
+ products: formatProductPayload(pageViewPayload.products),
2530
+ total_value: pageViewPayload.totalValue
2531
+ },
2532
+ formatPayload(pageViewPayload)
2533
+ )
2534
+ )
2535
+ ];
2536
+ }
2537
+ function searchView(payload) {
2538
+ const pageViewPayload = payload;
2539
+ const additionalPayload = prepareAdditionalPayload(pageViewPayload);
2540
+ return [
2541
+ schemaWrapper(
2542
+ SCHEMA_ID,
2543
+ addDataIf(
2544
+ {
2545
+ event_name: SEARCH_SUBMITTED_EVENT_NAME,
2546
+ ...additionalPayload,
2547
+ search_string: pageViewPayload.searchString
2548
+ },
2549
+ formatPayload(pageViewPayload)
2550
+ )
2551
+ )
2552
+ ];
2553
+ }
2473
2554
  function addToCart(payload) {
2474
2555
  const addToCartPayload = payload;
2475
2556
  const cartToken = parseGid(addToCartPayload.cartId);
@@ -2483,7 +2564,10 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2483
2564
  customerId: addToCartPayload.customerId,
2484
2565
  cart_token,
2485
2566
  total_value: addToCartPayload.totalValue,
2486
- products: formatProductPayload(addToCartPayload.products)
2567
+ products: formatProductPayload(addToCartPayload.products),
2568
+ customer_id: parseInt(
2569
+ parseGid(addToCartPayload.customerId).id || "0"
2570
+ )
2487
2571
  },
2488
2572
  formatPayload(addToCartPayload)
2489
2573
  )
@@ -2536,8 +2620,8 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2536
2620
  if (!payload.hasUserConsent)
2537
2621
  return Promise.resolve();
2538
2622
  let events = [];
2623
+ const pageViewPayload = payload;
2539
2624
  if (eventName === AnalyticsEventName.PAGE_VIEW) {
2540
- const pageViewPayload = payload;
2541
2625
  events = events.concat(
2542
2626
  pageView$1(pageViewPayload),
2543
2627
  pageView(pageViewPayload)
@@ -2546,6 +2630,17 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2546
2630
  events = events.concat(
2547
2631
  addToCart(payload)
2548
2632
  );
2633
+ } else if (eventName === AnalyticsEventName.PAGE_VIEW_2) {
2634
+ events = events.concat(
2635
+ pageView$1(pageViewPayload),
2636
+ pageView2(pageViewPayload)
2637
+ );
2638
+ } else if (eventName === AnalyticsEventName.COLLECTION_VIEW) {
2639
+ events = events.concat(collectionView(pageViewPayload));
2640
+ } else if (eventName === AnalyticsEventName.PRODUCT_VIEW) {
2641
+ events = events.concat(productView(pageViewPayload));
2642
+ } else if (eventName === AnalyticsEventName.SEARCH_VIEW) {
2643
+ events = events.concat(searchView(pageViewPayload));
2549
2644
  }
2550
2645
  if (events.length) {
2551
2646
  return sendToShopify(events, shopDomain);
@@ -3444,22 +3539,22 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3444
3539
  module: true
3445
3540
  }
3446
3541
  );
3447
- const hydrogenEventListener = {
3448
- error: passthroughProps.onError,
3449
- load: passthroughProps.onLoad,
3450
- preload: passthroughProps.onPreload,
3451
- "model-visibility": passthroughProps.onModelVisibility,
3452
- progress: passthroughProps.onProgress,
3453
- "ar-status": passthroughProps.onArStatus,
3454
- "ar-tracking": passthroughProps.onArTracking,
3455
- "quick-look-button-tapped": passthroughProps.onQuickLookButtonTapped,
3456
- "camera-change": passthroughProps.onCameraChange,
3457
- "environment-change": passthroughProps.onEnvironmentChange,
3458
- play: passthroughProps.onPlay,
3459
- pause: passthroughProps.onPause,
3460
- "scene-graph-ready": passthroughProps.onSceneGraphReady
3461
- };
3462
3542
  React$1.useEffect(() => {
3543
+ const hydrogenEventListener = {
3544
+ error: passthroughProps.onError,
3545
+ load: passthroughProps.onLoad,
3546
+ preload: passthroughProps.onPreload,
3547
+ "model-visibility": passthroughProps.onModelVisibility,
3548
+ progress: passthroughProps.onProgress,
3549
+ "ar-status": passthroughProps.onArStatus,
3550
+ "ar-tracking": passthroughProps.onArTracking,
3551
+ "quick-look-button-tapped": passthroughProps.onQuickLookButtonTapped,
3552
+ "camera-change": passthroughProps.onCameraChange,
3553
+ "environment-change": passthroughProps.onEnvironmentChange,
3554
+ play: passthroughProps.onPlay,
3555
+ pause: passthroughProps.onPause,
3556
+ "scene-graph-ready": passthroughProps.onSceneGraphReady
3557
+ };
3463
3558
  if (!modelViewer) {
3464
3559
  return;
3465
3560
  }
@@ -3869,7 +3964,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
3869
3964
  setCookie(SHOPIFY_Y, "", 0, domain);
3870
3965
  setCookie(SHOPIFY_S, "", 0, domain);
3871
3966
  }
3872
- });
3967
+ }, [options, hasUserConsent, domain]);
3873
3968
  }
3874
3969
  function setCookie(name, value, maxage, domain) {
3875
3970
  document.cookie = l(name, value, {