@okendo/shopify-hydrogen 1.2.3 → 1.3.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.
@@ -19,5 +19,5 @@ export const OkendoWidgetClient = ({ dataAttributes, metafieldContent = '' }) =>
19
19
  document.removeEventListener('oke-script-loaded', initializeWidget);
20
20
  };
21
21
  }, [dataAttributes]);
22
- return (React.createElement("div", { ref: widgetContainer, ...dataAttributes, dangerouslySetInnerHTML: { __html: metafieldContent } }));
22
+ return (React.createElement("div", { ref: widgetContainer, key: JSON.stringify(dataAttributes), ...dataAttributes, dangerouslySetInnerHTML: { __html: metafieldContent } }));
23
23
  };
@@ -1,16 +1,15 @@
1
+ import { CacheCustom, Head, fetchSync, gql, useShopQuery } from '@shopify/hydrogen';
1
2
  import React from 'react';
2
- import { fetchSync, useShopQuery, gql, CacheShort } from '@shopify/hydrogen';
3
- import { Head } from '@shopify/hydrogen';
4
3
  import { okendoError } from '../shared/errorUtils';
5
- import { useOkendoRequestContext } from '../shared/server/requestUtils';
6
4
  import { logger } from '../shared/logger';
5
+ import { useOkendoRequestContext } from '../shared/server/requestUtils';
7
6
  const kDefaultOkendoApiDomain = 'api.okendo.io/v1';
8
7
  const kDefaultOkendoCdnDomain = 'cdn-static.okendo.io';
9
8
  export const OkendoProvider = ({ apiDomain, cdnDomain, children, productUrlFormatOverride, subscriberId }) => {
10
9
  const okendoRequestContext = useOkendoRequestContext();
11
10
  // Download subscriber widget plus settings.
12
11
  const url = `https://${apiDomain ?? kDefaultOkendoApiDomain}/stores/${subscriberId}/widget_plus_settings`;
13
- const settingsResponse = fetchSync(url, { preload: true });
12
+ const settingsResponse = fetchSync(url, { cache: CacheCustom({ maxAge: 60, staleWhileRevalidate: 300 }) });
14
13
  if (!settingsResponse.ok) {
15
14
  logger.error(okendoError('Failed to retrieve subscriber settings. Please check your environment variables.'));
16
15
  okendoRequestContext.setupFailed = true;
@@ -21,8 +20,7 @@ export const OkendoProvider = ({ apiDomain, cdnDomain, children, productUrlForma
21
20
  const customCssNormalized = customCss ? customCss.replace('<style id="oke-reviews-custom-css">', '').replace('</style>', '') : '';
22
21
  // Download contents of widget initialisation script.
23
22
  const initScriptResponse = fetchSync(`https://${cdnDomain ?? kDefaultOkendoCdnDomain}/reviews-widget-plus/js/okendo-reviews.js`, {
24
- cache: CacheShort(),
25
- preload: true
23
+ cache: CacheCustom({ maxAge: 60, staleWhileRevalidate: 300 })
26
24
  });
27
25
  if (!initScriptResponse.ok) {
28
26
  logger.error(okendoError('Failed to retrieve widget initialization script.'));
@@ -51,7 +49,7 @@ const OkendoProviderContent = ({ children, productUrlFormatOverride, subscriberI
51
49
  `;
52
50
  const { data: { shop: { widgetPreRenderStyleTags } } } = useShopQuery({
53
51
  query,
54
- preload: true
52
+ cache: CacheCustom({ maxAge: 60, staleWhileRevalidate: 300 })
55
53
  });
56
54
  const preRenderStyleTags = widgetPreRenderStyleTags?.value ?? '';
57
55
  if (!preRenderStyleTags) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@okendo/shopify-hydrogen",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "description": "A component library containing Okendo Reviews React components.",
5
5
  "main": "dist/esnext/index.js",
6
6
  "engines": {