@makeswift/runtime 0.9.8 → 0.9.10
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.
- package/dist/PreviewProvider.es.js +2 -2
- package/dist/ReadOnlyText.es.js +1 -1
- package/dist/ReadOnlyTextV2.cjs.js +3 -1
- package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
- package/dist/ReadOnlyTextV2.es.js +4 -2
- package/dist/ReadOnlyTextV2.es.js.map +1 -1
- package/dist/api.cjs.js +19 -0
- package/dist/api.cjs.js.map +1 -1
- package/dist/api.es.js +19 -0
- package/dist/api.es.js.map +1 -1
- package/dist/controls.cjs.js +2 -0
- package/dist/controls.cjs.js.map +1 -1
- package/dist/controls.es.js +1 -1
- package/dist/index.cjs.js +119 -28
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs10.js +6 -2
- package/dist/index.cjs10.js.map +1 -1
- package/dist/index.cjs5.js +30 -75
- package/dist/index.cjs5.js.map +1 -1
- package/dist/index.cjs9.js +4 -1
- package/dist/index.cjs9.js.map +1 -1
- package/dist/index.es.js +120 -29
- package/dist/index.es.js.map +1 -1
- package/dist/index.es10.js +8 -4
- package/dist/index.es10.js.map +1 -1
- package/dist/index.es5.js +31 -73
- package/dist/index.es5.js.map +1 -1
- package/dist/index.es6.js +1 -1
- package/dist/index.es9.js +5 -2
- package/dist/index.es9.js.map +1 -1
- package/dist/react-page.cjs.js +38 -21
- package/dist/react-page.cjs.js.map +1 -1
- package/dist/react-page.es.js +37 -22
- package/dist/react-page.es.js.map +1 -1
- package/dist/slate.cjs.js +69 -6
- package/dist/slate.cjs.js.map +1 -1
- package/dist/slate.es.js +69 -7
- package/dist/slate.es.js.map +1 -1
- package/dist/types/src/api/graphql/documents/fragments.d.ts +1 -0
- package/dist/types/src/api/graphql/documents/fragments.d.ts.map +1 -1
- package/dist/types/src/api/graphql/documents/queries.d.ts +1 -0
- package/dist/types/src/api/graphql/documents/queries.d.ts.map +1 -1
- package/dist/types/src/api/graphql/generated/fragment-document-nodes.d.ts +1 -0
- package/dist/types/src/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -1
- package/dist/types/src/api/graphql/generated/types.d.ts +17 -0
- package/dist/types/src/api/graphql/generated/types.d.ts.map +1 -1
- package/dist/types/src/api/graphql/types.d.ts +3 -3
- package/dist/types/src/api/graphql/types.d.ts.map +1 -1
- package/dist/types/src/api/react.d.ts +13 -2
- package/dist/types/src/api/react.d.ts.map +1 -1
- package/dist/types/src/components/builtin/Text/components/Element/block.d.ts +1 -1
- package/dist/types/src/components/builtin/Text/components/Element/block.d.ts.map +1 -1
- package/dist/types/src/components/builtin/Text/components/Element/element.d.ts.map +1 -1
- package/dist/types/src/components/page/Page.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/fixtures/empty-blocks.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts +3 -0
- package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -0
- package/dist/types/src/controls/rich-text/translation.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text-v2/index.d.ts +1 -0
- package/dist/types/src/controls/rich-text-v2/index.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts +15 -11
- package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text-v2/translation.d.ts +5 -0
- package/dist/types/src/controls/rich-text-v2/translation.d.ts.map +1 -0
- package/dist/types/src/controls/typography.d.ts +2 -2
- package/dist/types/src/controls/typography.d.ts.map +1 -1
- package/dist/types/src/next/api-handler/index.d.ts.map +1 -1
- package/dist/types/src/next/client.d.ts +7 -2
- package/dist/types/src/next/client.d.ts.map +1 -1
- package/dist/types/src/next/index.d.ts.map +1 -1
- package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +1 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/typography.d.ts +5 -5
- package/dist/types/src/runtimes/react/controls/typography.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/hooks/makeswift-api.d.ts +2 -1
- package/dist/types/src/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
- package/dist/types/src/slate/TypographyPlugin/getValue.d.ts +1 -1
- package/dist/types/src/slate/TypographyPlugin/getValue.d.ts.map +1 -1
- package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
- package/dist/types/src/state/makeswift-api-client.d.ts +1 -1
- package/dist/types/src/state/makeswift-api-client.d.ts.map +1 -1
- package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
- package/dist/types.cjs.js +1 -0
- package/dist/types.cjs.js.map +1 -1
- package/dist/types.cjs2.js +1 -5
- package/dist/types.cjs2.js.map +1 -1
- package/dist/types.es.js +1 -0
- package/dist/types.es.js.map +1 -1
- package/dist/types.es2.js +2 -6
- package/dist/types.es2.js.map +1 -1
- package/dist/typography.cjs.js.map +1 -1
- package/dist/typography.es.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -191,7 +191,8 @@ function getInitialState(serializedState = {
|
|
|
191
191
|
Table: [],
|
|
192
192
|
Snippet: [],
|
|
193
193
|
Page: [],
|
|
194
|
-
Site: []
|
|
194
|
+
Site: [],
|
|
195
|
+
LocalizedGlobalElement: []
|
|
195
196
|
}) {
|
|
196
197
|
return new Map(Object.entries(serializedState).map(([apiResourceType, resources]) => [
|
|
197
198
|
apiResourceType,
|
|
@@ -252,7 +253,7 @@ async function fetchJson(url) {
|
|
|
252
253
|
}
|
|
253
254
|
return response.json();
|
|
254
255
|
}
|
|
255
|
-
function fetchAPIResource(resourceType, resourceId) {
|
|
256
|
+
function fetchAPIResource(resourceType, resourceId, locale) {
|
|
256
257
|
return async (dispatch, getState) => {
|
|
257
258
|
const state = getState();
|
|
258
259
|
if (getHasAPIResource(state, resourceType, resourceId)) {
|
|
@@ -272,6 +273,12 @@ function fetchAPIResource(resourceType, resourceId) {
|
|
|
272
273
|
case types.APIResourceType.GlobalElement:
|
|
273
274
|
resource = await fetchJson(`/api/makeswift/global-elements/${resourceId}`);
|
|
274
275
|
break;
|
|
276
|
+
case types.APIResourceType.LocalizedGlobalElement: {
|
|
277
|
+
if (locale == null)
|
|
278
|
+
throw new Error("Locale is required to fetch LocalizedGlobalElement");
|
|
279
|
+
resource = await fetchJson(`/api/makeswift/localized-global-elements/${resourceId}/${locale}`);
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
275
282
|
case types.APIResourceType.PagePathnameSlice:
|
|
276
283
|
resource = await fetchJson(`/api/makeswift/page-pathname-slices/${resourceId}`);
|
|
277
284
|
break;
|
|
@@ -366,6 +373,13 @@ const GlobalElementFragment = `
|
|
|
366
373
|
data
|
|
367
374
|
}
|
|
368
375
|
`;
|
|
376
|
+
const LocalizedGlobalElementFragment = `
|
|
377
|
+
fragment LocalizedGlobalElement on LocalizedGlobalElement {
|
|
378
|
+
__typename
|
|
379
|
+
id
|
|
380
|
+
data
|
|
381
|
+
}
|
|
382
|
+
`;
|
|
369
383
|
const TableFragment = `
|
|
370
384
|
fragment Table on Table {
|
|
371
385
|
__typename
|
|
@@ -465,6 +479,15 @@ const GlobalElementQuery = `
|
|
|
465
479
|
|
|
466
480
|
${GlobalElementFragment}
|
|
467
481
|
`;
|
|
482
|
+
const LocalizedGlobalElementQuery = `
|
|
483
|
+
query LocalizedGlobalElement($globalElementId: ID!, $locale: Locale!) {
|
|
484
|
+
localizedGlobalElement(globalElementId: $globalElementId, locale: $locale) {
|
|
485
|
+
...LocalizedGlobalElement
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
${LocalizedGlobalElementFragment}
|
|
490
|
+
`;
|
|
468
491
|
const CreateTableRecordMutation = `
|
|
469
492
|
mutation CreateTableRecord($input: CreateTableRecordInput!) {
|
|
470
493
|
createTableRecord(input: $input) {
|
|
@@ -477,16 +500,22 @@ const CreateTableRecordMutation = `
|
|
|
477
500
|
class MakeswiftClient {
|
|
478
501
|
constructor({
|
|
479
502
|
uri,
|
|
480
|
-
cacheData
|
|
503
|
+
cacheData,
|
|
504
|
+
localizedResourcesMap = {},
|
|
505
|
+
locale
|
|
481
506
|
}) {
|
|
482
507
|
__publicField(this, "graphqlClient");
|
|
483
508
|
__publicField(this, "makeswiftApiClient");
|
|
484
509
|
__publicField(this, "subscribe");
|
|
510
|
+
__publicField(this, "localizedResourcesMap");
|
|
511
|
+
__publicField(this, "locale");
|
|
485
512
|
this.graphqlClient = new GraphQLClient(uri);
|
|
486
513
|
this.makeswiftApiClient = configureStore({
|
|
487
514
|
serializedState: cacheData
|
|
488
515
|
});
|
|
489
516
|
this.subscribe = this.makeswiftApiClient.subscribe;
|
|
517
|
+
this.localizedResourcesMap = new Map(Object.entries(localizedResourcesMap));
|
|
518
|
+
this.locale = locale;
|
|
490
519
|
}
|
|
491
520
|
readSwatch(swatchId) {
|
|
492
521
|
return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.Swatch, swatchId);
|
|
@@ -512,6 +541,21 @@ class MakeswiftClient {
|
|
|
512
541
|
async fetchGlobalElement(globalElementId) {
|
|
513
542
|
return await this.makeswiftApiClient.dispatch(fetchAPIResource(types.APIResourceType.GlobalElement, globalElementId));
|
|
514
543
|
}
|
|
544
|
+
readLocalizedGlobalElement(globalElementId) {
|
|
545
|
+
const localizedGlobalElementId = this.getLocalizedResourceId(globalElementId);
|
|
546
|
+
if (localizedGlobalElementId == null)
|
|
547
|
+
return null;
|
|
548
|
+
return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.LocalizedGlobalElement, localizedGlobalElementId);
|
|
549
|
+
}
|
|
550
|
+
async fetchLocalizedGlobalElement(globalElementId) {
|
|
551
|
+
const locale = this.locale;
|
|
552
|
+
if (locale == null)
|
|
553
|
+
return null;
|
|
554
|
+
const result = await this.makeswiftApiClient.dispatch(fetchAPIResource(types.APIResourceType.LocalizedGlobalElement, globalElementId, locale));
|
|
555
|
+
if (result != null)
|
|
556
|
+
this.setLocalizedResourceId(globalElementId, result.id);
|
|
557
|
+
return result;
|
|
558
|
+
}
|
|
515
559
|
readPagePathnameSlice(pageId) {
|
|
516
560
|
return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.PagePathnameSlice, pageId);
|
|
517
561
|
}
|
|
@@ -543,6 +587,13 @@ class MakeswiftClient {
|
|
|
543
587
|
readSnippet(snippetId) {
|
|
544
588
|
return getAPIResource(this.makeswiftApiClient.getState(), types.APIResourceType.Snippet, snippetId);
|
|
545
589
|
}
|
|
590
|
+
getLocalizedResourceId(resourceId) {
|
|
591
|
+
var _a, _b;
|
|
592
|
+
return (_b = (_a = this.localizedResourcesMap) == null ? void 0 : _a.get(resourceId)) != null ? _b : null;
|
|
593
|
+
}
|
|
594
|
+
setLocalizedResourceId(resourceId, localizedResourceId) {
|
|
595
|
+
this.localizedResourcesMap.set(resourceId, localizedResourceId);
|
|
596
|
+
}
|
|
546
597
|
}
|
|
547
598
|
const Context$1 = React.createContext(new MakeswiftClient({
|
|
548
599
|
uri: "https://api.makeswift.com/graphql"
|
|
@@ -597,7 +648,7 @@ const filterUsedSnippetProperties = ({
|
|
|
597
648
|
function Page$1({
|
|
598
649
|
document: page
|
|
599
650
|
}) {
|
|
600
|
-
var _a, _b;
|
|
651
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
601
652
|
const isInBuilder = useIsInBuilder();
|
|
602
653
|
const [snippets, setSnippets] = React.useState(page.snippets);
|
|
603
654
|
const cachedPage = useCachedPage(isInBuilder ? page.id : null);
|
|
@@ -611,17 +662,16 @@ function Page$1({
|
|
|
611
662
|
setSnippets(cachedPage.snippets);
|
|
612
663
|
}, [cachedPage]);
|
|
613
664
|
const site = useCachedSite(isInBuilder ? page.site.id : null);
|
|
665
|
+
const baseLocalizedPage = page.localizedPages.find(({
|
|
666
|
+
parentId
|
|
667
|
+
}) => parentId == null);
|
|
614
668
|
const favicon = (_a = page.meta.favicon) != null ? _a : defaultFavicon;
|
|
615
|
-
const
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
const {
|
|
622
|
-
canonicalUrl,
|
|
623
|
-
isIndexingBlocked
|
|
624
|
-
} = page.seo;
|
|
669
|
+
const title = (_b = baseLocalizedPage == null ? void 0 : baseLocalizedPage.meta.title) != null ? _b : page.meta.title;
|
|
670
|
+
const description = (_c = baseLocalizedPage == null ? void 0 : baseLocalizedPage.meta.description) != null ? _c : page.meta.description;
|
|
671
|
+
const keywords = (_d = baseLocalizedPage == null ? void 0 : baseLocalizedPage.meta.keywords) != null ? _d : page.meta.keywords;
|
|
672
|
+
const socialImage = (_e = baseLocalizedPage == null ? void 0 : baseLocalizedPage.meta.socialImage) != null ? _e : page.meta.socialImage;
|
|
673
|
+
const canonicalUrl = (_f = baseLocalizedPage == null ? void 0 : baseLocalizedPage.seo.canonicalUrl) != null ? _f : page.seo.canonicalUrl;
|
|
674
|
+
const isIndexingBlocked = (_g = baseLocalizedPage == null ? void 0 : baseLocalizedPage.seo.isIndexingBlocked) != null ? _g : page.seo.isIndexingBlocked;
|
|
625
675
|
const fontFamilyParamValue = React.useMemo(() => {
|
|
626
676
|
if (site == null) {
|
|
627
677
|
return page.fonts.map(({
|
|
@@ -659,10 +709,7 @@ function Page$1({
|
|
|
659
709
|
});
|
|
660
710
|
previousHeadSnippets.current = headSnippets;
|
|
661
711
|
}, [headSnippets]);
|
|
662
|
-
const
|
|
663
|
-
parentId
|
|
664
|
-
}) => parentId == null);
|
|
665
|
-
const documentId = (_b = baseLocalizedPage == null ? void 0 : baseLocalizedPage.elementTreeId) != null ? _b : page.id;
|
|
712
|
+
const documentId = (_h = baseLocalizedPage == null ? void 0 : baseLocalizedPage.elementTreeId) != null ? _h : page.id;
|
|
666
713
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
667
714
|
children: [/* @__PURE__ */ jsxRuntime.jsxs(Head__default["default"], {
|
|
668
715
|
children: [/* @__PURE__ */ jsxRuntime.jsx("style", {
|
|
@@ -946,7 +993,7 @@ Received "${apiKey}" instead.`);
|
|
|
946
993
|
const swatches = await this.getSwatches(swatchIds, preview);
|
|
947
994
|
return __spreadProps(__spreadValues({}, result), { swatches });
|
|
948
995
|
}
|
|
949
|
-
async introspect(element, preview) {
|
|
996
|
+
async introspect(element, preview, locale) {
|
|
950
997
|
const runtime = this.runtime;
|
|
951
998
|
const descriptors = reactPage.getPropControllerDescriptors(runtime.store.getState());
|
|
952
999
|
const swatchIds = /* @__PURE__ */ new Set();
|
|
@@ -955,6 +1002,8 @@ Received "${apiKey}" instead.`);
|
|
|
955
1002
|
const tableIds = /* @__PURE__ */ new Set();
|
|
956
1003
|
const pageIds = /* @__PURE__ */ new Set();
|
|
957
1004
|
const globalElements = /* @__PURE__ */ new Map();
|
|
1005
|
+
const localizedGlobalElements = /* @__PURE__ */ new Map();
|
|
1006
|
+
const localizedResourcesMap = /* @__PURE__ */ new Map();
|
|
958
1007
|
const remaining = [element];
|
|
959
1008
|
const seen = /* @__PURE__ */ new Set();
|
|
960
1009
|
let current;
|
|
@@ -978,9 +1027,18 @@ Received "${apiKey}" instead.`);
|
|
|
978
1027
|
};
|
|
979
1028
|
let element2;
|
|
980
1029
|
if (reactPage.isElementReference(current)) {
|
|
981
|
-
const
|
|
982
|
-
|
|
983
|
-
|
|
1030
|
+
const globalElementId = current.value;
|
|
1031
|
+
const globalElement = await this.getGlobalElement(globalElementId);
|
|
1032
|
+
let elementData = globalElement == null ? void 0 : globalElement.data;
|
|
1033
|
+
if (locale) {
|
|
1034
|
+
const localizedGlobalElement = await this.getLocalizedGlobalElement(globalElementId, locale);
|
|
1035
|
+
if (localizedGlobalElement) {
|
|
1036
|
+
elementData = localizedGlobalElement.data;
|
|
1037
|
+
localizedResourcesMap.set(globalElementId, localizedGlobalElement.id);
|
|
1038
|
+
localizedGlobalElements.set(localizedGlobalElement.id, localizedGlobalElement);
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
globalElements.set(globalElementId, globalElement);
|
|
984
1042
|
if (elementData == null)
|
|
985
1043
|
continue;
|
|
986
1044
|
element2 = elementData;
|
|
@@ -1010,7 +1068,7 @@ Received "${apiKey}" instead.`);
|
|
|
1010
1068
|
const pagePathnameSlices = pagePathnamesById.map((pagePathnameSlice) => pagePathnameSlice && __spreadProps(__spreadValues({}, pagePathnameSlice), {
|
|
1011
1069
|
id: Buffer.from(`Page:${pagePathnameSlice.id}`).toString("base64")
|
|
1012
1070
|
}));
|
|
1013
|
-
|
|
1071
|
+
const cacheData = {
|
|
1014
1072
|
[types.APIResourceType.Swatch]: [...swatchIds].map((id) => {
|
|
1015
1073
|
var _a;
|
|
1016
1074
|
return {
|
|
@@ -1049,8 +1107,13 @@ Received "${apiKey}" instead.`);
|
|
|
1049
1107
|
[types.APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({
|
|
1050
1108
|
id,
|
|
1051
1109
|
value
|
|
1110
|
+
})),
|
|
1111
|
+
[types.APIResourceType.LocalizedGlobalElement]: [...localizedGlobalElements.entries()].map(([id, value]) => ({
|
|
1112
|
+
id,
|
|
1113
|
+
value
|
|
1052
1114
|
}))
|
|
1053
1115
|
};
|
|
1116
|
+
return { cacheData, localizedResourcesMap: Object.fromEntries(localizedResourcesMap.entries()) };
|
|
1054
1117
|
}
|
|
1055
1118
|
async getPageSnapshot(pathname, {
|
|
1056
1119
|
preview: previewOverride = false,
|
|
@@ -1071,10 +1134,17 @@ Received "${apiKey}" instead.`);
|
|
|
1071
1134
|
throw new Error(`Failed to get page snapshot with error: "${response.statusText}"`);
|
|
1072
1135
|
}
|
|
1073
1136
|
const document2 = await response.json();
|
|
1074
|
-
const cacheData = await this.introspect(document2.data, previewOverride);
|
|
1137
|
+
const { cacheData, localizedResourcesMap } = await this.introspect(document2.data, previewOverride, unstable_locale);
|
|
1075
1138
|
const apiOrigin = this.apiOrigin.href;
|
|
1076
1139
|
const preview = siteVersion === MakeswiftSiteVersion.Working;
|
|
1077
|
-
return {
|
|
1140
|
+
return {
|
|
1141
|
+
document: document2,
|
|
1142
|
+
cacheData,
|
|
1143
|
+
apiOrigin,
|
|
1144
|
+
preview,
|
|
1145
|
+
localizedResourcesMap,
|
|
1146
|
+
locale: unstable_locale != null ? unstable_locale : null
|
|
1147
|
+
};
|
|
1078
1148
|
}
|
|
1079
1149
|
async getSwatch(swatchId) {
|
|
1080
1150
|
const response = await this.fetch(`v1/swatches/${swatchId}`);
|
|
@@ -1098,6 +1168,10 @@ Received "${apiKey}" instead.`);
|
|
|
1098
1168
|
const result = await this.graphqlClient.request(GlobalElementQuery, { globalElementId });
|
|
1099
1169
|
return result.globalElement;
|
|
1100
1170
|
}
|
|
1171
|
+
async getLocalizedGlobalElement(globalElementId, locale) {
|
|
1172
|
+
const result = await this.graphqlClient.request(LocalizedGlobalElementQuery, { globalElementId, locale });
|
|
1173
|
+
return result.localizedGlobalElement;
|
|
1174
|
+
}
|
|
1101
1175
|
async getPagePathnameSlice(pageId) {
|
|
1102
1176
|
var _a;
|
|
1103
1177
|
const result = await this.graphqlClient.request(PagePathnamesByIdQuery, { pageIds: [pageId] });
|
|
@@ -1162,7 +1236,7 @@ async function fonts(_req, res, { getFonts } = {}) {
|
|
|
1162
1236
|
const fonts2 = (_a = await (getFonts == null ? void 0 : getFonts())) != null ? _a : [];
|
|
1163
1237
|
return res.json(fonts2);
|
|
1164
1238
|
}
|
|
1165
|
-
const version = "0.9.
|
|
1239
|
+
const version = "0.9.10";
|
|
1166
1240
|
async function handler(req, res, { apiKey, unstable_siteVersions }) {
|
|
1167
1241
|
if (req.query.secret !== apiKey) {
|
|
1168
1242
|
return res.status(401).json({ message: "Unauthorized" });
|
|
@@ -1301,6 +1375,9 @@ Read more about dynamic catch-all routes here: https://nextjs.org/docs/routing/d
|
|
|
1301
1375
|
if (m = matches("/global-elements/:id")) {
|
|
1302
1376
|
return client.getGlobalElement(m.params.id).then(handleResource);
|
|
1303
1377
|
}
|
|
1378
|
+
if (m = matches("/localized-global-elements/:globalElementId/:locale")) {
|
|
1379
|
+
return client.getLocalizedGlobalElement(m.params.globalElementId, m.params.locale).then(handleResource);
|
|
1380
|
+
}
|
|
1304
1381
|
if (m = matches("/page-pathname-slices/:id")) {
|
|
1305
1382
|
return client.getPagePathnameSlice(m.params.id).then(handleResource);
|
|
1306
1383
|
}
|
|
@@ -1431,7 +1508,8 @@ const Page = React.memo(({
|
|
|
1431
1508
|
}) => {
|
|
1432
1509
|
const client = React.useMemo(() => new MakeswiftClient({
|
|
1433
1510
|
uri: new URL("graphql", snapshot.apiOrigin).href,
|
|
1434
|
-
cacheData: snapshot.cacheData
|
|
1511
|
+
cacheData: snapshot.cacheData,
|
|
1512
|
+
localizedResourcesMap: snapshot.localizedResourcesMap
|
|
1435
1513
|
}), [snapshot]);
|
|
1436
1514
|
const rootElements = /* @__PURE__ */ new Map([[snapshot.document.id, snapshot.document.data]]);
|
|
1437
1515
|
snapshot.document.localizedPages.forEach((localizedPage) => {
|
|
@@ -2587,6 +2665,17 @@ function useGlobalElement(globalElementId) {
|
|
|
2587
2665
|
}, [client, globalElementId]);
|
|
2588
2666
|
return globalElement;
|
|
2589
2667
|
}
|
|
2668
|
+
function useLocalizedGlobalElement(globalElementId) {
|
|
2669
|
+
const client = useMakeswiftClient();
|
|
2670
|
+
const readLocalizedGlobalElement = () => globalElementId == null ? null : client.readLocalizedGlobalElement(globalElementId);
|
|
2671
|
+
const localizedGlobalElement = shim.useSyncExternalStore(client.subscribe, readLocalizedGlobalElement, readLocalizedGlobalElement);
|
|
2672
|
+
React.useEffect(() => {
|
|
2673
|
+
if (globalElementId != null) {
|
|
2674
|
+
client.fetchLocalizedGlobalElement(globalElementId).catch(console.error);
|
|
2675
|
+
}
|
|
2676
|
+
}, [client, globalElementId]);
|
|
2677
|
+
return localizedGlobalElement;
|
|
2678
|
+
}
|
|
2590
2679
|
function usePagePathnameSlice(pageId) {
|
|
2591
2680
|
const client = useMakeswiftClient();
|
|
2592
2681
|
const readPagePathnameSlice = () => pageId == null ? null : client.readPagePathnameSlice(pageId);
|
|
@@ -4103,8 +4192,10 @@ const DisableRegisterElement = React.createContext(false);
|
|
|
4103
4192
|
const ElementReference = React.memo(React.forwardRef(function ElementReference2({
|
|
4104
4193
|
elementReference
|
|
4105
4194
|
}, ref) {
|
|
4195
|
+
var _a;
|
|
4106
4196
|
const globalElement = useGlobalElement(elementReference.value);
|
|
4107
|
-
const
|
|
4197
|
+
const localizedGlobalElement = useLocalizedGlobalElement(elementReference.value);
|
|
4198
|
+
const globalElementData = (_a = localizedGlobalElement == null ? void 0 : localizedGlobalElement.data) != null ? _a : globalElement == null ? void 0 : globalElement.data;
|
|
4108
4199
|
const elementReferenceDocument = useDocument(elementReference.key);
|
|
4109
4200
|
const documentKey = elementReference.key;
|
|
4110
4201
|
const documentKeys = React.useContext(DocumentCyclesContext);
|