@payloadcms/next 3.0.0-canary.ac498e7 → 3.0.0-canary.b6520aa

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.
Files changed (122) hide show
  1. package/dist/cjs/withPayload.cjs +18 -11
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +7 -5
  4. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  6. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  7. package/dist/elements/EmailAndUsername/index.d.ts +14 -0
  8. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
  9. package/dist/elements/EmailAndUsername/index.js +85 -0
  10. package/dist/elements/EmailAndUsername/index.js.map +1 -0
  11. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  12. package/dist/elements/LeaveWithoutSaving/index.js +2 -0
  13. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  14. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  15. package/dist/elements/Nav/index.client.js +5 -1
  16. package/dist/elements/Nav/index.client.js.map +1 -1
  17. package/dist/layouts/Root/index.d.ts.map +1 -1
  18. package/dist/layouts/Root/index.js +0 -17
  19. package/dist/layouts/Root/index.js.map +1 -1
  20. package/dist/prod/styles.css +1 -1
  21. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  22. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  23. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  24. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  25. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  26. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  27. package/dist/scss/app.scss +5 -10
  28. package/dist/scss/toastify.scss +59 -0
  29. package/dist/scss/toasts.scss +75 -45
  30. package/dist/scss/type.scss +14 -23
  31. package/dist/scss/vars.scss +26 -47
  32. package/dist/utilities/initPage/handleAdminPage.js +16 -5
  33. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  34. package/dist/utilities/initPage/handleAuthRedirect.js +10 -2
  35. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  36. package/dist/utilities/initPage/shared.d.ts +14 -2
  37. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  38. package/dist/utilities/initPage/shared.js +14 -4
  39. package/dist/utilities/initPage/shared.js.map +1 -1
  40. package/dist/utilities/meta.d.ts.map +1 -1
  41. package/dist/utilities/meta.js +2 -4
  42. package/dist/utilities/meta.js.map +1 -1
  43. package/dist/views/CreateFirstUser/index.client.d.ts +2 -3
  44. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  45. package/dist/views/CreateFirstUser/index.client.js +13 -19
  46. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  47. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  48. package/dist/views/CreateFirstUser/index.js +8 -49
  49. package/dist/views/CreateFirstUser/index.js.map +1 -1
  50. package/dist/views/CreateFirstUser/index.scss +4 -0
  51. package/dist/views/Dashboard/Default/index.scss +11 -7
  52. package/dist/views/Document/getDocumentData.d.ts +1 -0
  53. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  54. package/dist/views/Document/getDocumentData.js +3 -2
  55. package/dist/views/Document/getDocumentData.js.map +1 -1
  56. package/dist/views/Document/index.d.ts.map +1 -1
  57. package/dist/views/Document/index.js +2 -1
  58. package/dist/views/Document/index.js.map +1 -1
  59. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  60. package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
  61. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  62. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  63. package/dist/views/Edit/Default/Auth/index.js +65 -32
  64. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  65. package/dist/views/Edit/Default/Auth/types.d.ts +2 -0
  66. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  67. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  68. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  69. package/dist/views/Edit/Default/index.js +16 -9
  70. package/dist/views/Edit/Default/index.js.map +1 -1
  71. package/dist/views/Edit/Default/index.scss +2 -2
  72. package/dist/views/ForgotPassword/index.js +1 -0
  73. package/dist/views/ForgotPassword/index.js.map +1 -1
  74. package/dist/views/List/Default/index.scss +2 -5
  75. package/dist/views/List/index.d.ts.map +1 -1
  76. package/dist/views/List/index.js +17 -3
  77. package/dist/views/List/index.js.map +1 -1
  78. package/dist/views/Login/LoginField/index.d.ts +2 -0
  79. package/dist/views/Login/LoginField/index.d.ts.map +1 -1
  80. package/dist/views/Login/LoginField/index.js +11 -66
  81. package/dist/views/Login/LoginField/index.js.map +1 -1
  82. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  83. package/dist/views/Login/LoginForm/index.js +2 -19
  84. package/dist/views/Login/LoginForm/index.js.map +1 -1
  85. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  86. package/dist/views/Logout/LogoutClient.js +2 -1
  87. package/dist/views/Logout/LogoutClient.js.map +1 -1
  88. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  89. package/dist/views/NotFound/index.client.js +1 -0
  90. package/dist/views/NotFound/index.client.js.map +1 -1
  91. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  92. package/dist/views/ResetPassword/index.client.js +11 -27
  93. package/dist/views/ResetPassword/index.client.js.map +1 -1
  94. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  95. package/dist/views/Unauthorized/index.js +1 -0
  96. package/dist/views/Unauthorized/index.js.map +1 -1
  97. package/dist/views/Version/Default/index.d.ts.map +1 -1
  98. package/dist/views/Version/Default/index.js +3 -1
  99. package/dist/views/Version/Default/index.js.map +1 -1
  100. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  101. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +41 -21
  102. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  103. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +2 -2
  104. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
  105. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  106. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  107. package/dist/views/Version/Restore/index.js +35 -8
  108. package/dist/views/Version/Restore/index.js.map +1 -1
  109. package/dist/views/Version/Restore/index.scss +31 -0
  110. package/dist/views/Version/Restore/types.d.ts +1 -0
  111. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  112. package/dist/views/Version/Restore/types.js.map +1 -1
  113. package/dist/views/Version/index.d.ts.map +1 -1
  114. package/dist/views/Version/index.js +2 -2
  115. package/dist/views/Version/index.js.map +1 -1
  116. package/dist/views/Versions/index.client.d.ts.map +1 -1
  117. package/dist/views/Versions/index.client.js +3 -2
  118. package/dist/views/Versions/index.client.js.map +1 -1
  119. package/dist/withPayload.d.ts.map +1 -1
  120. package/dist/withPayload.js +18 -11
  121. package/dist/withPayload.js.map +1 -1
  122. package/package.json +7 -7
@@ -10,51 +10,71 @@ import { diffStyles } from '../styles.js';
10
10
  const ReactDiffViewer = ReactDiffViewerImport.default || ReactDiffViewerImport;
11
11
  const baseClass = 'relationship-diff';
