@payloadcms/next 3.24.0-canary.f229d8d → 3.24.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.
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +2 -2
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +2 -0
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +1 -2
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.d.ts +3 -2
- package/dist/views/API/index.d.ts.map +1 -1
- package/dist/views/API/index.js +2 -2
- package/dist/views/API/index.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +83 -56
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/index.d.ts +2 -2
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +4 -3
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.d.ts +2 -2
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +3 -3
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.d.ts +7 -5
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +2 -2
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.d.ts +2 -2
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +3 -3
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getVersions.d.ts +1 -1
- package/dist/views/Document/getVersions.d.ts.map +1 -1
- package/dist/views/Document/getVersions.js +9 -8
- package/dist/views/Document/getVersions.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts +4 -4
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
- package/dist/views/Document/handleServerFunction.js +2 -0
- package/dist/views/Document/handleServerFunction.js.map +1 -1
- package/dist/views/Document/index.d.ts +4 -3
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +7 -7
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +6 -5
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Edit/index.d.ts +2 -2
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.d.ts +2 -2
- package/dist/views/ForgotPassword/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/index.js +3 -3
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/handleServerFunction.d.ts.map +1 -1
- package/dist/views/List/handleServerFunction.js +2 -0
- package/dist/views/List/handleServerFunction.js.map +1 -1
- package/dist/views/List/index.d.ts +6 -5
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +30 -30
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts +3 -4
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.js +20 -11
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/LivePreview/index.d.ts +3 -2
- package/dist/views/LivePreview/index.d.ts.map +1 -1
- package/dist/views/LivePreview/index.js +2 -2
- package/dist/views/LivePreview/index.js.map +1 -1
- package/dist/views/Login/index.d.ts +2 -2
- package/dist/views/Login/index.d.ts.map +1 -1
- package/dist/views/Login/index.js +3 -4
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Logout/index.d.ts +3 -3
- package/dist/views/Logout/index.d.ts.map +1 -1
- package/dist/views/Logout/index.js +2 -2
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.d.ts +2 -2
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +2 -2
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/ResetPassword/index.d.ts +2 -2
- package/dist/views/ResetPassword/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.js +3 -3
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/getViewFromConfig.d.ts +3 -3
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.d.ts +3 -2
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +3 -3
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.d.ts +2 -2
- package/dist/views/Verify/index.d.ts.map +1 -1
- package/dist/views/Verify/index.js +4 -4
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +2 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +26 -22
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +2 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +14 -2
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +12 -8
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +12 -8
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +11 -7
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +30 -21
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +13 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts +4 -2
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +24 -3
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +8 -31
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/index.d.ts +3 -2
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +3 -2
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts +1 -2
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/index.client.d.ts +1 -2
- package/dist/views/Versions/index.client.d.ts.map +1 -1
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.d.ts +3 -2
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +2 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +7 -8
- package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.d.ts +0 -6
- package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.d.ts.map +0 -1
- package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.js +0 -83
- package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.js.map +0 -1
- package/dist/views/Account/ResetPreferences/ConfirmResetModal/index.scss +0 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","useTranslation","fieldIsArrayType","fieldIsBlockType","React","useSelectedLocales","DiffCollapser","RenderVersionFieldsToDiff","getFieldsForRowComparison","baseClass","Iterable","t0","$","baseVersionField","comparisonValue","field","locale","versionValue","i18n","selectedLocales","config","versionRowCount","Array","isArray","length","comparisonRowCount","maxRows","Math","max","Error","type","t1","label","_jsxs","children","_jsx","className","t2","comparison","isIterable","version","from","keys","map","row","i","versionRow","comparisonRow","fields","versionFields","rowNumber","String","padStart","rowLabel","locales","t","labels","plural"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldDiffClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig, useTranslation } from '@payloadcms/ui'\n\nimport './index.scss'\n\nimport { fieldIsArrayType, fieldIsBlockType } from 'payload/shared'\nimport React from 'react'\n\nimport { useSelectedLocales } from '../../../Default/SelectedLocalesContext.js'\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderVersionFieldsToDiff } from '../../RenderVersionFieldsToDiff.js'\nimport { getFieldsForRowComparison } from '../../utilities/getFieldsForRowComparison.js'\n\nconst baseClass = 'iterable-diff'\n\nexport const Iterable: React.FC<FieldDiffClientProps> = ({\n baseVersionField,\n comparisonValue,\n field,\n locale,\n versionValue,\n}) => {\n const { i18n } = useTranslation()\n const { selectedLocales } = useSelectedLocales()\n const { config } = useConfig()\n\n const versionRowCount = Array.isArray(versionValue) ? versionValue.length : 0\n const comparisonRowCount = Array.isArray(comparisonValue) ? comparisonValue.length : 0\n const maxRows = Math.max(versionRowCount, comparisonRowCount)\n\n if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {\n throw new Error(`Expected field to be an array or blocks type but got: ${field.type}`)\n }\n\n return (\n <div className={baseClass}>\n <DiffCollapser\n comparison={comparisonValue}\n field={field}\n isIterable\n label={\n 'label' in field &&\n field.label &&\n typeof field.label !== 'function' && (\n <span>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.label, i18n)}\n </span>\n )\n }\n locales={selectedLocales}\n version={versionValue}\n >\n {maxRows > 0 && (\n <div className={`${baseClass}__rows`}>\n {Array.from(Array(maxRows).keys()).map((row, i) => {\n const versionRow = versionValue?.[i] || {}\n const comparisonRow = comparisonValue?.[i] || {}\n\n const { fields, versionFields } = getFieldsForRowComparison({\n baseVersionField,\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n const rowNumber = String(i + 1).padStart(2, '0')\n const rowLabel = fieldIsArrayType(field) ? `Item ${rowNumber}` : `Block ${rowNumber}`\n\n return (\n <div className={`${baseClass}__row`} key={i}>\n <DiffCollapser\n comparison={comparisonRow}\n fields={fields}\n label={rowLabel}\n locales={selectedLocales}\n version={versionRow}\n >\n <RenderVersionFieldsToDiff versionFields={versionFields} />\n </DiffCollapser>\n </div>\n )\n })}\n </div>\n )}\n {maxRows === 0 && (\n <div className={`${baseClass}__no-rows`}>\n {i18n.t('version:noRowsFound', {\n label:\n 'labels' in field && field.labels?.plural\n ? getTranslation(field.labels.plural, i18n)\n : i18n.t('general:rows'),\n })}\n </div>\n )}\n </DiffCollapser>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,cAAc,QAAQ;AAI1C,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ;AACnD,OAAOC,KAAA,MAAW;AAElB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,aAAa,QAAQ;AAC9B,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,yBAAyB,QAAQ;AAE1C,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,QAAA,GAA2CC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAAC;IAAAe,gBAAA;IAAAC,eAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC;EAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","useTranslation","fieldIsArrayType","fieldIsBlockType","React","useSelectedLocales","DiffCollapser","RenderVersionFieldsToDiff","getFieldsForRowComparison","baseClass","Iterable","t0","$","baseVersionField","comparisonValue","field","locale","parentIsLocalized","versionValue","i18n","selectedLocales","config","versionRowCount","Array","isArray","length","comparisonRowCount","maxRows","Math","max","Error","type","t1","label","_jsxs","children","_jsx","className","t2","comparison","isIterable","version","from","keys","map","row","i","versionRow","comparisonRow","fields","versionFields","rowNumber","String","padStart","rowLabel","locales","localized","t","labels","plural"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Iterable/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldDiffClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig, useTranslation } from '@payloadcms/ui'\n\nimport './index.scss'\n\nimport { fieldIsArrayType, fieldIsBlockType } from 'payload/shared'\nimport React from 'react'\n\nimport { useSelectedLocales } from '../../../Default/SelectedLocalesContext.js'\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderVersionFieldsToDiff } from '../../RenderVersionFieldsToDiff.js'\nimport { getFieldsForRowComparison } from '../../utilities/getFieldsForRowComparison.js'\n\nconst baseClass = 'iterable-diff'\n\nexport const Iterable: React.FC<FieldDiffClientProps> = ({\n baseVersionField,\n comparisonValue,\n field,\n locale,\n parentIsLocalized,\n versionValue,\n}) => {\n const { i18n } = useTranslation()\n const { selectedLocales } = useSelectedLocales()\n const { config } = useConfig()\n\n const versionRowCount = Array.isArray(versionValue) ? versionValue.length : 0\n const comparisonRowCount = Array.isArray(comparisonValue) ? comparisonValue.length : 0\n const maxRows = Math.max(versionRowCount, comparisonRowCount)\n\n if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {\n throw new Error(`Expected field to be an array or blocks type but got: ${field.type}`)\n }\n\n return (\n <div className={baseClass}>\n <DiffCollapser\n comparison={comparisonValue}\n field={field}\n isIterable\n label={\n 'label' in field &&\n field.label &&\n typeof field.label !== 'function' && (\n <span>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(field.label, i18n)}\n </span>\n )\n }\n locales={selectedLocales}\n parentIsLocalized={parentIsLocalized}\n version={versionValue}\n >\n {maxRows > 0 && (\n <div className={`${baseClass}__rows`}>\n {Array.from(Array(maxRows).keys()).map((row, i) => {\n const versionRow = versionValue?.[i] || {}\n const comparisonRow = comparisonValue?.[i] || {}\n\n const { fields, versionFields } = getFieldsForRowComparison({\n baseVersionField,\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n const rowNumber = String(i + 1).padStart(2, '0')\n const rowLabel = fieldIsArrayType(field) ? `Item ${rowNumber}` : `Block ${rowNumber}`\n\n return (\n <div className={`${baseClass}__row`} key={i}>\n <DiffCollapser\n comparison={comparisonRow}\n fields={fields}\n label={rowLabel}\n locales={selectedLocales}\n parentIsLocalized={parentIsLocalized || field.localized}\n version={versionRow}\n >\n <RenderVersionFieldsToDiff versionFields={versionFields} />\n </DiffCollapser>\n </div>\n )\n })}\n </div>\n )}\n {maxRows === 0 && (\n <div className={`${baseClass}__no-rows`}>\n {i18n.t('version:noRowsFound', {\n label:\n 'labels' in field && field.labels?.plural\n ? getTranslation(field.labels.plural, i18n)\n : i18n.t('general:rows'),\n })}\n </div>\n )}\n </DiffCollapser>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,oCAAoC,EACrC,MAAM,SAAS,CAAA;AAShB,OAAO,cAAc,CAAA;AAwFrB,eAAO,MAAM,YAAY,EAAE,oCAkF1B,CAAA"}
|
|
@@ -4,15 +4,15 @@ import { c as _c } from "react/compiler-runtime";
|
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
6
|
import { useConfig, useTranslation } from '@payloadcms/ui';
|
|
7
|
-
import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared';
|
|
7
|
+
import { fieldAffectsData, fieldIsPresentationalOnly, fieldShouldBeLocalized } from 'payload/shared';
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import ReactDiffViewer from 'react-diff-viewer-continued';
|
|
10
10
|
import Label from '../../Label/index.js';
|
|
11
11
|
import { diffStyles } from '../styles.js';
|
|
12
12
|
const baseClass = 'relationship-diff';
|
|
13
|
-
const generateLabelFromValue = (collections, field, locale, value) => {
|
|
13
|
+
const generateLabelFromValue = (collections, field, locale, value, config, parentIsLocalized) => {
|
|
14
14
|
if (Array.isArray(value)) {
|
|
15
|
-
return value.map(v => generateLabelFromValue(collections, field, locale, v)).filter(Boolean) // Filters out any undefined or empty values
|
|
15
|
+
return value.map(v => generateLabelFromValue(collections, field, locale, v, config, parentIsLocalized)).filter(Boolean) // Filters out any undefined or empty values
|
|
16
16
|
.join(', ');
|
|
17
17
|
}
|
|
18
18
|
let relatedDoc;
|
|
@@ -34,7 +34,10 @@ const generateLabelFromValue = (collections, field, locale, value) => {
|
|
|
34
34
|
const useAsTitleField = relatedCollection.fields.find(f => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle);
|
|
35
35
|
let titleFieldIsLocalized = false;
|
|
36
36
|
if (useAsTitleField && fieldAffectsData(useAsTitleField)) {
|
|
37
|
-
titleFieldIsLocalized =
|
|
37
|
+
titleFieldIsLocalized = fieldShouldBeLocalized({
|
|
38
|
+
field: useAsTitleField,
|
|
39
|
+
parentIsLocalized
|
|
40
|
+
});
|
|
38
41
|
}
|
|
39
42
|
if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {
|
|
40
43
|
valueToReturn = relatedDoc[useAsTitle];
|
|
@@ -60,16 +63,20 @@ const generateLabelFromValue = (collections, field, locale, value) => {
|
|
|
60
63
|
return valueToReturn;
|
|
61
64
|
};
|
|
62
65
|
export const Relationship = t0 => {
|
|
63
|
-
const $ = _c(
|
|
66
|
+
const $ = _c(12);
|
|
64
67
|
const {
|
|
65
68
|
comparisonValue,
|
|
66
69
|
field,
|
|
67
70
|
locale,
|
|
71
|
+
parentIsLocalized,
|
|
68
72
|
versionValue
|
|
69
73
|
} = t0;
|
|
70
74
|
const {
|
|
71
75
|
i18n
|
|
72
76
|
} = useTranslation();
|
|
77
|
+
const {
|
|
78
|
+
config
|
|
79
|
+
} = useConfig();
|
|
73
80
|
const placeholder = `[${i18n.t("general:noValue")}]`;
|
|
74
81
|
const {
|
|
75
82
|
config: t1
|
|
@@ -78,34 +85,34 @@ export const Relationship = t0 => {
|
|
|
78
85
|
collections
|
|
79
86
|
} = t1;
|
|
80
87
|
let t2;
|
|
81
|
-
if ($[0] !== collections || $[1] !== comparisonValue || $[2] !==
|
|
88
|
+
if ($[0] !== collections || $[1] !== comparisonValue || $[2] !== config || $[3] !== field || $[4] !== i18n || $[5] !== locale || $[6] !== parentIsLocalized || $[7] !== placeholder || $[8] !== versionValue) {
|
|
82
89
|
let versionToRender = placeholder;
|
|
83
90
|
let comparisonToRender = placeholder;
|
|
84
91
|
if (versionValue) {
|
|
85
92
|
if ("hasMany" in field && field.hasMany && Array.isArray(versionValue)) {
|
|
86
|
-
versionToRender = versionValue.map(val => generateLabelFromValue(collections, field, locale, val)).join(", ") || placeholder;
|
|
93
|
+
versionToRender = versionValue.map(val => generateLabelFromValue(collections, field, locale, val, config, parentIsLocalized)).join(", ") || placeholder;
|
|
87
94
|
} else {
|
|
88
|
-
versionToRender = generateLabelFromValue(collections, field, locale, versionValue) || placeholder;
|
|
95
|
+
versionToRender = generateLabelFromValue(collections, field, locale, versionValue, config, parentIsLocalized) || placeholder;
|
|
89
96
|
}
|
|
90
97
|
}
|
|
91
98
|
if (comparisonValue) {
|
|
92
99
|
if ("hasMany" in field && field.hasMany && Array.isArray(comparisonValue)) {
|
|
93
|
-
comparisonToRender = comparisonValue.map(val_0 => generateLabelFromValue(collections, field, locale, val_0)).join(", ") || placeholder;
|
|
100
|
+
comparisonToRender = comparisonValue.map(val_0 => generateLabelFromValue(collections, field, locale, val_0, config, parentIsLocalized)).join(", ") || placeholder;
|
|
94
101
|
} else {
|
|
95
|
-
comparisonToRender = generateLabelFromValue(collections, field, locale, comparisonValue) || placeholder;
|
|
102
|
+
comparisonToRender = generateLabelFromValue(collections, field, locale, comparisonValue, config, parentIsLocalized) || placeholder;
|
|
96
103
|
}
|
|
97
104
|
}
|
|
98
105
|
const label = "label" in field && typeof field.label !== "boolean" && typeof field.label !== "function" ? field.label : "";
|
|
99
106
|
let t3;
|
|
100
|
-
if ($[
|
|
107
|
+
if ($[10] !== locale) {
|
|
101
108
|
t3 = locale && _jsx("span", {
|
|
102
109
|
className: `${baseClass}__locale-label`,
|
|
103
110
|
children: locale
|
|
104
111
|
});
|
|
105
|
-
$[
|
|
106
|
-
$[
|
|
112
|
+
$[10] = locale;
|
|
113
|
+
$[11] = t3;
|
|
107
114
|
} else {
|
|
108
|
-
t3 = $[
|
|
115
|
+
t3 = $[11];
|
|
109
116
|
}
|
|
110
117
|
t2 = _jsxs("div", {
|
|
111
118
|
className: baseClass,
|
|
@@ -122,14 +129,16 @@ export const Relationship = t0 => {
|
|
|
122
129
|
});
|
|
123
130
|
$[0] = collections;
|
|
124
131
|
$[1] = comparisonValue;
|
|
125
|
-
$[2] =
|
|
126
|
-
$[3] =
|
|
127
|
-
$[4] =
|
|
128
|
-
$[5] =
|
|
129
|
-
$[6] =
|
|
130
|
-
$[7] =
|
|
132
|
+
$[2] = config;
|
|
133
|
+
$[3] = field;
|
|
134
|
+
$[4] = i18n;
|
|
135
|
+
$[5] = locale;
|
|
136
|
+
$[6] = parentIsLocalized;
|
|
137
|
+
$[7] = placeholder;
|
|
138
|
+
$[8] = versionValue;
|
|
139
|
+
$[9] = t2;
|
|
131
140
|
} else {
|
|
132
|
-
t2 = $[
|
|
141
|
+
t2 = $[9];
|
|
133
142
|
}
|
|
134
143
|
return t2;
|
|
135
144
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","useTranslation","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewer","Label","diffStyles","baseClass","generateLabelFromValue","collections","field","locale","value","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","undefined","String","relatedCollection","find","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","JSON","stringify","Relationship","t0","$","comparisonValue","versionValue","i18n","placeholder","t","config","t1","t2","versionToRender","comparisonToRender","hasMany","val","val_0","label","t3","_jsx","className","children","_jsxs","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientField,\n RelationshipFieldDiffClientComponent,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig, useTranslation } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewer from 'react-diff-viewer-continued'\n\nimport Label from '../../Label/index.js'\nimport './index.scss'\nimport { diffStyles } from '../styles.js'\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: ClientField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn: RelationshipValue | string = ''\n\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string -- We want to return a string specifilly for null and undefined\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = useAsTitleField.localized\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized && valueToReturn?.[locale]) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = String(relatedDoc.id)\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (\n (valueToReturn && typeof valueToReturn === 'object' && valueToReturn !== null) ||\n typeof valueToReturn !== 'string'\n ) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nexport const Relationship: RelationshipFieldDiffClientComponent = ({\n comparisonValue,\n field,\n locale,\n versionValue,\n}) => {\n const { i18n } = useTranslation()\n\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const {\n config: { collections },\n } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (versionValue) {\n if ('hasMany' in field && field.hasMany && Array.isArray(versionValue)) {\n versionToRender =\n versionValue\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n versionToRender =\n generateLabelFromValue(collections, field, locale, versionValue) || placeholder\n }\n }\n\n if (comparisonValue) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparisonValue)) {\n comparisonToRender =\n comparisonValue\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(collections, field, locale, comparisonValue) || placeholder\n }\n }\n\n const label =\n 'label' in field && typeof field.label !== 'boolean' && typeof field.label !== 'function'\n ? field.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={versionToRender}\n oldValue={comparisonToRender}\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useConfig","useTranslation","fieldAffectsData","fieldIsPresentationalOnly","fieldShouldBeLocalized","React","ReactDiffViewer","Label","diffStyles","baseClass","generateLabelFromValue","collections","field","locale","value","config","parentIsLocalized","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","undefined","String","relatedCollection","find","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","id","JSON","stringify","Relationship","t0","$","comparisonValue","versionValue","i18n","placeholder","t","t1","t2","versionToRender","comparisonToRender","hasMany","val","val_0","label","t3","_jsx","className","children","_jsxs","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n RelationshipFieldDiffClientComponent,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig, useTranslation } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly, fieldShouldBeLocalized } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewer from 'react-diff-viewer-continued'\n\nimport Label from '../../Label/index.js'\nimport './index.scss'\nimport { diffStyles } from '../styles.js'\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: ClientField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n config: ClientConfig,\n parentIsLocalized: boolean,\n): string => {\n if (Array.isArray(value)) {\n return value\n .map((v) => generateLabelFromValue(collections, field, locale, v, config, parentIsLocalized))\n .filter(Boolean) // Filters out any undefined or empty values\n .join(', ')\n }\n\n let relatedDoc: RelationshipValue\n let valueToReturn: RelationshipValue | string = ''\n\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string -- We want to return a string specifilly for null and undefined\n return String(value)\n }\n\n if (typeof value === 'object' && 'relationTo' in value) {\n relatedDoc = value.value\n } else {\n // Non-polymorphic relationship\n relatedDoc = value\n }\n\n const relatedCollection = relationTo\n ? collections.find(\n (c) =>\n c.slug ===\n (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo),\n )\n : null\n\n if (relatedCollection) {\n const useAsTitle = relatedCollection?.admin?.useAsTitle\n const useAsTitleField = relatedCollection.fields.find(\n (f) => fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle,\n )\n let titleFieldIsLocalized = false\n\n if (useAsTitleField && fieldAffectsData(useAsTitleField)) {\n titleFieldIsLocalized = fieldShouldBeLocalized({ field: useAsTitleField, parentIsLocalized })\n }\n\n if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized && valueToReturn?.[locale]) {\n valueToReturn = valueToReturn[locale]\n }\n } else if (relatedDoc) {\n // Handle non-polymorphic `hasMany` relationships or fallback\n if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = String(relatedDoc.id)\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (\n (valueToReturn && typeof valueToReturn === 'object' && valueToReturn !== null) ||\n typeof valueToReturn !== 'string'\n ) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nexport const Relationship: RelationshipFieldDiffClientComponent = ({\n comparisonValue,\n field,\n locale,\n parentIsLocalized,\n versionValue,\n}) => {\n const { i18n } = useTranslation()\n const { config } = useConfig()\n\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const {\n config: { collections },\n } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (versionValue) {\n if ('hasMany' in field && field.hasMany && Array.isArray(versionValue)) {\n versionToRender =\n versionValue\n .map((val) =>\n generateLabelFromValue(collections, field, locale, val, config, parentIsLocalized),\n )\n .join(', ') || placeholder\n } else {\n versionToRender =\n generateLabelFromValue(\n collections,\n field,\n locale,\n versionValue,\n config,\n parentIsLocalized,\n ) || placeholder\n }\n }\n\n if (comparisonValue) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparisonValue)) {\n comparisonToRender =\n comparisonValue\n .map((val) =>\n generateLabelFromValue(collections, field, locale, val, config, parentIsLocalized),\n )\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(\n collections,\n field,\n locale,\n comparisonValue,\n config,\n parentIsLocalized,\n ) || placeholder\n }\n }\n\n const label =\n 'label' in field && typeof field.label !== 'boolean' && typeof field.label !== 'function'\n ? field.label\n : ''\n\n return (\n <div className={baseClass}>\n <Label>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(label, i18n)}\n </Label>\n <ReactDiffViewer\n hideLineNumbers\n newValue={versionToRender}\n oldValue={comparisonToRender}\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -101,11 +101,12 @@ export const Tabs = props => {
|
|
|
101
101
|
return t0;
|
|
102
102
|
};
|
|
103
103
|
const Tab = t0 => {
|
|
104
|
-
const $ = _c(
|
|
104
|
+
const $ = _c(12);
|
|
105
105
|
const {
|
|
106
106
|
comparisonValue,
|
|
107
107
|
fieldTab,
|
|
108
108
|
locale,
|
|
109
|
+
parentIsLocalized,
|
|
109
110
|
tab,
|
|
110
111
|
versionValue
|
|
111
112
|
} = t0;
|
|
@@ -133,13 +134,15 @@ const Tab = t0 => {
|
|
|
133
134
|
} else {
|
|
134
135
|
t1 = $[3];
|
|
135
136
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
const t2 = parentIsLocalized || fieldTab.localized;
|
|
138
|
+
let t3;
|
|
139
|
+
if ($[4] !== comparisonValue || $[5] !== fieldTab.fields || $[6] !== selectedLocales || $[7] !== t1 || $[8] !== t2 || $[9] !== tab.fields || $[10] !== versionValue) {
|
|
140
|
+
t3 = _jsx(DiffCollapser, {
|
|
139
141
|
comparison: comparisonValue,
|
|
140
142
|
fields: fieldTab.fields,
|
|
141
143
|
label: t1,
|
|
142
144
|
locales: selectedLocales,
|
|
145
|
+
parentIsLocalized: t2,
|
|
143
146
|
version: versionValue,
|
|
144
147
|
children: _jsx(RenderVersionFieldsToDiff, {
|
|
145
148
|
versionFields: tab.fields
|
|
@@ -149,12 +152,13 @@ const Tab = t0 => {
|
|
|
149
152
|
$[5] = fieldTab.fields;
|
|
150
153
|
$[6] = selectedLocales;
|
|
151
154
|
$[7] = t1;
|
|
152
|
-
$[8] =
|
|
153
|
-
$[9] =
|
|
154
|
-
$[10] =
|
|
155
|
+
$[8] = t2;
|
|
156
|
+
$[9] = tab.fields;
|
|
157
|
+
$[10] = versionValue;
|
|
158
|
+
$[11] = t3;
|
|
155
159
|
} else {
|
|
156
|
-
|
|
160
|
+
t3 = $[11];
|
|
157
161
|
}
|
|
158
|
-
return
|
|
162
|
+
return t3;
|
|
159
163
|
};
|
|
160
164
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useTranslation","React","useSelectedLocales","DiffCollapser","RenderVersionFieldsToDiff","baseClass","Tabs","props","$","baseVersionField","comparisonValue","field","versionValue","selectedLocales","t0","tabs","t1","tab","i","fields","length","fieldTab","_jsx","className","children","localized","map","locale","index","localizedTabProps","comparison","name","version","Tab","join","namedTabProps","i18n","label","_jsxs","t2","versionFields"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientTab,\n FieldDiffClientProps,\n TabsFieldClient,\n TabsFieldDiffClientComponent,\n VersionTab,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport './index.scss'\nimport { useSelectedLocales } from '../../../Default/SelectedLocalesContext.js'\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderVersionFieldsToDiff } from '../../RenderVersionFieldsToDiff.js'\n\nconst baseClass = 'tabs-diff'\n\nexport const Tabs: TabsFieldDiffClientComponent = (props) => {\n const { baseVersionField, comparisonValue, field, versionValue } = props\n const { selectedLocales } = useSelectedLocales()\n\n return (\n <div className={baseClass}>\n {baseVersionField.tabs.map((tab, i) => {\n if (!tab?.fields?.length) {\n return null\n }\n const fieldTab = field.tabs?.[i]\n return (\n <div className={`${baseClass}__tab`} key={i}>\n {(() => {\n if ('name' in fieldTab && selectedLocales && fieldTab.localized) {\n // Named localized tab\n return selectedLocales.map((locale, index) => {\n const localizedTabProps = {\n ...props,\n comparison: comparisonValue?.[tab.name]?.[locale],\n version: versionValue?.[tab.name]?.[locale],\n }\n return (\n <div className={`${baseClass}__tab-locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__tab-locale-value`}>\n <Tab\n key={locale}\n {...localizedTabProps}\n fieldTab={fieldTab}\n locale={locale}\n tab={tab}\n />\n </div>\n </div>\n )\n })\n } else if ('name' in tab && tab.name) {\n // Named tab\n const namedTabProps = {\n ...props,\n comparison: comparisonValue?.[tab.name],\n version: versionValue?.[tab.name],\n }\n return <Tab fieldTab={fieldTab} key={i} {...namedTabProps} tab={tab} />\n } else {\n // Unnamed tab\n return <Tab fieldTab={fieldTab} key={i} {...props} tab={tab} />\n }\n })()}\n </div>\n )\n })}\n </div>\n )\n}\n\ntype TabProps = {\n fieldTab: ClientTab\n tab: VersionTab\n} & FieldDiffClientProps<TabsFieldClient>\n\nconst Tab: React.FC<TabProps> = ({
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useTranslation","React","useSelectedLocales","DiffCollapser","RenderVersionFieldsToDiff","baseClass","Tabs","props","$","baseVersionField","comparisonValue","field","versionValue","selectedLocales","t0","tabs","t1","tab","i","fields","length","fieldTab","_jsx","className","children","localized","map","locale","index","localizedTabProps","comparison","name","version","Tab","join","namedTabProps","parentIsLocalized","i18n","label","_jsxs","t2","t3","versionFields"],"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientTab,\n FieldDiffClientProps,\n TabsFieldClient,\n TabsFieldDiffClientComponent,\n VersionTab,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useTranslation } from '@payloadcms/ui'\nimport React from 'react'\n\nimport './index.scss'\nimport { useSelectedLocales } from '../../../Default/SelectedLocalesContext.js'\nimport { DiffCollapser } from '../../DiffCollapser/index.js'\nimport { RenderVersionFieldsToDiff } from '../../RenderVersionFieldsToDiff.js'\n\nconst baseClass = 'tabs-diff'\n\nexport const Tabs: TabsFieldDiffClientComponent = (props) => {\n const { baseVersionField, comparisonValue, field, versionValue } = props\n const { selectedLocales } = useSelectedLocales()\n\n return (\n <div className={baseClass}>\n {baseVersionField.tabs.map((tab, i) => {\n if (!tab?.fields?.length) {\n return null\n }\n const fieldTab = field.tabs?.[i]\n return (\n <div className={`${baseClass}__tab`} key={i}>\n {(() => {\n if ('name' in fieldTab && selectedLocales && fieldTab.localized) {\n // Named localized tab\n return selectedLocales.map((locale, index) => {\n const localizedTabProps = {\n ...props,\n comparison: comparisonValue?.[tab.name]?.[locale],\n version: versionValue?.[tab.name]?.[locale],\n }\n return (\n <div className={`${baseClass}__tab-locale`} key={[locale, index].join('-')}>\n <div className={`${baseClass}__tab-locale-value`}>\n <Tab\n key={locale}\n {...localizedTabProps}\n fieldTab={fieldTab}\n locale={locale}\n tab={tab}\n />\n </div>\n </div>\n )\n })\n } else if ('name' in tab && tab.name) {\n // Named tab\n const namedTabProps = {\n ...props,\n comparison: comparisonValue?.[tab.name],\n version: versionValue?.[tab.name],\n }\n return <Tab fieldTab={fieldTab} key={i} {...namedTabProps} tab={tab} />\n } else {\n // Unnamed tab\n return <Tab fieldTab={fieldTab} key={i} {...props} tab={tab} />\n }\n })()}\n </div>\n )\n })}\n </div>\n )\n}\n\ntype TabProps = {\n fieldTab: ClientTab\n tab: VersionTab\n} & FieldDiffClientProps<TabsFieldClient>\n\nconst Tab: React.FC<TabProps> = ({\n comparisonValue,\n fieldTab,\n locale,\n parentIsLocalized,\n tab,\n versionValue,\n}) => {\n const { i18n } = useTranslation()\n const { selectedLocales } = useSelectedLocales()\n\n if (!tab.fields?.length) {\n return null\n }\n\n return (\n <DiffCollapser\n comparison={comparisonValue}\n fields={fieldTab.fields}\n label={\n 'label' in tab &&\n tab.label &&\n typeof tab.label !== 'function' && (\n <span>\n {locale && <span className={`${baseClass}__locale-label`}>{locale}</span>}\n {getTranslation(tab.label, i18n)}\n </span>\n )\n }\n locales={selectedLocales}\n parentIsLocalized={parentIsLocalized || fieldTab.localized}\n version={versionValue}\n >\n <RenderVersionFieldsToDiff versionFields={tab.fields} />\n </DiffCollapser>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,20 +4,22 @@ type Args = {
|
|
|
4
4
|
config: ClientConfig;
|
|
5
5
|
fields: ClientField[];
|
|
6
6
|
locales: string[] | undefined;
|
|
7
|
+
parentIsLocalized: boolean;
|
|
7
8
|
version: unknown;
|
|
8
9
|
};
|
|
9
10
|
/**
|
|
10
11
|
* Recursively counts the number of changed fields between comparison and
|
|
11
12
|
* version data for a given set of fields.
|
|
12
13
|
*/
|
|
13
|
-
export declare function countChangedFields({ comparison, config, fields, locales, version }: Args): number;
|
|
14
|
+
export declare function countChangedFields({ comparison, config, fields, locales, parentIsLocalized, version, }: Args): number;
|
|
14
15
|
type countChangedFieldsInRowsArgs = {
|
|
15
16
|
comparisonRows: unknown[];
|
|
16
17
|
config: ClientConfig;
|
|
17
18
|
field: ArrayFieldClient | BlocksFieldClient;
|
|
18
19
|
locales: string[] | undefined;
|
|
20
|
+
parentIsLocalized: boolean;
|
|
19
21
|
versionRows: unknown[];
|
|
20
22
|
};
|
|
21
|
-
export declare function countChangedFieldsInRows({ comparisonRows, config, field, locales, versionRows, }: countChangedFieldsInRowsArgs): number;
|
|
23
|
+
export declare function countChangedFieldsInRows({ comparisonRows, config, field, locales, parentIsLocalized, versionRows, }: countChangedFieldsInRowsArgs): number;
|
|
22
24
|
export {};
|
|
23
25
|
//# sourceMappingURL=countChangedFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"countChangedFields.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO7F,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,GACR,EAAE,IAAI,UAwKN;AAED,KAAK,4BAA4B,GAAG;IAClC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,cAAmB,EACnB,MAAM,EACN,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,WAAgB,GACjB,EAAE,4BAA4B,UA6B9B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fieldShouldBeLocalized } from 'payload/shared';
|
|
1
2
|
import { fieldHasChanges } from './fieldHasChanges.js';
|
|
2
3
|
import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
|
|
3
4
|
/**
|
|
@@ -9,6 +10,7 @@ export function countChangedFields({
|
|
|
9
10
|
config,
|
|
10
11
|
fields,
|
|
11
12
|
locales,
|
|
13
|
+
parentIsLocalized,
|
|
12
14
|
version
|
|
13
15
|
}) {
|
|
14
16
|
let count = 0;
|
|
@@ -24,7 +26,10 @@ export function countChangedFields({
|
|
|
24
26
|
case 'array':
|
|
25
27
|
case 'blocks':
|
|
26
28
|
{
|
|
27
|
-
if (locales &&
|
|
29
|
+
if (locales && fieldShouldBeLocalized({
|
|
30
|
+
field,
|
|
31
|
+
parentIsLocalized
|
|
32
|
+
})) {
|
|
28
33
|
locales.forEach(locale => {
|
|
29
34
|
const comparisonRows = comparison?.[field.name]?.[locale] ?? [];
|
|
30
35
|
const versionRows = version?.[field.name]?.[locale] ?? [];
|
|
@@ -33,6 +38,7 @@ export function countChangedFields({
|
|
|
33
38
|
config,
|
|
34
39
|
field,
|
|
35
40
|
locales,
|
|
41
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
36
42
|
versionRows
|
|
37
43
|
});
|
|
38
44
|
});
|
|
@@ -44,6 +50,7 @@ export function countChangedFields({
|
|
|
44
50
|
config,
|
|
45
51
|
field,
|
|
46
52
|
locales,
|
|
53
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
47
54
|
versionRows
|
|
48
55
|
});
|
|
49
56
|
}
|
|
@@ -67,7 +74,10 @@ export function countChangedFields({
|
|
|
67
74
|
case 'upload':
|
|
68
75
|
{
|
|
69
76
|
// Fields that have a name and contain data. We can just check if the data has changed.
|
|
70
|
-
if (locales &&
|
|
77
|
+
if (locales && fieldShouldBeLocalized({
|
|
78
|
+
field,
|
|
79
|
+
parentIsLocalized
|
|
80
|
+
})) {
|
|
71
81
|
locales.forEach(locale => {
|
|
72
82
|
if (fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])) {
|
|
73
83
|
count++;
|
|
@@ -87,6 +97,7 @@ export function countChangedFields({
|
|
|
87
97
|
config,
|
|
88
98
|
fields: field.fields,
|
|
89
99
|
locales,
|
|
100
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
90
101
|
version
|
|
91
102
|
});
|
|
92
103
|
break;
|
|
@@ -94,13 +105,17 @@ export function countChangedFields({
|
|
|
94
105
|
// Fields that have nested fields and nest their fields' data.
|
|
95
106
|
case 'group':
|
|
96
107
|
{
|
|
97
|
-
if (locales &&
|
|
108
|
+
if (locales && fieldShouldBeLocalized({
|
|
109
|
+
field,
|
|
110
|
+
parentIsLocalized
|
|
111
|
+
})) {
|
|
98
112
|
locales.forEach(locale => {
|
|
99
113
|
count += countChangedFields({
|
|
100
114
|
comparison: comparison?.[field.name]?.[locale],
|
|
101
115
|
config,
|
|
102
116
|
fields: field.fields,
|
|
103
117
|
locales,
|
|
118
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
104
119
|
version: version?.[field.name]?.[locale]
|
|
105
120
|
});
|
|
106
121
|
});
|
|
@@ -110,6 +125,7 @@ export function countChangedFields({
|
|
|
110
125
|
config,
|
|
111
126
|
fields: field.fields,
|
|
112
127
|
locales,
|
|
128
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
113
129
|
version: version?.[field.name]
|
|
114
130
|
});
|
|
115
131
|
}
|
|
@@ -128,6 +144,7 @@ export function countChangedFields({
|
|
|
128
144
|
config,
|
|
129
145
|
fields: tab.fields,
|
|
130
146
|
locales,
|
|
147
|
+
parentIsLocalized: parentIsLocalized || tab.localized,
|
|
131
148
|
version: version?.[tab.name]?.[locale]
|
|
132
149
|
});
|
|
133
150
|
});
|
|
@@ -138,6 +155,7 @@ export function countChangedFields({
|
|
|
138
155
|
config,
|
|
139
156
|
fields: tab.fields,
|
|
140
157
|
locales,
|
|
158
|
+
parentIsLocalized: parentIsLocalized || tab.localized,
|
|
141
159
|
version: version?.[tab.name]
|
|
142
160
|
});
|
|
143
161
|
} else {
|
|
@@ -147,6 +165,7 @@ export function countChangedFields({
|
|
|
147
165
|
config,
|
|
148
166
|
fields: tab.fields,
|
|
149
167
|
locales,
|
|
168
|
+
parentIsLocalized: parentIsLocalized || tab.localized,
|
|
150
169
|
version
|
|
151
170
|
});
|
|
152
171
|
}
|
|
@@ -173,6 +192,7 @@ export function countChangedFieldsInRows({
|
|
|
173
192
|
config,
|
|
174
193
|
field,
|
|
175
194
|
locales,
|
|
195
|
+
parentIsLocalized,
|
|
176
196
|
versionRows = []
|
|
177
197
|
}) {
|
|
178
198
|
let count = 0;
|
|
@@ -200,6 +220,7 @@ export function countChangedFieldsInRows({
|
|
|
200
220
|
config,
|
|
201
221
|
fields: rowFields,
|
|
202
222
|
locales,
|
|
223
|
+
parentIsLocalized: parentIsLocalized || field.localized,
|
|
203
224
|
version: versionRow
|
|
204
225
|
});
|
|
205
226
|
i++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"countChangedFields.js","names":["fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","version","count","forEach","field","name","fieldType","type","localized","locale","comparisonRows","versionRows","countChangedFieldsInRows","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({ comparison, config, fields, locales, version }: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && field.localized) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({ comparisonRows, config, field, locales, versionRows })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && field.localized) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && field.localized) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","fieldHasChanges","getFieldsForRowComparison","countChangedFields","comparison","config","fields","locales","parentIsLocalized","version","count","forEach","field","name","fieldType","type","locale","comparisonRows","versionRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","comparisonRow","versionRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n comparison: unknown\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n version: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n comparison,\n config,\n fields,\n locales,\n parentIsLocalized,\n version,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const comparisonRows = comparison?.[field.name]?.[locale] ?? []\n const versionRows = version?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n })\n } else {\n const comparisonRows = comparison?.[field.name] ?? []\n const versionRows = version?.[field.name] ?? []\n count += countChangedFieldsInRows({\n comparisonRows,\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n versionRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(version?.[field.name]?.[locale], comparison?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(version?.[field.name], comparison?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n comparison,\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[field.name]?.[locale],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n comparison: comparison?.[field.name],\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: version?.[field.name],\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n comparison: comparison?.[tab.name]?.[locale],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n comparison: comparison?.[tab.name],\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version: version?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n comparison,\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n version,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n comparisonRows: unknown[]\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n versionRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n comparisonRows = [],\n config,\n field,\n locales,\n parentIsLocalized,\n versionRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (comparisonRows[i] || versionRows[i]) {\n const comparisonRow = comparisonRows?.[i] || {}\n const versionRow = versionRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n comparisonRow,\n config,\n field,\n row: i,\n versionRow,\n })\n\n count += countChangedFields({\n comparison: comparisonRow,\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n version: versionRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoG5B,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
|
-
import { Button,
|
|
5
|
+
import { Button, ConfirmationModal, PopupList, toast, useConfig, useModal, useRouteTransition, useTranslation } from '@payloadcms/ui';
|
|
6
6
|
import { formatAdminURL, requests } from '@payloadcms/ui/shared';
|
|
7
7
|
import { useRouter } from 'next/navigation.js';
|
|
8
8
|
import React, { Fragment, useCallback, useState } from 'react';
|
|
9
|
-
import { toast } from 'sonner';
|
|
10
9
|
const baseClass = 'restore-version';
|
|
11
10
|
const modalSlug = 'restore-version';
|
|
12
11
|
const Restore = ({
|
|
@@ -35,7 +34,6 @@ const Restore = ({
|
|
|
35
34
|
const {
|
|
36
35
|
toggleModal
|
|
37
36
|
} = useModal();
|
|
38
|
-
const [processing, setProcessing] = useState(false);
|
|
39
37
|
const router = useRouter();
|
|
40
38
|
const {
|
|
41
39
|
i18n,
|
|
@@ -67,7 +65,6 @@ const Restore = ({
|
|
|
67
65
|
});
|
|
68
66
|
}
|
|
69
67
|
const handleRestore = useCallback(async () => {
|
|
70
|
-
setProcessing(true);
|
|
71
68
|
const res = await requests.post(fetchURL, {
|
|
72
69
|
headers: {
|
|
73
70
|
'Accept-Language': i18n.language
|
|
@@ -76,7 +73,7 @@ const Restore = ({
|
|
|
76
73
|
if (res.status === 200) {
|
|
77
74
|
const json = await res.json();
|
|
78
75
|
toast.success(json.message);
|
|
79
|
-
startRouteTransition(() => router.push(redirectURL));
|
|
76
|
+
return startRouteTransition(() => router.push(redirectURL));
|
|
80
77
|
} else {
|
|
81
78
|
toast.error(t('version:problemRestoringVersion'));
|
|
82
79
|
}
|
|
@@ -97,32 +94,12 @@ const Restore = ({
|
|
|
97
94
|
}) : null,
|
|
98
95
|
children: t('version:restoreThisVersion')
|
|
99
96
|
})
|
|
100
|
-
}), /*#__PURE__*/_jsx(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
className: `${baseClass}__content`,
|
|
107
|
-
children: [/*#__PURE__*/_jsx("h1", {
|
|
108
|
-
children: t('version:confirmVersionRestoration')
|
|
109
|
-
}), /*#__PURE__*/_jsx("p", {
|
|
110
|
-
children: restoreMessage
|
|
111
|
-
})]
|
|
112
|
-
}), /*#__PURE__*/_jsxs("div", {
|
|
113
|
-
className: `${baseClass}__controls`,
|
|
114
|
-
children: [/*#__PURE__*/_jsx(Button, {
|
|
115
|
-
buttonStyle: "secondary",
|
|
116
|
-
onClick: processing ? undefined : () => toggleModal(modalSlug),
|
|
117
|
-
size: "large",
|
|
118
|
-
type: "button",
|
|
119
|
-
children: t('general:cancel')
|
|
120
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
121
|
-
onClick: processing ? undefined : () => void handleRestore(),
|
|
122
|
-
children: processing ? t('version:restoring') : t('general:confirm')
|
|
123
|
-
})]
|
|
124
|
-
})]
|
|
125
|
-
})
|
|
97
|
+
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
98
|
+
body: restoreMessage,
|
|
99
|
+
confirmingLabel: t('version:restoring'),
|
|
100
|
+
heading: t('version:confirmVersionRestoration'),
|
|
101
|
+
modalSlug: modalSlug,
|
|
102
|
+
onConfirm: handleRestore
|
|
126
103
|
})]
|
|
127
104
|
});
|
|
128
105
|
};
|