@payloadcms/next 3.78.0-canary.6 → 3.78.0-internal.5219978
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/prod/styles.css +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts +11 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +128 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts +8 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +78 -0
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +30 -20
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.js +8 -30
- package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.d.ts +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +30 -23
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +2 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +5 -3
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +23 -3
- package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromConfig.d.ts +4 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromConfig.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromConfig.js +21 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromConfig.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts +4 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js +10 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.d.ts +23 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.d.ts.map +1 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js +103 -0
- package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -0
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +2 -3
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { fieldAffectsData, fieldHasSubFields, tabHasName } from 'payload/shared';
|
|
2
|
+
function isLocalized(field) {
|
|
3
|
+
return 'localized' in field && Boolean(field.localized);
|
|
4
|
+
}
|
|
5
|
+
function getObjectValue(value) {
|
|
6
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : {};
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Extracts locale-specific data from widget data stored in preferences.
|
|
10
|
+
*
|
|
11
|
+
* Localized fields are stored as `{ fieldName: { en: "Hello", de: "Hallo" } }` in preferences.
|
|
12
|
+
* This function flattens them to `{ fieldName: "Hello" }` for the given locale,
|
|
13
|
+
* which is the format the form state builder expects.
|
|
14
|
+
*
|
|
15
|
+
* Recursively handles nested field types (group, row, collapsible, tabs).
|
|
16
|
+
*/
|
|
17
|
+
export function extractLocaleData(widgetData, locale, fields) {
|
|
18
|
+
const result = {};
|
|
19
|
+
for (const field of fields) {
|
|
20
|
+
if (field.type === 'tabs') {
|
|
21
|
+
for (const tab of field.tabs) {
|
|
22
|
+
const tabFields = tab.fields;
|
|
23
|
+
if (tabHasName(tab)) {
|
|
24
|
+
result[tab.name] = extractLocaleData(getObjectValue(widgetData[tab.name]), locale, tabFields);
|
|
25
|
+
} else {
|
|
26
|
+
Object.assign(result, extractLocaleData(widgetData, locale, tabFields));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (fieldHasSubFields(field) && !fieldAffectsData(field)) {
|
|
32
|
+
Object.assign(result, extractLocaleData(widgetData, locale, field.fields));
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (!fieldAffectsData(field)) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const {
|
|
39
|
+
name
|
|
40
|
+
} = field;
|
|
41
|
+
const value = widgetData[name];
|
|
42
|
+
if (fieldHasSubFields(field)) {
|
|
43
|
+
result[name] = extractLocaleData(getObjectValue(value), locale, field.fields);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (isLocalized(field) && value !== undefined && typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
47
|
+
result[name] = value[locale];
|
|
48
|
+
} else {
|
|
49
|
+
result[name] = value;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Merges locale-specific form data back into the full widget data structure.
|
|
56
|
+
*
|
|
57
|
+
* Non-localized fields are stored directly. Localized fields are stored as
|
|
58
|
+
* `{ fieldName: { en: "Hello", de: "Hallo" } }` so each locale's value is preserved independently.
|
|
59
|
+
*
|
|
60
|
+
* Recursively handles nested field types (group, row, collapsible, tabs).
|
|
61
|
+
*/
|
|
62
|
+
export function mergeLocaleData(existingData, formData, locale, fields) {
|
|
63
|
+
const result = {
|
|
64
|
+
...existingData
|
|
65
|
+
};
|
|
66
|
+
for (const field of fields) {
|
|
67
|
+
if (field.type === 'tabs') {
|
|
68
|
+
for (const tab of field.tabs) {
|
|
69
|
+
const tabFields = tab.fields;
|
|
70
|
+
if (tabHasName(tab)) {
|
|
71
|
+
result[tab.name] = mergeLocaleData(getObjectValue(result[tab.name]), getObjectValue(formData[tab.name]), locale, tabFields);
|
|
72
|
+
} else {
|
|
73
|
+
Object.assign(result, mergeLocaleData(result, formData, locale, tabFields));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (fieldHasSubFields(field) && !fieldAffectsData(field)) {
|
|
79
|
+
Object.assign(result, mergeLocaleData(result, formData, locale, field.fields));
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (!fieldAffectsData(field)) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const {
|
|
86
|
+
name
|
|
87
|
+
} = field;
|
|
88
|
+
if (fieldHasSubFields(field)) {
|
|
89
|
+
result[name] = mergeLocaleData(getObjectValue(result[name]), getObjectValue(formData[name]), locale, field.fields);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (isLocalized(field)) {
|
|
93
|
+
result[name] = {
|
|
94
|
+
...getObjectValue(result[name]),
|
|
95
|
+
[locale]: formData[name]
|
|
96
|
+
};
|
|
97
|
+
} else {
|
|
98
|
+
result[name] = formData[name];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=localeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localeUtils.js","names":["fieldAffectsData","fieldHasSubFields","tabHasName","isLocalized","field","Boolean","localized","getObjectValue","value","Array","isArray","extractLocaleData","widgetData","locale","fields","result","type","tab","tabs","tabFields","name","Object","assign","undefined","mergeLocaleData","existingData","formData"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/localeUtils.ts"],"sourcesContent":["import type { ClientField, Field } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, tabHasName } from 'payload/shared'\n\ntype AnyField = ClientField | Field\n\nfunction isLocalized(field: AnyField): boolean {\n return 'localized' in field && Boolean(field.localized)\n}\n\nfunction getObjectValue(value: unknown): Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : {}\n}\n\n/**\n * Extracts locale-specific data from widget data stored in preferences.\n *\n * Localized fields are stored as `{ fieldName: { en: \"Hello\", de: \"Hallo\" } }` in preferences.\n * This function flattens them to `{ fieldName: \"Hello\" }` for the given locale,\n * which is the format the form state builder expects.\n *\n * Recursively handles nested field types (group, row, collapsible, tabs).\n */\nexport function extractLocaleData(\n widgetData: Record<string, unknown>,\n locale: string,\n fields: readonly AnyField[],\n): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n\n for (const field of fields) {\n if (field.type === 'tabs') {\n for (const tab of field.tabs) {\n const tabFields = tab.fields as AnyField[]\n if (tabHasName(tab)) {\n result[tab.name] = extractLocaleData(\n getObjectValue(widgetData[tab.name]),\n locale,\n tabFields,\n )\n } else {\n Object.assign(result, extractLocaleData(widgetData, locale, tabFields))\n }\n }\n continue\n }\n\n if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n Object.assign(result, extractLocaleData(widgetData, locale, field.fields as AnyField[]))\n continue\n }\n\n if (!fieldAffectsData(field)) {\n continue\n }\n\n const { name } = field\n const value = widgetData[name]\n\n if (fieldHasSubFields(field)) {\n result[name] = extractLocaleData(getObjectValue(value), locale, field.fields as AnyField[])\n continue\n }\n\n if (\n isLocalized(field) &&\n value !== undefined &&\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value)\n ) {\n result[name] = (value as Record<string, unknown>)[locale]\n } else {\n result[name] = value\n }\n }\n\n return result\n}\n\n/**\n * Merges locale-specific form data back into the full widget data structure.\n *\n * Non-localized fields are stored directly. Localized fields are stored as\n * `{ fieldName: { en: \"Hello\", de: \"Hallo\" } }` so each locale's value is preserved independently.\n *\n * Recursively handles nested field types (group, row, collapsible, tabs).\n */\nexport function mergeLocaleData(\n existingData: Record<string, unknown>,\n formData: Record<string, unknown>,\n locale: string,\n fields: readonly AnyField[],\n): Record<string, unknown> {\n const result: Record<string, unknown> = { ...existingData }\n\n for (const field of fields) {\n if (field.type === 'tabs') {\n for (const tab of field.tabs) {\n const tabFields = tab.fields as AnyField[]\n if (tabHasName(tab)) {\n result[tab.name] = mergeLocaleData(\n getObjectValue(result[tab.name]),\n getObjectValue(formData[tab.name]),\n locale,\n tabFields,\n )\n } else {\n Object.assign(result, mergeLocaleData(result, formData, locale, tabFields))\n }\n }\n continue\n }\n\n if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n Object.assign(result, mergeLocaleData(result, formData, locale, field.fields as AnyField[]))\n continue\n }\n\n if (!fieldAffectsData(field)) {\n continue\n }\n\n const { name } = field\n\n if (fieldHasSubFields(field)) {\n result[name] = mergeLocaleData(\n getObjectValue(result[name]),\n getObjectValue(formData[name]),\n locale,\n field.fields as AnyField[],\n )\n continue\n }\n\n if (isLocalized(field)) {\n result[name] = { ...getObjectValue(result[name]), [locale]: formData[name] }\n } else {\n result[name] = formData[name]\n }\n }\n\n return result\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,iBAAiB,EAAEC,UAAU,QAAQ;AAIhE,SAASC,YAAYC,KAAe;EAClC,OAAO,eAAeA,KAAA,IAASC,OAAA,CAAQD,KAAA,CAAME,SAAS;AACxD;AAEA,SAASC,eAAeC,KAAc;EACpC,OAAO,OAAOA,KAAA,KAAU,YAAYA,KAAA,KAAU,QAAQ,CAACC,KAAA,CAAMC,OAAO,CAACF,KAAA,IAChEA,KAAA,GACD,CAAC;AACP;AAEA;;;;;;;;;AASA,OAAO,SAASG,kBACdC,UAAmC,EACnCC,MAAc,EACdC,MAA2B;EAE3B,MAAMC,MAAA,GAAkC,CAAC;EAEzC,KAAK,MAAMX,KAAA,IAASU,MAAA,EAAQ;IAC1B,IAAIV,KAAA,CAAMY,IAAI,KAAK,QAAQ;MACzB,KAAK,MAAMC,GAAA,IAAOb,KAAA,CAAMc,IAAI,EAAE;QAC5B,MAAMC,SAAA,GAAYF,GAAA,CAAIH,MAAM;QAC5B,IAAIZ,UAAA,CAAWe,GAAA,GAAM;UACnBF,MAAM,CAACE,GAAA,CAAIG,IAAI,CAAC,GAAGT,iBAAA,CACjBJ,cAAA,CAAeK,UAAU,CAACK,GAAA,CAAIG,IAAI,CAAC,GACnCP,MAAA,EACAM,SAAA;QAEJ,OAAO;UACLE,MAAA,CAAOC,MAAM,CAACP,MAAA,EAAQJ,iBAAA,CAAkBC,UAAA,EAAYC,MAAA,EAAQM,SAAA;QAC9D;MACF;MACA;IACF;IAEA,IAAIlB,iBAAA,CAAkBG,KAAA,KAAU,CAACJ,gBAAA,CAAiBI,KAAA,GAAQ;MACxDiB,MAAA,CAAOC,MAAM,CAACP,MAAA,EAAQJ,iBAAA,CAAkBC,UAAA,EAAYC,MAAA,EAAQT,KAAA,CAAMU,MAAM;MACxE;IACF;IAEA,IAAI,CAACd,gBAAA,CAAiBI,KAAA,GAAQ;MAC5B;IACF;IAEA,MAAM;MAAEgB;IAAI,CAAE,GAAGhB,KAAA;IACjB,MAAMI,KAAA,GAAQI,UAAU,CAACQ,IAAA,CAAK;IAE9B,IAAInB,iBAAA,CAAkBG,KAAA,GAAQ;MAC5BW,MAAM,CAACK,IAAA,CAAK,GAAGT,iBAAA,CAAkBJ,cAAA,CAAeC,KAAA,GAAQK,MAAA,EAAQT,KAAA,CAAMU,MAAM;MAC5E;IACF;IAEA,IACEX,WAAA,CAAYC,KAAA,KACZI,KAAA,KAAUe,SAAA,IACV,OAAOf,KAAA,KAAU,YACjBA,KAAA,KAAU,QACV,CAACC,KAAA,CAAMC,OAAO,CAACF,KAAA,GACf;MACAO,MAAM,CAACK,IAAA,CAAK,GAAGZ,KAAkC,CAACK,MAAA,CAAO;IAC3D,OAAO;MACLE,MAAM,CAACK,IAAA,CAAK,GAAGZ,KAAA;IACjB;EACF;EAEA,OAAOO,MAAA;AACT;AAEA;;;;;;;;AAQA,OAAO,SAASS,gBACdC,YAAqC,EACrCC,QAAiC,EACjCb,MAAc,EACdC,MAA2B;EAE3B,MAAMC,MAAA,GAAkC;IAAE,GAAGU;EAAa;EAE1D,KAAK,MAAMrB,KAAA,IAASU,MAAA,EAAQ;IAC1B,IAAIV,KAAA,CAAMY,IAAI,KAAK,QAAQ;MACzB,KAAK,MAAMC,GAAA,IAAOb,KAAA,CAAMc,IAAI,EAAE;QAC5B,MAAMC,SAAA,GAAYF,GAAA,CAAIH,MAAM;QAC5B,IAAIZ,UAAA,CAAWe,GAAA,GAAM;UACnBF,MAAM,CAACE,GAAA,CAAIG,IAAI,CAAC,GAAGI,eAAA,CACjBjB,cAAA,CAAeQ,MAAM,CAACE,GAAA,CAAIG,IAAI,CAAC,GAC/Bb,cAAA,CAAemB,QAAQ,CAACT,GAAA,CAAIG,IAAI,CAAC,GACjCP,MAAA,EACAM,SAAA;QAEJ,OAAO;UACLE,MAAA,CAAOC,MAAM,CAACP,MAAA,EAAQS,eAAA,CAAgBT,MAAA,EAAQW,QAAA,EAAUb,MAAA,EAAQM,SAAA;QAClE;MACF;MACA;IACF;IAEA,IAAIlB,iBAAA,CAAkBG,KAAA,KAAU,CAACJ,gBAAA,CAAiBI,KAAA,GAAQ;MACxDiB,MAAA,CAAOC,MAAM,CAACP,MAAA,EAAQS,eAAA,CAAgBT,MAAA,EAAQW,QAAA,EAAUb,MAAA,EAAQT,KAAA,CAAMU,MAAM;MAC5E;IACF;IAEA,IAAI,CAACd,gBAAA,CAAiBI,KAAA,GAAQ;MAC5B;IACF;IAEA,MAAM;MAAEgB;IAAI,CAAE,GAAGhB,KAAA;IAEjB,IAAIH,iBAAA,CAAkBG,KAAA,GAAQ;MAC5BW,MAAM,CAACK,IAAA,CAAK,GAAGI,eAAA,CACbjB,cAAA,CAAeQ,MAAM,CAACK,IAAA,CAAK,GAC3Bb,cAAA,CAAemB,QAAQ,CAACN,IAAA,CAAK,GAC7BP,MAAA,EACAT,KAAA,CAAMU,MAAM;MAEd;IACF;IAEA,IAAIX,WAAA,CAAYC,KAAA,GAAQ;MACtBW,MAAM,CAACK,IAAA,CAAK,GAAG;QAAE,GAAGb,cAAA,CAAeQ,MAAM,CAACK,IAAA,CAAK,CAAC;QAAE,CAACP,MAAA,GAASa,QAAQ,CAACN,IAAA;MAAM;IAC7E,OAAO;MACLL,MAAM,CAACK,IAAA,CAAK,GAAGM,QAAQ,CAACN,IAAA,CAAK;IAC/B;EACF;EAEA,OAAOL,MAAA;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAiBpG,OAAO,cAAc,CAAA;AAErB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAK9D,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACtD,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAiBpG,OAAO,cAAc,CAAA;AAErB,OAAO,KAA0C,MAAM,OAAO,CAAA;AAK9D,KAAK,KAAK,GAAG;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACtD,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoHnC,CAAA"}
|
|
@@ -24,8 +24,7 @@ export const Restore = ({
|
|
|
24
24
|
routes: {
|
|
25
25
|
admin: adminRoute,
|
|
26
26
|
api: apiRoute
|
|
27
|
-
}
|
|
28
|
-
serverURL
|
|
27
|
+
}
|
|
29
28
|
}
|
|
30
29
|
} = useConfig();
|
|
31
30
|
const {
|
|
@@ -40,7 +39,7 @@ export const Restore = ({
|
|
|
40
39
|
const {
|
|
41
40
|
startRouteTransition
|
|
42
41
|
} = useRouteTransition();
|
|
43
|
-
const restoreMessage = t('version:aboutToRestoreGlobal', {
|
|
42
|
+
const restoreMessage = t(globalConfig ? 'version:aboutToRestoreGlobal' : 'version:aboutToRestore', {
|
|
44
43
|
label: getTranslation(label, i18n),
|
|
45
44
|
versionDate: versionDateFormatted
|
|
46
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","Button","ConfirmationModal","PopupList","toast","useConfig","useModal","useRouteTransition","useTranslation","requests","useRouter","formatAdminURL","React","Fragment","useCallback","useState","baseClass","modalSlug","Restore","className","collectionConfig","globalConfig","label","originalDocID","status","versionDateFormatted","versionID","config","routes","admin","adminRoute","api","apiRoute","
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","Button","ConfirmationModal","PopupList","toast","useConfig","useModal","useRouteTransition","useTranslation","requests","useRouter","formatAdminURL","React","Fragment","useCallback","useState","baseClass","modalSlug","Restore","className","collectionConfig","globalConfig","label","originalDocID","status","versionDateFormatted","versionID","config","routes","admin","adminRoute","api","apiRoute","toggleModal","router","i18n","t","draft","setDraft","startRouteTransition","restoreMessage","versionDate","canRestoreAsDraft","versions","drafts","handleRestore","fetchURL","path","redirectURL","slug","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","body","confirmingLabel","heading","onConfirm"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ClientGlobalConfig, SanitizedCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ConfirmationModal,\n PopupList,\n toast,\n useConfig,\n useModal,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\n\nimport './index.scss'\n\nimport React, { Fragment, useCallback, useState } from 'react'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\ntype Props = {\n className?: string\n collectionConfig?: ClientCollectionConfig\n globalConfig?: ClientGlobalConfig\n label: SanitizedCollectionConfig['labels']['singular']\n originalDocID: number | string\n status?: string\n versionDateFormatted: string\n versionID: string\n}\n\nexport const Restore: React.FC<Props> = ({\n className,\n collectionConfig,\n globalConfig,\n label,\n originalDocID,\n status,\n versionDateFormatted,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n },\n } = useConfig()\n\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n const { startRouteTransition } = useRouteTransition()\n\n const restoreMessage = t(\n globalConfig ? 'version:aboutToRestoreGlobal' : 'version:aboutToRestore',\n {\n label: getTranslation(label, i18n),\n versionDate: versionDateFormatted,\n },\n )\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n const handleRestore = useCallback(async () => {\n let fetchURL = formatAdminURL({\n apiRoute,\n path: '',\n })\n let redirectURL: string\n\n if (collectionConfig) {\n fetchURL = `${fetchURL}/${collectionConfig.slug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig.slug}/${originalDocID}`,\n })\n }\n\n if (globalConfig) {\n fetchURL = `${fetchURL}/globals/${globalConfig.slug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalConfig.slug}`,\n })\n }\n\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n return startRouteTransition(() => router.push(redirectURL))\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [\n apiRoute,\n collectionConfig,\n globalConfig,\n i18n.language,\n versionID,\n draft,\n adminRoute,\n originalDocID,\n startRouteTransition,\n router,\n t,\n ])\n\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"primary\"\n className={[canRestoreAsDraft && `${baseClass}__restore-as-draft-button`]\n .filter(Boolean)\n .join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"xsmall\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <ConfirmationModal\n body={restoreMessage}\n confirmingLabel={t('version:restoring')}\n heading={t('version:confirmVersionRestoration')}\n modalSlug={modalSlug}\n onConfirm={handleRestore}\n />\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.78.0-
|
|
3
|
+
"version": "3.78.0-internal.5219978",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -99,9 +99,9 @@
|
|
|
99
99
|
"qs-esm": "7.0.2",
|
|
100
100
|
"sass": "1.77.4",
|
|
101
101
|
"uuid": "10.0.0",
|
|
102
|
-
"@payloadcms/translations": "3.78.0-
|
|
103
|
-
"@payloadcms/graphql": "3.78.0-
|
|
104
|
-
"@payloadcms/ui": "3.78.0-
|
|
102
|
+
"@payloadcms/translations": "3.78.0-internal.5219978",
|
|
103
|
+
"@payloadcms/graphql": "3.78.0-internal.5219978",
|
|
104
|
+
"@payloadcms/ui": "3.78.0-internal.5219978"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
107
|
"@babel/cli": "7.27.2",
|
|
@@ -118,13 +118,13 @@
|
|
|
118
118
|
"esbuild": "0.27.1",
|
|
119
119
|
"esbuild-sass-plugin": "3.3.1",
|
|
120
120
|
"swc-plugin-transform-remove-imports": "8.3.0",
|
|
121
|
-
"payload": "3.78.0-
|
|
121
|
+
"payload": "3.78.0-internal.5219978",
|
|
122
122
|
"@payloadcms/eslint-config": "3.28.0"
|
|
123
123
|
},
|
|
124
124
|
"peerDependencies": {
|
|
125
125
|
"graphql": "^16.8.1",
|
|
126
126
|
"next": ">=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.0-canary.10 <17.0.0",
|
|
127
|
-
"payload": "3.78.0-
|
|
127
|
+
"payload": "3.78.0-internal.5219978"
|
|
128
128
|
},
|
|
129
129
|
"engines": {
|
|
130
130
|
"node": "^18.20.2 || >=20.9.0"
|