12
12
  const generateLabelFromValue = (collections, field, locale, value)=>{
13
- let relation;
13
+ if (Array.isArray(value)) {
14
+ return value.map((v)=>generateLabelFromValue(collections, field, locale, v)).filter(Boolean) // Filters out any undefined or empty values
15
+ .join(', ');
16
+ }
14
17
  let relatedDoc;
15
18
  let valueToReturn = '';
16
19
  const relationTo = 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined;
17
20
  if (value === null || typeof value === 'undefined') {
18
21
  return String(value);
19
22
  }
20
- if (Array.isArray(relationTo)) {
21
- if (typeof value === 'object') {
22
- relation = value.relationTo;
23
- relatedDoc = value.value;
24
- }
23
+ if (typeof value === 'object' && 'relationTo' in value) {
24
+ relatedDoc = value.value;
25
25
  } else {
26
- relation = relationTo;
26
+ // Non-polymorphic relationship
27
27
  relatedDoc = value;
28
28
  }
29
- const relatedCollection = collections.find((c)=>c.slug === relation);
29
+ const relatedCollection = relationTo ? collections.find((c)=>c.slug === (typeof value === 'object' && 'relationTo' in value ? value.relationTo : relationTo)) : null;
30
30
  if (relatedCollection) {
31
31
  const useAsTitle = relatedCollection?.admin?.useAsTitle;
32
32
  const useAsTitleField = relatedCollection.fields.find((f)=>fieldAffectsData(f) && !fieldIsPresentationalOnly(f) && f.name === useAsTitle);
33
33
  let titleFieldIsLocalized = false;
34
- if (useAsTitleField && fieldAffectsData(useAsTitleField)) titleFieldIsLocalized = useAsTitleField.localized;
34
+ if (useAsTitleField && fieldAffectsData(useAsTitleField)) {
35
+ titleFieldIsLocalized = useAsTitleField.localized;
36
+ }
35
37
  if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {
36
38
  valueToReturn = relatedDoc[useAsTitle];
37
39
  } else if (typeof relatedDoc?.id !== 'undefined') {
38
40
  valueToReturn = relatedDoc.id;
41
+ } else {
42
+ valueToReturn = relatedDoc;
39
43
  }
40
44
  if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {
41
45
  valueToReturn = valueToReturn[locale];
42
46
  }
47
+ } else if (relatedDoc) {
48
+ // Handle non-polymorphic `hasMany` relationships or fallback
49
+ if (typeof relatedDoc.id !== 'undefined') {
50
+ valueToReturn = relatedDoc.id;
51
+ } else {
52
+ valueToReturn = relatedDoc;
53
+ }
54
+ }
55
+ if (typeof valueToReturn === 'object' && valueToReturn !== null) {
56
+ valueToReturn = JSON.stringify(valueToReturn);
43
57
  }
44
58
  return valueToReturn;
45
59
  };
46
60
  const Relationship = ({ comparison, field, i18n, locale, version })=>{
47
- let placeholder = '';
61
+ const placeholder = `[${i18n.t('general:noValue')}]`;
48
62
  const { collections } = useConfig();
49
- if (version === comparison) placeholder = `[${i18n.t('general:noValue')}]`;
50
- let versionToRender = version;
51
- let comparisonToRender = comparison;
52
- if ('hasMany' in field && field.hasMany) {
53
- if (Array.isArray(version)) versionToRender = version.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ');
54
- if (Array.isArray(comparison)) comparisonToRender = comparison.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ');
55
- } else {
56
- versionToRender = generateLabelFromValue(collections, field, locale, version);
57
- comparisonToRender = generateLabelFromValue(collections, field, locale, comparison);
63
+ let versionToRender = placeholder;
64
+ let comparisonToRender = placeholder;
65
+ if (version) {
66
+ if ('hasMany' in field && field.hasMany && Array.isArray(version)) {
67
+ versionToRender = version.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ') || placeholder;
68
+ } else {
69
+ versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder;
70
+ }
71
+ }
72
+ if (comparison) {
73
+ if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {
74
+ comparisonToRender = comparison.map((val)=>generateLabelFromValue(collections, field, locale, val)).join(', ') || placeholder;
75
+ } else {
76
+ comparisonToRender = generateLabelFromValue(collections, field, locale, comparison) || placeholder;
77
+ }
58
78
  }
59
79
  const label = 'label' in field.fieldComponentProps && typeof field.fieldComponentProps.label !== 'boolean' && typeof field.fieldComponentProps.label !== 'function' ? field.fieldComponentProps.label : '';
60
80
  return /*#__PURE__*/ _jsxs("div", {
@@ -71,8 +91,8 @@ const Relationship = ({ comparison, field, i18n, locale, version })=>{
71
91
  }),
72
92
  /*#__PURE__*/ _jsx(ReactDiffViewer, {
73
93
  hideLineNumbers: true,
74
- newValue: typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder,
75
- oldValue: typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder,
94
+ newValue: versionToRender,
95
+ oldValue: comparisonToRender,
76
96
  showDiffOnly: false,
77
97
  splitView: true,
78
98
  styles: diffStyles
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\n locale: string,\n value: { relationTo: string; value: RelationshipValue } | RelationshipValue,\n): string => {\n let relation: string\n let relatedDoc: RelationshipValue\n let valueToReturn = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === 'undefined') {\n return String(value)\n }\n\n if (Array.isArray(relationTo)) {\n if (typeof value === 'object') {\n relation = value.relationTo\n relatedDoc = value.value\n }\n } else {\n relation = relationTo\n relatedDoc = value\n }\n\n const relatedCollection = collections.find((c) => c.slug === relation)\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 if (typeof relatedDoc?.[useAsTitle] !== 'undefined') {\n valueToReturn = relatedDoc[useAsTitle]\n } else if (typeof relatedDoc?.id !== 'undefined') {\n valueToReturn = relatedDoc.id\n }\n\n if (typeof valueToReturn === 'object' && titleFieldIsLocalized) {\n valueToReturn = valueToReturn[locale]\n }\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n let placeholder = ''\n\n const { collections } = useConfig()\n\n if (version === comparison) placeholder = `[${i18n.t('general:noValue')}]`\n\n let versionToRender = version\n let comparisonToRender = comparison\n\n if ('hasMany' in field && field.hasMany) {\n if (Array.isArray(version))\n versionToRender = version\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n if (Array.isArray(comparison))\n comparisonToRender = comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ')\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version)\n comparisonToRender = generateLabelFromValue(collections, field, locale, comparison)\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.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={typeof versionToRender !== 'undefined' ? String(versionToRender) : placeholder}\n oldValue={\n typeof comparisonToRender !== 'undefined' ? String(comparisonToRender) : placeholder\n }\n showDiffOnly={false}\n splitView\n styles={diffStyles}\n />\n </div>\n )\n}\n\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","relation","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","Array","isArray","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","map","val","join","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/views/Version/RenderFieldsToDiff/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, MappedField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useConfig } from '@payloadcms/ui'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\nimport ReactDiffViewerImport from 'react-diff-viewer-continued'\n\nimport type { Props } from '../types.js'\n\nimport Label from '../../Label/index.js'\nimport { diffStyles } from '../styles.js'\nimport './index.scss'\n\nconst ReactDiffViewer = (ReactDiffViewerImport.default ||\n ReactDiffViewerImport) as unknown as typeof ReactDiffViewerImport.default\n\nconst baseClass = 'relationship-diff'\n\ntype RelationshipValue = Record<string, any>\n\nconst generateLabelFromValue = (\n collections: ClientCollectionConfig[],\n field: MappedField,\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 = '' as any\n\n const relationTo =\n 'relationTo' in field.fieldComponentProps ? field.fieldComponentProps.relationTo : undefined\n\n if (value === null || typeof value === '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) {\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 = relatedDoc.id\n } else {\n valueToReturn = relatedDoc\n }\n }\n\n if (typeof valueToReturn === 'object' && valueToReturn !== null) {\n valueToReturn = JSON.stringify(valueToReturn)\n }\n\n return valueToReturn\n}\n\nconst Relationship: React.FC<Props> = ({ comparison, field, i18n, locale, version }) => {\n const placeholder = `[${i18n.t('general:noValue')}]`\n\n const { collections } = useConfig()\n\n let versionToRender: string | undefined = placeholder\n let comparisonToRender: string | undefined = placeholder\n\n if (version) {\n if ('hasMany' in field && field.hasMany && Array.isArray(version)) {\n versionToRender =\n version.map((val) => generateLabelFromValue(collections, field, locale, val)).join(', ') ||\n placeholder\n } else {\n versionToRender = generateLabelFromValue(collections, field, locale, version) || placeholder\n }\n }\n\n if (comparison) {\n if ('hasMany' in field && field.hasMany && Array.isArray(comparison)) {\n comparisonToRender =\n comparison\n .map((val) => generateLabelFromValue(collections, field, locale, val))\n .join(', ') || placeholder\n } else {\n comparisonToRender =\n generateLabelFromValue(collections, field, locale, comparison) || placeholder\n }\n }\n\n const label =\n 'label' in field.fieldComponentProps &&\n typeof field.fieldComponentProps.label !== 'boolean' &&\n typeof field.fieldComponentProps.label !== 'function'\n ? field.fieldComponentProps.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\nexport default Relationship\n"],"names":["getTranslation","useConfig","fieldAffectsData","fieldIsPresentationalOnly","React","ReactDiffViewerImport","Label","diffStyles","ReactDiffViewer","default","baseClass","generateLabelFromValue","collections","field","locale","value","Array","isArray","map","v","filter","Boolean","join","relatedDoc","valueToReturn","relationTo","fieldComponentProps","undefined","String","relatedCollection","find","c","slug","useAsTitle","admin","useAsTitleField","fields","f","name","titleFieldIsLocalized","localized","id","JSON","stringify","Relationship","comparison","i18n","version","placeholder","t","versionToRender","comparisonToRender","hasMany","val","label","div","className","span","hideLineNumbers","newValue","oldValue","showDiffOnly","splitView","styles"],"mappings":"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"}
@@ -13,7 +13,7 @@ declare const _default: {
13
13
  radio: import("react").FC<{
14
14
  field: import("packages/payload/src/index.js").MappedField & import("packages/payload/src/index.js").SelectFieldProps;
15
15
  } & Omit<import("./types.js").Props, "field">>;
16
- relationship: any;
16
+ relationship: import("react").FC<import("./types.js").Props>;
17
17
  richText: import("react").FC<import("./types.js").Props>;
18
18
  row: import("react").FC<import("./types.js").Props>;
19
19
  select: import("react").FC<{
@@ -24,7 +24,7 @@ declare const _default: {
24
24
  } & Omit<import("./types.js").Props, "field">>;
25
25
  text: import("react").FC<import("./types.js").Props>;
26
26
  textarea: import("react").FC<import("./types.js").Props>;
27
- upload: any;
27
+ upload: import("react").FC<import("./types.js").Props>;
28
28
  };
29
29
  export default _default;
30
30
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import Iterable from './Iterable/index.js';
2
2
  import Nested from './Nested/index.js';
3
+ import Relationship from './Relationship/index.js';
3
4
  import Select from './Select/index.js';
4
5
  import Tabs from './Tabs/index.js';
5
6
  import Text from './Text/index.js';
@@ -16,14 +17,14 @@ export default {
16
17
  number: Text,
17
18
  point: Text,
18
19
  radio: Select,
19
- relationship: null,
20
+ relationship: Relationship,
20
21
  richText: Text,
21
22
  row: Nested,
22
23
  select: Select,
23
24
  tabs: Tabs,
24
25
  text: Text,
25
26
  textarea: Text,
26
- upload: null
27
+ upload: Relationship
27
28
  };
28
29
 
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport default {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: null,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: null,\n}\n"],"names":["Iterable","Nested","Select","Tabs","Text","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"mappings":"AAAA,OAAOA,cAAc,sBAAqB;AAC1C,OAAOC,YAAY,oBAAmB;AAEtC,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,UAAU,kBAAiB;AAClC,OAAOC,UAAU,kBAAiB;AAElC,eAAe;IACbC,OAAOL;IACPM,QAAQN;IACRO,UAAUH;IACVI,MAAMJ;IACNK,aAAaR;IACbS,MAAMN;IACNO,OAAOP;IACPQ,OAAOX;IACPY,MAAMT;IACNU,QAAQV;IACRW,OAAOX;IACPY,OAAOd;IACPe,cAAc;IACdC,UAAUd;IACVe,KAAKlB;IACLmB,QAAQlB;IACRmB,MAAMlB;IACNmB,MAAMlB;IACNmB,UAAUnB;IACVoB,QAAQ;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import Iterable from './Iterable/index.js'\nimport Nested from './Nested/index.js'\nimport Relationship from './Relationship/index.js'\nimport Select from './Select/index.js'\nimport Tabs from './Tabs/index.js'\nimport Text from './Text/index.js'\n\nexport default {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Nested,\n date: Text,\n email: Text,\n group: Nested,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: Relationship,\n richText: Text,\n row: Nested,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n upload: Relationship,\n}\n"],"names":["Iterable","Nested","Relationship","Select","Tabs","Text","array","blocks","checkbox","code","collapsible","date","email","group","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","upload"],"mappings":"AAAA,OAAOA,cAAc,sBAAqB;AAC1C,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,kBAAkB,0BAAyB;AAClD,OAAOC,YAAY,oBAAmB;AACtC,OAAOC,UAAU,kBAAiB;AAClC,OAAOC,UAAU,kBAAiB;AAElC,eAAe;IACbC,OAAON;IACPO,QAAQP;IACRQ,UAAUH;IACVI,MAAMJ;IACNK,aAAaT;IACbU,MAAMN;IACNO,OAAOP;IACPQ,OAAOZ;IACPa,MAAMT;IACNU,QAAQV;IACRW,OAAOX;IACPY,OAAOd;IACPe,cAAchB;IACdiB,UAAUd;IACVe,KAAKnB;IACLoB,QAAQlB;IACRmB,MAAMlB;IACNmB,MAAMlB;IACNmB,UAAUnB;IACVoB,QAAQvB;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuF5B,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8G5B,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
- import { Button, Modal, Pill, useConfig, useModal, useTranslation } from '@payloadcms/ui';
4
+ import { Button, ChevronIcon, Modal, Pill, Popup, PopupList, useConfig, useModal, useTranslation } from '@payloadcms/ui';
5
5
  import { formatAdminURL, requests } from '@payloadcms/ui/shared';
6
6
  import { useRouter } from 'next/navigation.js';
7
7
  import React, { Fragment, useCallback, useState } from 'react';
@@ -9,27 +9,29 @@ import { toast } from 'sonner';
9
9
  import { MinimalTemplate } from '../../../templates/Minimal/index.js';
10
10
  const baseClass = 'restore-version';
11
11
  const modalSlug = 'restore-version';
12
- const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID, versionDate, versionID })=>{
12
+ const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID, status, versionDate, versionID })=>{
13
13
  const { routes: { admin: adminRoute, api: apiRoute }, serverURL } = useConfig();
14
14
  const { toggleModal } = useModal();
15
15
  const [processing, setProcessing] = useState(false);
16
16
  const router = useRouter();
17
17
  const { i18n, t } = useTranslation();
18
+ const [draft, setDraft] = useState(false);
18
19
  const restoreMessage = t('version:aboutToRestoreGlobal', {
19
20
  label: getTranslation(label, i18n),
20
21
  versionDate
21
22
  });
22
23
  let fetchURL = `${serverURL}${apiRoute}`;
23
24
  let redirectURL;
25
+ const canRestoreAsDraft = status !== 'draft';
24
26
  if (collectionSlug) {
25
- fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}`;
27
+ fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`;
26
28
  redirectURL = formatAdminURL({
27
29
  adminRoute,
28
30
  path: `/collections/${collectionSlug}/${originalDocID}`
29
31
  });
30
32
  }
31
33
  if (globalSlug) {
32
- fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}`;
34
+ fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`;
33
35
  redirectURL = formatAdminURL({
34
36
  adminRoute,
35
37
  path: `/globals/${globalSlug}`
@@ -58,13 +60,38 @@ const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID,
58
60
  ]);
59
61
  return /*#__PURE__*/ _jsxs(Fragment, {
60
62
  children: [
61
- /*#__PURE__*/ _jsx(Pill, {
63
+ /*#__PURE__*/ _jsxs("div", {
62
64
  className: [
63
65
  baseClass,
64
66
  className
65
67
  ].filter(Boolean).join(' '),
66
- onClick: ()=>toggleModal(modalSlug),
67
- children: t('version:restoreThisVersion')
68
+ children: [
69
+ /*#__PURE__*/ _jsx(Pill, {
70
+ className: [
71
+ canRestoreAsDraft && `${baseClass}__button`
72
+ ].filter(Boolean).join(' '),
73
+ onClick: ()=>toggleModal(modalSlug),
74
+ children: t('version:restoreThisVersion')
75
+ }),
76
+ canRestoreAsDraft && /*#__PURE__*/ _jsx(Popup, {
77
+ button: /*#__PURE__*/ _jsx(Pill, {
78
+ className: `${baseClass}__chevron`,
79
+ children: /*#__PURE__*/ _jsx(ChevronIcon, {})
80
+ }),
81
+ caret: false,
82
+ render: ()=>/*#__PURE__*/ _jsx(PopupList.ButtonGroup, {
83
+ children: /*#__PURE__*/ _jsx(PopupList.Button, {
84
+ onClick: ()=>[
85
+ setDraft(true),
86
+ toggleModal(modalSlug)
87
+ ],
88
+ children: t('version:restoreAsDraft')
89
+ })
90
+ }),
91
+ size: "large",
92
+ verticalAlign: "bottom"
93
+ })
94
+ ]
68
95
  }),
69
96
  /*#__PURE__*/ _jsx(Modal, {
70
97
  className: `${baseClass}__modal`,
@@ -85,7 +112,7 @@ const Restore = ({ className, collectionSlug, globalSlug, label, originalDocID,
85
112
  children: t('general:cancel')
86
113
  }),
87
114
  /*#__PURE__*/ _jsx(Button, {
88
- onClick: processing ? undefined : handleRestore,
115
+ onClick: processing ? undefined : ()=>void handleRestore(),
89
116
  children: processing ? t('version:restoring') : t('general:confirm')
90
117
  })
91
118
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Modal, Pill, useConfig, useModal, useTranslation } from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { MinimalTemplate } from '../../../templates/Minimal/index.js'\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n versionDate,\n versionID,\n}) => {\n const {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\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 router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n\n return (\n <Fragment>\n <Pill\n className={[baseClass, className].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n >\n {t('version:restoreThisVersion')}\n </Pill>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : handleRestore}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"names":["getTranslation","Button","Modal","Pill","useConfig","useModal","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","MinimalTemplate","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","versionDate","versionID","routes","admin","adminRoute","api","apiRoute","serverURL","toggleModal","processing","setProcessing","router","i18n","t","restoreMessage","fetchURL","redirectURL","path","handleRestore","res","post","headers","language","status","json","success","message","push","error","filter","Boolean","join","onClick","slug","h1","p","buttonStyle","undefined","type"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,iBAAgB;AACzF,SAASC,cAAc,EAAEC,QAAQ,QAAQ,wBAAuB;AAChE,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAC9D,SAASC,KAAK,QAAQ,SAAQ;AAI9B,SAASC,eAAe,QAAQ,sCAAqC;AAGrE,MAAMC,YAAY;AAClB,MAAMC,YAAY;AAElB,MAAMC,UAA2B,CAAC,EAChCC,SAAS,EACTC,cAAc,EACdC,UAAU,EACVC,KAAK,EACLC,aAAa,EACbC,WAAW,EACXC,SAAS,EACV;IACC,MAAM,EACJC,QAAQ,EAAEC,OAAOC,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC5CC,SAAS,EACV,GAAG3B;IAEJ,MAAM,EAAE4B,WAAW,EAAE,GAAG3B;IACxB,MAAM,CAAC4B,YAAYC,cAAc,GAAGrB,SAAS;IAC7C,MAAMsB,SAAS1B;IACf,MAAM,EAAE2B,IAAI,EAAEC,CAAC,EAAE,GAAG/B;IAEpB,MAAMgC,iBAAiBD,EAAE,gCAAgC;QACvDf,OAAOtB,eAAesB,OAAOc;QAC7BZ;IACF;IAEA,IAAIe,WAAW,CAAC,EAAER,UAAU,EAAED,SAAS,CAAC;IACxC,IAAIU;IAEJ,IAAIpB,gBAAgB;QAClBmB,WAAW,CAAC,EAAEA,SAAS,CAAC,EAAEnB,eAAe,UAAU,EAAEK,UAAU,CAAC;QAChEe,cAAcjC,eAAe;YAC3BqB;YACAa,MAAM,CAAC,aAAa,EAAErB,eAAe,CAAC,EAAEG,cAAc,CAAC;QACzD;IACF;IAEA,IAAIF,YAAY;QACdkB,WAAW,CAAC,EAAEA,SAAS,SAAS,EAAElB,WAAW,UAAU,EAAEI,UAAU,CAAC;QACpEe,cAAcjC,eAAe;YAC3BqB;YACAa,MAAM,CAAC,SAAS,EAAEpB,WAAW,CAAC;QAChC;IACF;IAEA,MAAMqB,gBAAgB9B,YAAY;QAChCsB,cAAc;QAEd,MAAMS,MAAM,MAAMnC,SAASoC,IAAI,CAACL,UAAU;YACxCM,SAAS;gBACP,mBAAmBT,KAAKU,QAAQ;YAClC;QACF;QAEA,IAAIH,IAAII,MAAM,KAAK,KAAK;YACtB,MAAMC,OAAO,MAAML,IAAIK,IAAI;YAC3BlC,MAAMmC,OAAO,CAACD,KAAKE,OAAO;YAC1Bf,OAAOgB,IAAI,CAACX;QACd,OAAO;YACL1B,MAAMsC,KAAK,CAACf,EAAE;QAChB;IACF,GAAG;QAACE;QAAUC;QAAaH;QAAGD;QAAMD;KAAO;IAE3C,qBACE,MAACxB;;0BACC,KAACR;gBACCgB,WAAW;oBAACH;oBAAWG;iBAAU,CAACkC,MAAM,CAACC,SAASC,IAAI,CAAC;gBACvDC,SAAS,IAAMxB,YAAYf;0BAE1BoB,EAAE;;0BAEL,KAACnC;gBAAMiB,WAAW,CAAC,EAAEH,UAAU,OAAO,CAAC;gBAAEyC,MAAMxC;0BAC7C,cAAA,MAACF;oBAAgBI,WAAW,CAAC,EAAEH,UAAU,gBAAgB,CAAC;;sCACxD,KAAC0C;sCAAIrB,EAAE;;sCACP,KAACsB;sCAAGrB;;sCACJ,KAACrC;4BACC2D,aAAY;4BACZJ,SAASvB,aAAa4B,YAAY,IAAM7B,YAAYf;4BACpD6C,MAAK;sCAEJzB,EAAE;;sCAEL,KAACpC;4BAAOuD,SAASvB,aAAa4B,YAAYnB;sCACvCT,aAAaI,EAAE,uBAAuBA,EAAE;;;;;;;AAMrD;AAEA,eAAenB,QAAO"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ChevronIcon,\n Modal,\n Pill,\n Popup,\n PopupList,\n useConfig,\n useModal,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL, requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { MinimalTemplate } from '../../../templates/Minimal/index.js'\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const { toggleModal } = useModal()\n const [processing, setProcessing] = useState(false)\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n const canRestoreAsDraft = status !== 'draft'\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n setProcessing(true)\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 router.push(redirectURL)\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router])\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Pill\n className={[canRestoreAsDraft && `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => toggleModal(modalSlug)}\n >\n {t('version:restoreThisVersion')}\n </Pill>\n {canRestoreAsDraft && (\n <Popup\n button={\n <Pill className={`${baseClass}__chevron`}>\n <ChevronIcon />\n </Pill>\n }\n caret={false}\n render={() => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n size=\"large\"\n verticalAlign=\"bottom\"\n />\n )}\n </div>\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmVersionRestoration')}</h1>\n <p>{restoreMessage}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : () => void handleRestore()}>\n {processing ? t('version:restoring') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </Fragment>\n )\n}\n\nexport default Restore\n"],"names":["getTranslation","Button","ChevronIcon","Modal","Pill","Popup","PopupList","useConfig","useModal","useTranslation","formatAdminURL","requests","useRouter","React","Fragment","useCallback","useState","toast","MinimalTemplate","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","routes","admin","adminRoute","api","apiRoute","serverURL","toggleModal","processing","setProcessing","router","i18n","t","draft","setDraft","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","path","handleRestore","res","post","headers","language","json","success","message","push","error","div","filter","Boolean","join","onClick","button","caret","render","ButtonGroup","size","verticalAlign","slug","h1","p","buttonStyle","undefined","type"],"mappings":"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"}
@@ -2,6 +2,37 @@
2
2
 
3
3
  .restore-version {
4
4
  cursor: pointer;
5
+ display: flex;
6
+
7
+ .popup-button {
8
+ display: flex;
9
+ }
10
+
11
+ &__chevron {
12
+ background-color: var(--theme-elevation-150);
13
+ border-top-left-radius: 0;
14
+ border-bottom-left-radius: 0;
15
+ cursor: pointer;
16
+
17
+ .stroke {
18
+ stroke-width: 1px;
19
+ }
20
+
21
+ &:hover {
22
+ background: var(--theme-elevation-100);
23
+ }
24
+ }
25
+
26
+ &__button {
27
+ border-top-right-radius: 0px;
28
+ border-bottom-right-radius: 0px;
29
+ margin-right: 2px;
30
+
31
+ &:focus {
32
+ border-radius: 0;
33
+ outline-offset: 0;
34
+ }
35
+ }
5
36
 
6
37
  &__modal {
7
38
  @include blur-bg;
@@ -5,6 +5,7 @@ export type Props = {
5
5
  globalSlug?: SanitizedGlobalConfig['slug'];
6
6
  label: SanitizedCollectionConfig['labels']['singular'];
7
7
  originalDocID: number | string;
8
+ status?: string;
8
9
  versionDate: string;
9
10
  versionID: string;
10
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/E,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACtD,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/E,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAClD,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC1C,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACtD,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Restore/types.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nexport type Props = {\n className?: string\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalSlug?: SanitizedGlobalConfig['slug']\n label: SanitizedCollectionConfig['labels']['singular']\n originalDocID: number | string\n versionDate: string\n versionID: string\n}\n"],"names":[],"mappings":"AAEA,WAQC"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Restore/types.ts"],"sourcesContent":["import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload'\n\nexport type Props = {\n className?: string\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalSlug?: SanitizedGlobalConfig['slug']\n label: SanitizedCollectionConfig['labels']['singular']\n originalDocID: number | string\n status?: string\n versionDate: string\n versionID: string\n}\n"],"names":[],"mappings":"AAEA,WASC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,WAAW,EAAE,iBAiHzB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,WAAW,EAAE,iBAgHzB,CAAA"}
@@ -66,8 +66,8 @@ export const VersionView = async (props)=>{
66
66
  updatedAt: ''
67
67
  };
68
68
  }
69
- const localeOptions = localization && localization?.locales && localization.locales.map(({ code, label })=>({
70
- label: typeof label === 'string' ? label : '',
69
+ const localeOptions = localization && localization.locales.map(({ code, label })=>({
70
+ label,
71
71
  value: code
72
72
  }));
73
73
  const latestVersion = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt ? latestPublishedVersion : latestDraftVersion;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization?.locales &&\n localization.locales.map(({ code, label }) => ({\n label: typeof label === 'string' ? label : '',\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","initialComparisonDoc"],"mappings":";AAQA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,GAAG,EACHA,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC,yBAAyB;IAC7B,IAAIC,qBAAqB;IAEzB,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIR,kBAAkByB,UAAUC,QAAQ;gBACtCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,IAAIqB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAYwB,OAAO,CAACf,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQuB,qBAAqB,CAAC;gBACxC3B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIL,cAAcsB,UAAUC,QAAQ;gBAClCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,MAAMsC,0BAA0Bb,wBAAwBc,YAAYb,oBAAoBa;IAExF,IAAID,yBAAyB;QAC3BZ,qBAAqB;YACnBhB,IAAI;YACJ6B,WAAW;QACb;IACF;IAEA,MAAMC,gBACJlB,gBACAA,cAAcmB,WACdnB,aAAamB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA,OAAO,OAAOA,UAAU,WAAWA,QAAQ;YAC3CC,OAAOF;QACT,CAAA;IAEF,MAAMG,gBACJrB,wBAAwBc,YAAYb,oBAAoBa,YACpDd,yBACAC;IAEN,IAAI,CAACF,KAAK;QACR,OAAOxB;IACT;IAEA,qBACE,KAACG;QACCqB,KAAKA;QACLD,gBAAgBA;QAChBwB,sBAAsBD;QACtBpB,oBAAoBA,oBAAoBhB;QACxCe,wBAAwBA,wBAAwBf;QAChD8B,eAAeA;QACfvB,WAAWA;;AAGjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization.locales.map(({ code, label }) => ({\n label,\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion?.id}\n latestPublishedVersion={latestPublishedVersion?.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","initialComparisonDoc"],"mappings":";AAQA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,GAAG,EACHA,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC,yBAAyB;IAC7B,IAAIC,qBAAqB;IAEzB,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIR,kBAAkByB,UAAUC,QAAQ;gBACtCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,IAAIqB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAYwB,OAAO,CAACf,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQuB,qBAAqB,CAAC;gBACxC3B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIL,cAAcsB,UAAUC,QAAQ;gBAClCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,MAAMsC,0BAA0Bb,wBAAwBc,YAAYb,oBAAoBa;IAExF,IAAID,yBAAyB;QAC3BZ,qBAAqB;YACnBhB,IAAI;YACJ6B,WAAW;QACb;IACF;IAEA,MAAMC,gBACJlB,gBACAA,aAAamB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA;YACAC,OAAOF;QACT,CAAA;IAEF,MAAMG,gBACJrB,wBAAwBc,YAAYb,oBAAoBa,YACpDd,yBACAC;IAEN,IAAI,CAACF,KAAK;QACR,OAAOxB;IACT;IAEA,qBACE,KAACG;QACCqB,KAAKA;QACLD,gBAAgBA;QAChBwB,sBAAsBD;QACtBpB,oBAAoBA,oBAAoBhB;QACxCe,wBAAwBA,wBAAwBf;QAChD8B,eAAeA;QACfvB,WAAWA;;AAGjB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EACL,KAAK,MAAM,EAUZ,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;CAC9E,CA+DA,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.client.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EACL,KAAK,MAAM,EAUZ,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAA;CAC9E,CAgEA,CAAA"}
@@ -7,7 +7,7 @@ export const VersionsViewClient = (props)=>{
7
7
  const { baseClass, columns, paginationLimits } = props;
8
8
  const { getComponentMap } = useComponentMap();
9
9
  const { collectionSlug, globalSlug } = useDocumentInfo();
10
- const { data, handlePerPageChange } = useListQuery();
10
+ const { data, handlePageChange, handlePerPageChange } = useListQuery();
11
11
  const componentMap = getComponentMap({
12
12
  collectionSlug,
13
13
  globalSlug
@@ -45,6 +45,7 @@ export const VersionsViewClient = (props)=>{
45
45
  limit: data.limit,
46
46
  nextPage: data.nextPage,
47
47
  numberOfNeighbors: 1,
48
+ onChange: ()=>handlePageChange,
48
49
  page: data.page,
49
50
  prevPage: data.prevPage,
50
51
  totalPages: data.totalPages
@@ -64,7 +65,7 @@ export const VersionsViewClient = (props)=>{
64
65
  ]
65
66
  }),
66
67
  /*#__PURE__*/ _jsx(PerPage, {
67
- handleChange: handlePerPageChange,
68
+ handleChange: ()=>handlePerPageChange,
68
69
  limit: limit ? Number(limit) : 10,
69
70
  limits: paginationLimits
70
71
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/Versions/index.client.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport {\n type Column,\n LoadingOverlayToggle,\n Pagination,\n PerPage,\n SetViewActions,\n Table,\n useComponentMap,\n useDocumentInfo,\n useListQuery,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useSearchParams } from 'next/navigation.js'\nimport React from 'react'\n\nexport const VersionsViewClient: React.FC<{\n baseClass: string\n columns: Column[]\n fetchURL: string\n paginationLimits?: SanitizedCollectionConfig['admin']['pagination']['limits']\n}> = (props) => {\n const { baseClass, columns, paginationLimits } = props\n\n const { getComponentMap } = useComponentMap()\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const { data, handlePerPageChange } = useListQuery()\n\n const componentMap = getComponentMap({\n collectionSlug,\n globalSlug,\n })\n\n const searchParams = useSearchParams()\n const limit = searchParams.get('limit')\n\n const { i18n } = useTranslation()\n\n const versionCount = data?.totalDocs || 0\n\n return (\n <React.Fragment>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.Versions} />\n <LoadingOverlayToggle name=\"versions\" show={!data} />\n {versionCount === 0 && (\n <div className={`${baseClass}__no-versions`}>\n {i18n.t('version:noFurtherVersionsFound')}\n </div>\n )}\n {versionCount > 0 && (\n <React.Fragment>\n <Table columns={columns} data={data?.docs} fieldMap={componentMap?.fieldMap} />\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <React.Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={handlePerPageChange}\n limit={limit ? Number(limit) : 10}\n limits={paginationLimits}\n />\n </React.Fragment>\n )}\n </div>\n </React.Fragment>\n )}\n </React.Fragment>\n )\n}\n"],"names":["LoadingOverlayToggle","Pagination","PerPage","SetViewActions","Table","useComponentMap","useDocumentInfo","useListQuery","useTranslation","useSearchParams","React","VersionsViewClient","props","baseClass","columns","paginationLimits","getComponentMap","collectionSlug","globalSlug","data","handlePerPageChange","componentMap","searchParams","limit","get","i18n","versionCount","totalDocs","Fragment","actions","actionsMap","Edit","Versions","name","show","div","className","t","docs","fieldMap","hasNextPage","hasPrevPage","nextPage","numberOfNeighbors","page","prevPage","totalPages","handleChange","Number","limits"],"mappings":"AAAA;;AAGA,SAEEA,oBAAoB,EACpBC,UAAU,EACVC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,cAAc,QACT,iBAAgB;AACvB,SAASC,eAAe,QAAQ,qBAAoB;AACpD,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,qBAKR,CAACC;IACJ,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,gBAAgB,EAAE,GAAGH;IAEjD,MAAM,EAAEI,eAAe,EAAE,GAAGX;IAC5B,MAAM,EAAEY,cAAc,EAAEC,UAAU,EAAE,GAAGZ;IACvC,MAAM,EAAEa,IAAI,EAAEC,mBAAmB,EAAE,GAAGb;IAEtC,MAAMc,eAAeL,gBAAgB;QACnCC;QACAC;IACF;IAEA,MAAMI,eAAeb;IACrB,MAAMc,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAM,EAAEC,IAAI,EAAE,GAAGjB;IAEjB,MAAMkB,eAAeP,MAAMQ,aAAa;IAExC,qBACE,MAACjB,MAAMkB,QAAQ;;0BACb,KAACzB;gBAAe0B,SAASR,cAAcS,YAAYC,MAAMC;;0BACzD,KAAChC;gBAAqBiC,MAAK;gBAAWC,MAAM,CAACf;;YAC5CO,iBAAiB,mBAChB,KAACS;gBAAIC,WAAW,CAAC,EAAEvB,UAAU,aAAa,CAAC;0BACxCY,KAAKY,CAAC,CAAC;;YAGXX,eAAe,mBACd,MAAChB,MAAMkB,QAAQ;;kCACb,KAACxB;wBAAMU,SAASA;wBAASK,MAAMA,MAAMmB;wBAAMC,UAAUlB,cAAckB;;kCACnE,MAACJ;wBAAIC,WAAW,CAAC,EAAEvB,UAAU,eAAe,CAAC;;0CAC3C,KAACZ;gCACCuC,aAAarB,KAAKqB,WAAW;gCAC7BC,aAAatB,KAAKsB,WAAW;gCAC7BlB,OAAOJ,KAAKI,KAAK;gCACjBmB,UAAUvB,KAAKuB,QAAQ;gCACvBC,mBAAmB;gCACnBC,MAAMzB,KAAKyB,IAAI;gCACfC,UAAU1B,KAAK0B,QAAQ;gCACvBC,YAAY3B,KAAK2B,UAAU;;4BAE5B3B,MAAMQ,YAAY,mBACjB,MAACjB,MAAMkB,QAAQ;;kDACb,MAACO;wCAAIC,WAAW,CAAC,EAAEvB,UAAU,WAAW,CAAC;;4CACtCM,KAAKyB,IAAI,GAAGzB,KAAKI,KAAK,GAAIJ,CAAAA,KAAKI,KAAK,GAAG,CAAA;4CAAG;4CAC1CJ,KAAK2B,UAAU,GAAG,KAAK3B,KAAK2B,UAAU,KAAK3B,KAAKyB,IAAI,GACjDzB,KAAKI,KAAK,GAAGJ,KAAKyB,IAAI,GACtBzB,KAAKQ,SAAS;4CAAE;4CACnBF,KAAKY,CAAC,CAAC;4CAAc;4CAAElB,KAAKQ,SAAS;;;kDAExC,KAACzB;wCACC6C,cAAc3B;wCACdG,OAAOA,QAAQyB,OAAOzB,SAAS;wCAC/B0B,QAAQlC;;;;;;;;;;AAS1B,EAAC"}
1
+ {"version":3,"sources":["../../../src/views/Versions/index.client.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport {\n type Column,\n LoadingOverlayToggle,\n Pagination,\n PerPage,\n SetViewActions,\n Table,\n useComponentMap,\n useDocumentInfo,\n useListQuery,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useSearchParams } from 'next/navigation.js'\nimport React from 'react'\n\nexport const VersionsViewClient: React.FC<{\n baseClass: string\n columns: Column[]\n fetchURL: string\n paginationLimits?: SanitizedCollectionConfig['admin']['pagination']['limits']\n}> = (props) => {\n const { baseClass, columns, paginationLimits } = props\n\n const { getComponentMap } = useComponentMap()\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const { data, handlePageChange, handlePerPageChange } = useListQuery()\n\n const componentMap = getComponentMap({\n collectionSlug,\n globalSlug,\n })\n\n const searchParams = useSearchParams()\n const limit = searchParams.get('limit')\n\n const { i18n } = useTranslation()\n\n const versionCount = data?.totalDocs || 0\n\n return (\n <React.Fragment>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.Versions} />\n <LoadingOverlayToggle name=\"versions\" show={!data} />\n {versionCount === 0 && (\n <div className={`${baseClass}__no-versions`}>\n {i18n.t('version:noFurtherVersionsFound')}\n </div>\n )}\n {versionCount > 0 && (\n <React.Fragment>\n <Table columns={columns} data={data?.docs} fieldMap={componentMap?.fieldMap} />\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={() => handlePageChange}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data?.totalDocs > 0 && (\n <React.Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={() => handlePerPageChange}\n limit={limit ? Number(limit) : 10}\n limits={paginationLimits}\n />\n </React.Fragment>\n )}\n </div>\n </React.Fragment>\n )}\n </React.Fragment>\n )\n}\n"],"names":["LoadingOverlayToggle","Pagination","PerPage","SetViewActions","Table","useComponentMap","useDocumentInfo","useListQuery","useTranslation","useSearchParams","React","VersionsViewClient","props","baseClass","columns","paginationLimits","getComponentMap","collectionSlug","globalSlug","data","handlePageChange","handlePerPageChange","componentMap","searchParams","limit","get","i18n","versionCount","totalDocs","Fragment","actions","actionsMap","Edit","Versions","name","show","div","className","t","docs","fieldMap","hasNextPage","hasPrevPage","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits"],"mappings":"AAAA;;AAGA,SAEEA,oBAAoB,EACpBC,UAAU,EACVC,OAAO,EACPC,cAAc,EACdC,KAAK,EACLC,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,cAAc,QACT,iBAAgB;AACvB,SAASC,eAAe,QAAQ,qBAAoB;AACpD,OAAOC,WAAW,QAAO;AAEzB,OAAO,MAAMC,qBAKR,CAACC;IACJ,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAEC,gBAAgB,EAAE,GAAGH;IAEjD,MAAM,EAAEI,eAAe,EAAE,GAAGX;IAC5B,MAAM,EAAEY,cAAc,EAAEC,UAAU,EAAE,GAAGZ;IACvC,MAAM,EAAEa,IAAI,EAAEC,gBAAgB,EAAEC,mBAAmB,EAAE,GAAGd;IAExD,MAAMe,eAAeN,gBAAgB;QACnCC;QACAC;IACF;IAEA,MAAMK,eAAed;IACrB,MAAMe,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAM,EAAEC,IAAI,EAAE,GAAGlB;IAEjB,MAAMmB,eAAeR,MAAMS,aAAa;IAExC,qBACE,MAAClB,MAAMmB,QAAQ;;0BACb,KAAC1B;gBAAe2B,SAASR,cAAcS,YAAYC,MAAMC;;0BACzD,KAACjC;gBAAqBkC,MAAK;gBAAWC,MAAM,CAAChB;;YAC5CQ,iBAAiB,mBAChB,KAACS;gBAAIC,WAAW,CAAC,EAAExB,UAAU,aAAa,CAAC;0BACxCa,KAAKY,CAAC,CAAC;;YAGXX,eAAe,mBACd,MAACjB,MAAMmB,QAAQ;;kCACb,KAACzB;wBAAMU,SAASA;wBAASK,MAAMA,MAAMoB;wBAAMC,UAAUlB,cAAckB;;kCACnE,MAACJ;wBAAIC,WAAW,CAAC,EAAExB,UAAU,eAAe,CAAC;;0CAC3C,KAACZ;gCACCwC,aAAatB,KAAKsB,WAAW;gCAC7BC,aAAavB,KAAKuB,WAAW;gCAC7BlB,OAAOL,KAAKK,KAAK;gCACjBmB,UAAUxB,KAAKwB,QAAQ;gCACvBC,mBAAmB;gCACnBC,UAAU,IAAMzB;gCAChB0B,MAAM3B,KAAK2B,IAAI;gCACfC,UAAU5B,KAAK4B,QAAQ;gCACvBC,YAAY7B,KAAK6B,UAAU;;4BAE5B7B,MAAMS,YAAY,mBACjB,MAAClB,MAAMmB,QAAQ;;kDACb,MAACO;wCAAIC,WAAW,CAAC,EAAExB,UAAU,WAAW,CAAC;;4CACtCM,KAAK2B,IAAI,GAAG3B,KAAKK,KAAK,GAAIL,CAAAA,KAAKK,KAAK,GAAG,CAAA;4CAAG;4CAC1CL,KAAK6B,UAAU,GAAG,KAAK7B,KAAK6B,UAAU,KAAK7B,KAAK2B,IAAI,GACjD3B,KAAKK,KAAK,GAAGL,KAAK2B,IAAI,GACtB3B,KAAKS,SAAS;4CAAE;4CACnBF,KAAKY,CAAC,CAAC;4CAAc;4CAAEnB,KAAKS,SAAS;;;kDAExC,KAAC1B;wCACC+C,cAAc,IAAM5B;wCACpBG,OAAOA,QAAQ0B,OAAO1B,SAAS;wCAC/B2B,QAAQpC;;;;;;;;;;AAS1B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,CAoHrC"}
1
+ {"version":3,"file":"withPayload.d.ts","sourceRoot":"","sources":["../src/withPayload.js"],"names":[],"mappings":"AAKO,yCAJI,OAAO,MAAM,EAAE,UAAU,GAEvB,OAAO,MAAM,EAAE,UAAU,CAwHrC"}
@@ -13,16 +13,23 @@
13
13
  env: {
14
14
  ...nextConfig?.env || {}
15
15
  },
16
+ outputFileTracingExcludes: {
17
+ ...nextConfig?.outputFileTracingExcludes || {},
18
+ '**/*': [
19
+ ...nextConfig?.outputFileTracingExcludes?.['**/*'] || [],
20
+ 'drizzle-kit',
21
+ 'drizzle-kit/api'
22
+ ]
23
+ },
24
+ outputFileTracingIncludes: {
25
+ ...nextConfig?.outputFileTracingIncludes || {},
26
+ '**/*': [
27
+ ...nextConfig?.outputFileTracingIncludes?.['**/*'] || [],
28
+ '@libsql/client'
29
+ ]
30
+ },
16
31
  experimental: {
17
32
  ...nextConfig?.experimental || {},
18
- outputFileTracingExcludes: {
19
- '**/*': [
20
- ...nextConfig.experimental?.outputFileTracingExcludes?.['**/*'] || [],
21
- 'drizzle-kit',
22
- 'drizzle-kit/payload',
23
- 'libsql'
24
- ]
25
- },
26
33
  turbo: {
27
34
  ...nextConfig?.experimental?.turbo || {},
28
35
  resolveAlias: {
@@ -57,9 +64,9 @@
57
64
  serverExternalPackages: [
58
65
  ...nextConfig?.serverExternalPackages || [],
59
66
  'drizzle-kit',
60
- 'drizzle-kit/payload',
61
- 'libsql',
67
+ 'drizzle-kit/api',
62
68
  'pino',
69
+ 'libsql',
63
70
  'pino-pretty',
64
71
  'graphql'
65
72
  ],
@@ -70,7 +77,7 @@
70
77
  externals: [
71
78
  ...incomingWebpackConfig?.externals || [],
72
79
  'drizzle-kit',
73
- 'drizzle-kit/payload',
80
+ 'drizzle-kit/api',
74
81
  'sharp',
75
82
  'libsql'
76
83
  ],