@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, {
|
|
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:
|
|
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
|
-
|
|
52
|
+
cache: CacheCustom({ maxAge: 60, staleWhileRevalidate: 300 })
|
|
55
53
|
});
|
|
56
54
|
const preRenderStyleTags = widgetPreRenderStyleTags?.value ?? '';
|
|
57
55
|
if (!preRenderStyleTags) {
|