@payloadcms/next 3.0.0-beta.71 → 3.0.0-beta.72

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 (65) hide show
  1. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  2. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  3. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  4. package/dist/prod/styles.css +1 -1
  5. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  6. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  7. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  8. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  9. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  10. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  11. package/dist/utilities/initPage/handleAdminPage.js +16 -5
  12. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  13. package/dist/utilities/initPage/handleAuthRedirect.js +10 -2
  14. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  15. package/dist/utilities/initPage/shared.d.ts +14 -2
  16. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  17. package/dist/utilities/initPage/shared.js +14 -4
  18. package/dist/utilities/initPage/shared.js.map +1 -1
  19. package/dist/views/CreateFirstUser/index.client.js +5 -6
  20. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  21. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  22. package/dist/views/CreateFirstUser/index.js +7 -42
  23. package/dist/views/CreateFirstUser/index.js.map +1 -1
  24. package/dist/views/Document/getDocumentData.d.ts +1 -0
  25. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  26. package/dist/views/Document/getDocumentData.js +3 -2
  27. package/dist/views/Document/getDocumentData.js.map +1 -1
  28. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  29. package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
  30. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  31. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  32. package/dist/views/Edit/Default/Auth/index.js +70 -15
  33. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  34. package/dist/views/Edit/Default/Auth/types.d.ts +2 -0
  35. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  36. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  37. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  38. package/dist/views/Edit/Default/index.js +13 -9
  39. package/dist/views/Edit/Default/index.js.map +1 -1
  40. package/dist/views/Login/LoginField/index.d.ts.map +1 -1
  41. package/dist/views/Login/LoginField/index.js +3 -0
  42. package/dist/views/Login/LoginField/index.js.map +1 -1
  43. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  44. package/dist/views/Login/LoginForm/index.js +1 -19
  45. package/dist/views/Login/LoginForm/index.js.map +1 -1
  46. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  47. package/dist/views/ResetPassword/index.client.js +10 -27
  48. package/dist/views/ResetPassword/index.client.js.map +1 -1
  49. package/dist/views/Version/Default/index.d.ts.map +1 -1
  50. package/dist/views/Version/Default/index.js +3 -1
  51. package/dist/views/Version/Default/index.js.map +1 -1
  52. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  53. package/dist/views/Version/Restore/index.js +35 -8
  54. package/dist/views/Version/Restore/index.js.map +1 -1
  55. package/dist/views/Version/Restore/index.scss +31 -0
  56. package/dist/views/Version/Restore/types.d.ts +1 -0
  57. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  58. package/dist/views/Version/Restore/types.js.map +1 -1
  59. package/dist/views/Version/index.d.ts.map +1 -1
  60. package/dist/views/Version/index.js +2 -2
  61. package/dist/views/Version/index.js.map +1 -1
  62. package/dist/views/Versions/index.client.d.ts.map +1 -1
  63. package/dist/views/Versions/index.client.js +3 -2
  64. package/dist/views/Versions/index.client.js.map +1 -1
  65. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/views/ResetPassword/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\n FormSubmit,\n HiddenField,\n PasswordField,\n useAuth,\n useConfig,\n useFormFields,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\nimport { toast } from 'sonner'\n\ntype Args = {\n token: string\n}\n\nconst initialState: FormState = {\n 'confirm-password': {\n initialValue: '',\n valid: false,\n value: '',\n },\n password: {\n initialValue: '',\n valid: false,\n value: '',\n },\n}\n\nexport const ResetPasswordClient: React.FC<Args> = ({ token }) => {\n const i18n = useTranslation()\n const {\n admin: {\n routes: { login: loginRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const history = useRouter()\n\n const { fetchFullUser } = useAuth()\n\n const onSuccess = React.useCallback(\n async (data) => {\n if (data.token) {\n await fetchFullUser()\n history.push(adminRoute)\n } else {\n history.push(\n formatAdminURL({\n adminRoute,\n path: loginRoute,\n }),\n )\n toast.success(i18n.t('general:updatedSuccessfully'))\n }\n },\n [fetchFullUser, history, adminRoute, i18n],\n )\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/reset-password`}\n initialState={initialState}\n method=\"POST\"\n onSuccess={onSuccess}\n >\n <PasswordToConfirm />\n <ConfirmPasswordField />\n <HiddenField forceUsePathFromProps name=\"token\" value={token} />\n <FormSubmit>{i18n.t('authentication:resetPassword')}</FormSubmit>\n </Form>\n )\n}\n\nconst PasswordToConfirm = () => {\n const { t } = useTranslation()\n const { value: confirmValue } = useFormFields(\n ([fields]) => (fields && fields?.['confirm-password']) || null,\n )\n\n const validate = React.useCallback(\n (value: string) => {\n if (!value) {\n return t('validation:required')\n }\n\n if (value === confirmValue) {\n return true\n }\n\n return t('fields:passwordsDoNotMatch')\n },\n [confirmValue, t],\n )\n\n return (\n <PasswordField\n autoComplete=\"off\"\n label={t('authentication:newPassword')}\n name=\"password\"\n required\n validate={validate}\n />\n )\n}\n"],"names":["ConfirmPasswordField","Form","FormSubmit","HiddenField","PasswordField","useAuth","useConfig","useFormFields","useTranslation","formatAdminURL","useRouter","React","toast","initialState","initialValue","valid","value","password","ResetPasswordClient","token","i18n","admin","routes","login","loginRoute","user","userSlug","adminRoute","api","apiRoute","serverURL","history","fetchFullUser","onSuccess","useCallback","data","push","path","success","t","action","method","PasswordToConfirm","forceUsePathFromProps","name","confirmValue","fields","validate","autoComplete","label","required"],"mappings":"AAAA;;AAGA,SACEA,oBAAoB,EACpBC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,aAAa,EACbC,OAAO,EACPC,SAAS,EACTC,aAAa,EACbC,cAAc,QACT,iBAAgB;AACvB,SAASC,cAAc,QAAQ,wBAAuB;AACtD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAM9B,MAAMC,eAA0B;IAC9B,oBAAoB;QAClBC,cAAc;QACdC,OAAO;QACPC,OAAO;IACT;IACAC,UAAU;QACRH,cAAc;QACdC,OAAO;QACPC,OAAO;IACT;AACF;AAEA,OAAO,MAAME,sBAAsC,CAAC,EAAEC,KAAK,EAAE;IAC3D,MAAMC,OAAOZ;IACb,MAAM,EACJa,OAAO,EACLC,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC7BC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC5CC,SAAS,EACV,GAAGxB;IAEJ,MAAMyB,UAAUrB;IAEhB,MAAM,EAAEsB,aAAa,EAAE,GAAG3B;IAE1B,MAAM4B,YAAYtB,MAAMuB,WAAW,CACjC,OAAOC;QACL,IAAIA,KAAKhB,KAAK,EAAE;YACd,MAAMa;YACND,QAAQK,IAAI,CAACT;QACf,OAAO;YACLI,QAAQK,IAAI,CACV3B,eAAe;gBACbkB;gBACAU,MAAMb;YACR;YAEFZ,MAAM0B,OAAO,CAAClB,KAAKmB,CAAC,CAAC;QACvB;IACF,GACA;QAACP;QAAeD;QAASJ;QAAYP;KAAK;IAG5C,qBACE,MAACnB;QACCuC,QAAQ,CAAC,EAAEV,UAAU,EAAED,SAAS,CAAC,EAAEH,SAAS,eAAe,CAAC;QAC5Db,cAAcA;QACd4B,QAAO;QACPR,WAAWA;;0BAEX,KAACS;0BACD,KAAC1C;0BACD,KAACG;gBAAYwC,qBAAqB;gBAACC,MAAK;gBAAQ5B,OAAOG;;0BACvD,KAACjB;0BAAYkB,KAAKmB,CAAC,CAAC;;;;AAG1B,EAAC;AAED,MAAMG,oBAAoB;IACxB,MAAM,EAAEH,CAAC,EAAE,GAAG/B;IACd,MAAM,EAAEQ,OAAO6B,YAAY,EAAE,GAAGtC,cAC9B,CAAC,CAACuC,OAAO,GAAK,AAACA,UAAUA,QAAQ,CAAC,mBAAmB,IAAK;IAG5D,MAAMC,WAAWpC,MAAMuB,WAAW,CAChC,CAAClB;QACC,IAAI,CAACA,OAAO;YACV,OAAOuB,EAAE;QACX;QAEA,IAAIvB,UAAU6B,cAAc;YAC1B,OAAO;QACT;QAEA,OAAON,EAAE;IACX,GACA;QAACM;QAAcN;KAAE;IAGnB,qBACE,KAACnC;QACC4C,cAAa;QACbC,OAAOV,EAAE;QACTK,MAAK;QACLM,QAAQ;QACRH,UAAUA;;AAGhB"}
1
+ {"version":3,"sources":["../../../src/views/ResetPassword/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport {\n ConfirmPasswordField,\n Form,\n FormSubmit,\n HiddenField,\n PasswordField,\n useAuth,\n useConfig,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\nimport { toast } from 'sonner'\n\ntype Args = {\n token: string\n}\n\nconst initialState: FormState = {\n 'confirm-password': {\n initialValue: '',\n valid: false,\n value: '',\n },\n password: {\n initialValue: '',\n valid: false,\n value: '',\n },\n}\n\nexport const ResetPasswordClient: React.FC<Args> = ({ token }) => {\n const i18n = useTranslation()\n const {\n admin: {\n routes: { login: loginRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = useConfig()\n\n const history = useRouter()\n\n const { fetchFullUser } = useAuth()\n\n const onSuccess = React.useCallback(\n async (data) => {\n if (data.token) {\n await fetchFullUser()\n history.push(adminRoute)\n } else {\n history.push(\n formatAdminURL({\n adminRoute,\n path: loginRoute,\n }),\n )\n toast.success(i18n.t('general:updatedSuccessfully'))\n }\n },\n [adminRoute, fetchFullUser, history, i18n, loginRoute],\n )\n\n return (\n <Form\n action={`${serverURL}${apiRoute}/${userSlug}/reset-password`}\n initialState={initialState}\n method=\"POST\"\n onSuccess={onSuccess}\n >\n <PasswordField\n label={i18n.t('authentication:newPassword')}\n name=\"password\"\n path=\"password\"\n required\n />\n <ConfirmPasswordField />\n <HiddenField forceUsePathFromProps name=\"token\" value={token} />\n <FormSubmit>{i18n.t('authentication:resetPassword')}</FormSubmit>\n </Form>\n )\n}\n"],"names":["ConfirmPasswordField","Form","FormSubmit","HiddenField","PasswordField","useAuth","useConfig","useTranslation","formatAdminURL","useRouter","React","toast","initialState","initialValue","valid","value","password","ResetPasswordClient","token","i18n","admin","routes","login","loginRoute","user","userSlug","adminRoute","api","apiRoute","serverURL","history","fetchFullUser","onSuccess","useCallback","data","push","path","success","t","action","method","label","name","required","forceUsePathFromProps"],"mappings":"AAAA;;AAGA,SACEA,oBAAoB,EACpBC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,aAAa,EACbC,OAAO,EACPC,SAAS,EACTC,cAAc,QACT,iBAAgB;AACvB,SAASC,cAAc,QAAQ,wBAAuB;AACtD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAM9B,MAAMC,eAA0B;IAC9B,oBAAoB;QAClBC,cAAc;QACdC,OAAO;QACPC,OAAO;IACT;IACAC,UAAU;QACRH,cAAc;QACdC,OAAO;QACPC,OAAO;IACT;AACF;AAEA,OAAO,MAAME,sBAAsC,CAAC,EAAEC,KAAK,EAAE;IAC3D,MAAMC,OAAOZ;IACb,MAAM,EACJa,OAAO,EACLC,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC7BC,MAAMC,QAAQ,EACf,EACDJ,QAAQ,EAAED,OAAOM,UAAU,EAAEC,KAAKC,QAAQ,EAAE,EAC5CC,SAAS,EACV,GAAGvB;IAEJ,MAAMwB,UAAUrB;IAEhB,MAAM,EAAEsB,aAAa,EAAE,GAAG1B;IAE1B,MAAM2B,YAAYtB,MAAMuB,WAAW,CACjC,OAAOC;QACL,IAAIA,KAAKhB,KAAK,EAAE;YACd,MAAMa;YACND,QAAQK,IAAI,CAACT;QACf,OAAO;YACLI,QAAQK,IAAI,CACV3B,eAAe;gBACbkB;gBACAU,MAAMb;YACR;YAEFZ,MAAM0B,OAAO,CAAClB,KAAKmB,CAAC,CAAC;QACvB;IACF,GACA;QAACZ;QAAYK;QAAeD;QAASX;QAAMI;KAAW;IAGxD,qBACE,MAACtB;QACCsC,QAAQ,CAAC,EAAEV,UAAU,EAAED,SAAS,CAAC,EAAEH,SAAS,eAAe,CAAC;QAC5Db,cAAcA;QACd4B,QAAO;QACPR,WAAWA;;0BAEX,KAAC5B;gBACCqC,OAAOtB,KAAKmB,CAAC,CAAC;gBACdI,MAAK;gBACLN,MAAK;gBACLO,QAAQ;;0BAEV,KAAC3C;0BACD,KAACG;gBAAYyC,qBAAqB;gBAACF,MAAK;gBAAQ3B,OAAOG;;0BACvD,KAAChB;0BAAYiB,KAAKmB,CAAC,CAAC;;;;AAG1B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAiB,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAQzE,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAkIjE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Default/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAiB,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAQzE,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAiIjE,CAAA"}
@@ -46,6 +46,7 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
46
46
  const comparison = compareValue?.value && currentComparisonDoc?.version // the `version` key is only present on `versions` documents
47
47
  ;
48
48
  const canUpdate = docPermissions?.update?.permission;
49
+ const localeValues = locales.map((locale)=>locale.value);
49
50
  return /*#__PURE__*/ _jsxs("main", {
50
51
  className: baseClass,
51
52
  children: [
@@ -85,6 +86,7 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
85
86
  globalSlug: globalSlug,
86
87
  label: collectionConfig?.labels.singular || globalConfig?.label,
87
88
  originalDocID: id,
89
+ status: doc?.version?._status,
88
90
  versionDate: versionCreatedAt,
89
91
  versionID: versionID
90
92
  })
@@ -117,7 +119,7 @@ export const DefaultVersionView = ({ doc, docPermissions, initialComparisonDoc,
117
119
  fieldMap: fieldMap,
118
120
  fieldPermissions: docPermissions?.fields,
119
121
  i18n: i18n,
120
- locales: locales ? locales.map(({ label })=>typeof label === 'string' ? label : undefined) : [],
122
+ locales: localeValues,
121
123
  version: globalConfig ? {
122
124
  ...doc?.version,
123
125
  createdAt: doc?.version?.createdAt || doc.createdAt,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/views/Version/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { OptionObject } from 'payload'\n\nimport {\n Gutter,\n SetViewActions,\n useComponentMap,\n useConfig,\n useDocumentInfo,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport React, { useState } from 'react'\n\nimport type { CompareOption, DefaultVersionsViewProps } from './types.js'\n\nimport diffComponents from '../RenderFieldsToDiff/fields/index.js'\nimport RenderFieldsToDiff from '../RenderFieldsToDiff/index.js'\nimport Restore from '../Restore/index.js'\nimport { SelectComparison } from '../SelectComparison/index.js'\nimport { SelectLocales } from '../SelectLocales/index.js'\nimport { SetStepNav } from './SetStepNav.js'\nimport './index.scss'\n\nconst baseClass = 'view-version'\n\nexport const DefaultVersionView: React.FC<DefaultVersionsViewProps> = ({\n doc,\n docPermissions,\n initialComparisonDoc,\n latestDraftVersion,\n latestPublishedVersion,\n localeOptions,\n versionID,\n}) => {\n const config = useConfig()\n\n const { i18n } = useTranslation()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const { getComponentMap, getFieldMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const [fieldMap] = useState(() => getFieldMap({ collectionSlug, globalSlug }))\n\n const [collectionConfig] = useState(() =>\n config.collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const [globalConfig] = useState(() => config.globals.find((global) => global.slug === globalSlug))\n\n const [locales, setLocales] = useState<OptionObject[]>(localeOptions)\n\n const [compareValue, setCompareValue] = useState<CompareOption>()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const versionCreatedAt = doc?.updatedAt\n ? formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })\n : ''\n\n const compareBaseURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${\n collectionSlug || globalSlug\n }/versions`\n\n const compareFetchURL = compareValue?.value && `${compareBaseURL}/${compareValue.value}`\n\n const [{ data: currentComparisonDoc }] = usePayloadAPI(compareFetchURL, {\n initialData: initialComparisonDoc,\n initialParams: { depth: 1, draft: 'true', locale: 'all' },\n })\n\n const comparison = compareValue?.value && currentComparisonDoc?.version // the `version` key is only present on `versions` documents\n\n const canUpdate = docPermissions?.update?.permission\n\n return (\n <main className={baseClass}>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.Version} />\n <SetStepNav\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n doc={doc}\n fieldMap={fieldMap}\n globalConfig={globalConfig}\n globalSlug={globalSlug}\n id={id}\n />\n <Gutter className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__header-wrap`}>\n <p className={`${baseClass}__created-at`}>\n {i18n.t('version:versionCreatedOn', {\n version: i18n.t(doc?.autosave ? 'version:autosavedVersion' : 'version:version'),\n })}\n </p>\n <header className={`${baseClass}__header`}>\n <h2>{versionCreatedAt}</h2>\n {canUpdate && (\n <Restore\n className={`${baseClass}__restore`}\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n label={collectionConfig?.labels.singular || globalConfig?.label}\n originalDocID={id}\n versionDate={versionCreatedAt}\n versionID={versionID}\n />\n )}\n </header>\n </div>\n <div className={`${baseClass}__controls`}>\n <SelectComparison\n baseURL={compareBaseURL}\n latestDraftVersion={latestDraftVersion}\n latestPublishedVersion={latestPublishedVersion}\n onChange={setCompareValue}\n parentID={id}\n value={compareValue}\n versionID={versionID}\n />\n {localization && (\n <SelectLocales onChange={setLocales} options={localeOptions} value={locales} />\n )}\n </div>\n {doc?.version && (\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldMap={fieldMap}\n fieldPermissions={docPermissions?.fields}\n i18n={i18n}\n locales={\n locales\n ? locales.map(({ label }) => (typeof label === 'string' ? label : undefined))\n : []\n }\n version={\n globalConfig\n ? {\n ...doc?.version,\n createdAt: doc?.version?.createdAt || doc.createdAt,\n updatedAt: doc?.version?.updatedAt || doc.updatedAt,\n }\n : doc?.version\n }\n />\n )}\n </Gutter>\n </main>\n )\n}\n"],"names":["Gutter","SetViewActions","useComponentMap","useConfig","useDocumentInfo","usePayloadAPI","useTranslation","formatDate","React","useState","diffComponents","RenderFieldsToDiff","Restore","SelectComparison","SelectLocales","SetStepNav","baseClass","DefaultVersionView","doc","docPermissions","initialComparisonDoc","latestDraftVersion","latestPublishedVersion","localeOptions","versionID","config","i18n","id","collectionSlug","globalSlug","getComponentMap","getFieldMap","componentMap","fieldMap","collectionConfig","collections","find","collection","slug","globalConfig","globals","global","locales","setLocales","compareValue","setCompareValue","admin","dateFormat","localization","routes","api","apiRoute","serverURL","versionCreatedAt","updatedAt","date","pattern","compareBaseURL","compareFetchURL","value","data","currentComparisonDoc","initialData","initialParams","depth","draft","locale","comparison","version","canUpdate","update","permission","main","className","actions","actionsMap","Edit","Version","div","p","t","autosave","header","h2","label","labels","singular","originalDocID","versionDate","baseURL","onChange","parentID","options","fieldPermissions","fields","map","undefined","createdAt"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/views/Version/Default/index.tsx"],"sourcesContent":["'use client'\nimport type { OptionObject } from 'payload'\n\nimport {\n Gutter,\n SetViewActions,\n useComponentMap,\n useConfig,\n useDocumentInfo,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport React, { useState } from 'react'\n\nimport type { CompareOption, DefaultVersionsViewProps } from './types.js'\n\nimport diffComponents from '../RenderFieldsToDiff/fields/index.js'\nimport RenderFieldsToDiff from '../RenderFieldsToDiff/index.js'\nimport Restore from '../Restore/index.js'\nimport { SelectComparison } from '../SelectComparison/index.js'\nimport { SelectLocales } from '../SelectLocales/index.js'\nimport { SetStepNav } from './SetStepNav.js'\nimport './index.scss'\n\nconst baseClass = 'view-version'\n\nexport const DefaultVersionView: React.FC<DefaultVersionsViewProps> = ({\n doc,\n docPermissions,\n initialComparisonDoc,\n latestDraftVersion,\n latestPublishedVersion,\n localeOptions,\n versionID,\n}) => {\n const config = useConfig()\n\n const { i18n } = useTranslation()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const { getComponentMap, getFieldMap } = useComponentMap()\n\n const componentMap = getComponentMap({ collectionSlug, globalSlug })\n\n const [fieldMap] = useState(() => getFieldMap({ collectionSlug, globalSlug }))\n\n const [collectionConfig] = useState(() =>\n config.collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const [globalConfig] = useState(() => config.globals.find((global) => global.slug === globalSlug))\n\n const [locales, setLocales] = useState<OptionObject[]>(localeOptions)\n\n const [compareValue, setCompareValue] = useState<CompareOption>()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const versionCreatedAt = doc?.updatedAt\n ? formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })\n : ''\n\n const compareBaseURL = `${serverURL}${apiRoute}/${globalSlug ? 'globals/' : ''}${\n collectionSlug || globalSlug\n }/versions`\n\n const compareFetchURL = compareValue?.value && `${compareBaseURL}/${compareValue.value}`\n\n const [{ data: currentComparisonDoc }] = usePayloadAPI(compareFetchURL, {\n initialData: initialComparisonDoc,\n initialParams: { depth: 1, draft: 'true', locale: 'all' },\n })\n\n const comparison = compareValue?.value && currentComparisonDoc?.version // the `version` key is only present on `versions` documents\n\n const canUpdate = docPermissions?.update?.permission\n\n const localeValues = locales.map((locale) => locale.value)\n\n return (\n <main className={baseClass}>\n <SetViewActions actions={componentMap?.actionsMap?.Edit?.Version} />\n <SetStepNav\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n doc={doc}\n fieldMap={fieldMap}\n globalConfig={globalConfig}\n globalSlug={globalSlug}\n id={id}\n />\n <Gutter className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__header-wrap`}>\n <p className={`${baseClass}__created-at`}>\n {i18n.t('version:versionCreatedOn', {\n version: i18n.t(doc?.autosave ? 'version:autosavedVersion' : 'version:version'),\n })}\n </p>\n <header className={`${baseClass}__header`}>\n <h2>{versionCreatedAt}</h2>\n {canUpdate && (\n <Restore\n className={`${baseClass}__restore`}\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n label={collectionConfig?.labels.singular || globalConfig?.label}\n originalDocID={id}\n status={doc?.version?._status}\n versionDate={versionCreatedAt}\n versionID={versionID}\n />\n )}\n </header>\n </div>\n <div className={`${baseClass}__controls`}>\n <SelectComparison\n baseURL={compareBaseURL}\n latestDraftVersion={latestDraftVersion}\n latestPublishedVersion={latestPublishedVersion}\n onChange={setCompareValue}\n parentID={id}\n value={compareValue}\n versionID={versionID}\n />\n {localization && (\n <SelectLocales onChange={setLocales} options={localeOptions} value={locales} />\n )}\n </div>\n {doc?.version && (\n <RenderFieldsToDiff\n comparison={comparison}\n diffComponents={diffComponents}\n fieldMap={fieldMap}\n fieldPermissions={docPermissions?.fields}\n i18n={i18n}\n locales={localeValues}\n version={\n globalConfig\n ? {\n ...doc?.version,\n createdAt: doc?.version?.createdAt || doc.createdAt,\n updatedAt: doc?.version?.updatedAt || doc.updatedAt,\n }\n : doc?.version\n }\n />\n )}\n </Gutter>\n </main>\n )\n}\n"],"names":["Gutter","SetViewActions","useComponentMap","useConfig","useDocumentInfo","usePayloadAPI","useTranslation","formatDate","React","useState","diffComponents","RenderFieldsToDiff","Restore","SelectComparison","SelectLocales","SetStepNav","baseClass","DefaultVersionView","doc","docPermissions","initialComparisonDoc","latestDraftVersion","latestPublishedVersion","localeOptions","versionID","config","i18n","id","collectionSlug","globalSlug","getComponentMap","getFieldMap","componentMap","fieldMap","collectionConfig","collections","find","collection","slug","globalConfig","globals","global","locales","setLocales","compareValue","setCompareValue","admin","dateFormat","localization","routes","api","apiRoute","serverURL","versionCreatedAt","updatedAt","date","pattern","compareBaseURL","compareFetchURL","value","data","currentComparisonDoc","initialData","initialParams","depth","draft","locale","comparison","version","canUpdate","update","permission","localeValues","map","main","className","actions","actionsMap","Edit","Version","div","p","t","autosave","header","h2","label","labels","singular","originalDocID","status","_status","versionDate","baseURL","onChange","parentID","options","fieldPermissions","fields","createdAt"],"mappings":"AAAA;;AAGA,SACEA,MAAM,EACNC,cAAc,EACdC,eAAe,EACfC,SAAS,EACTC,eAAe,EACfC,aAAa,EACbC,cAAc,QACT,iBAAgB;AACvB,SAASC,UAAU,QAAQ,wBAAuB;AAClD,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAIvC,OAAOC,oBAAoB,wCAAuC;AAClE,OAAOC,wBAAwB,iCAAgC;AAC/D,OAAOC,aAAa,sBAAqB;AACzC,SAASC,gBAAgB,QAAQ,+BAA8B;AAC/D,SAASC,aAAa,QAAQ,4BAA2B;AACzD,SAASC,UAAU,QAAQ,kBAAiB;AAG5C,MAAMC,YAAY;AAElB,OAAO,MAAMC,qBAAyD,CAAC,EACrEC,GAAG,EACHC,cAAc,EACdC,oBAAoB,EACpBC,kBAAkB,EAClBC,sBAAsB,EACtBC,aAAa,EACbC,SAAS,EACV;IACC,MAAMC,SAAStB;IAEf,MAAM,EAAEuB,IAAI,EAAE,GAAGpB;IACjB,MAAM,EAAEqB,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGzB;IAE3C,MAAM,EAAE0B,eAAe,EAAEC,WAAW,EAAE,GAAG7B;IAEzC,MAAM8B,eAAeF,gBAAgB;QAAEF;QAAgBC;IAAW;IAElE,MAAM,CAACI,SAAS,GAAGxB,SAAS,IAAMsB,YAAY;YAAEH;YAAgBC;QAAW;IAE3E,MAAM,CAACK,iBAAiB,GAAGzB,SAAS,IAClCgB,OAAOU,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKV;IAG9D,MAAM,CAACW,aAAa,GAAG9B,SAAS,IAAMgB,OAAOe,OAAO,CAACJ,IAAI,CAAC,CAACK,SAAWA,OAAOH,IAAI,KAAKT;IAEtF,MAAM,CAACa,SAASC,WAAW,GAAGlC,SAAyBc;IAEvD,MAAM,CAACqB,cAAcC,gBAAgB,GAAGpC;IAExC,MAAM,EACJqC,OAAO,EAAEC,UAAU,EAAE,EACrBC,YAAY,EACZC,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAG3B;IAEJ,MAAM4B,mBAAmBnC,KAAKoC,YAC1B/C,WAAW;QAAEgD,MAAMrC,IAAIoC,SAAS;QAAE5B;QAAM8B,SAAST;IAAW,KAC5D;IAEJ,MAAMU,iBAAiB,CAAC,EAAEL,UAAU,EAAED,SAAS,CAAC,EAAEtB,aAAa,aAAa,GAAG,EAC7ED,kBAAkBC,WACnB,SAAS,CAAC;IAEX,MAAM6B,kBAAkBd,cAAce,SAAS,CAAC,EAAEF,eAAe,CAAC,EAAEb,aAAae,KAAK,CAAC,CAAC;IAExF,MAAM,CAAC,EAAEC,MAAMC,oBAAoB,EAAE,CAAC,GAAGxD,cAAcqD,iBAAiB;QACtEI,aAAa1C;QACb2C,eAAe;YAAEC,OAAO;YAAGC,OAAO;YAAQC,QAAQ;QAAM;IAC1D;IAEA,MAAMC,aAAavB,cAAce,SAASE,sBAAsBO,QAAQ,4DAA4D;;IAEpI,MAAMC,YAAYlD,gBAAgBmD,QAAQC;IAE1C,MAAMC,eAAe9B,QAAQ+B,GAAG,CAAC,CAACP,SAAWA,OAAOP,KAAK;IAEzD,qBACE,MAACe;QAAKC,WAAW3D;;0BACf,KAACf;gBAAe2E,SAAS5C,cAAc6C,YAAYC,MAAMC;;0BACzD,KAAChE;gBACCmB,kBAAkBA;gBAClBN,gBAAgBA;gBAChBV,KAAKA;gBACLe,UAAUA;gBACVM,cAAcA;gBACdV,YAAYA;gBACZF,IAAIA;;0BAEN,MAAC3B;gBAAO2E,WAAW,CAAC,EAAE3D,UAAU,MAAM,CAAC;;kCACrC,MAACgE;wBAAIL,WAAW,CAAC,EAAE3D,UAAU,aAAa,CAAC;;0CACzC,KAACiE;gCAAEN,WAAW,CAAC,EAAE3D,UAAU,YAAY,CAAC;0CACrCU,KAAKwD,CAAC,CAAC,4BAA4B;oCAClCd,SAAS1C,KAAKwD,CAAC,CAAChE,KAAKiE,WAAW,6BAA6B;gCAC/D;;0CAEF,MAACC;gCAAOT,WAAW,CAAC,EAAE3D,UAAU,QAAQ,CAAC;;kDACvC,KAACqE;kDAAIhC;;oCACJgB,2BACC,KAACzD;wCACC+D,WAAW,CAAC,EAAE3D,UAAU,SAAS,CAAC;wCAClCY,gBAAgBA;wCAChBC,YAAYA;wCACZyD,OAAOpD,kBAAkBqD,OAAOC,YAAYjD,cAAc+C;wCAC1DG,eAAe9D;wCACf+D,QAAQxE,KAAKkD,SAASuB;wCACtBC,aAAavC;wCACb7B,WAAWA;;;;;;kCAKnB,MAACwD;wBAAIL,WAAW,CAAC,EAAE3D,UAAU,UAAU,CAAC;;0CACtC,KAACH;gCACCgF,SAASpC;gCACTpC,oBAAoBA;gCACpBC,wBAAwBA;gCACxBwE,UAAUjD;gCACVkD,UAAUpE;gCACVgC,OAAOf;gCACPpB,WAAWA;;4BAEZwB,8BACC,KAAClC;gCAAcgF,UAAUnD;gCAAYqD,SAASzE;gCAAeoC,OAAOjB;;;;oBAGvExB,KAAKkD,yBACJ,KAACzD;wBACCwD,YAAYA;wBACZzD,gBAAgBA;wBAChBuB,UAAUA;wBACVgE,kBAAkB9E,gBAAgB+E;wBAClCxE,MAAMA;wBACNgB,SAAS8B;wBACTJ,SACE7B,eACI;4BACE,GAAGrB,KAAKkD,OAAO;4BACf+B,WAAWjF,KAAKkD,SAAS+B,aAAajF,IAAIiF,SAAS;4BACnD7C,WAAWpC,KAAKkD,SAASd,aAAapC,IAAIoC,SAAS;wBACrD,IACApC,KAAKkD;;;;;;AAOvB,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/next",
3
- "version": "3.0.0-beta.71",
3
+ "version": "3.0.0-beta.72",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,9 +63,9 @@
63
63
  "sonner": "^1.5.0",
64
64
  "uuid": "10.0.0",
65
65
  "ws": "^8.16.0",
66
- "@payloadcms/graphql": "3.0.0-beta.71",
67
- "@payloadcms/translations": "3.0.0-beta.71",
68
- "@payloadcms/ui": "3.0.0-beta.71"
66
+ "@payloadcms/ui": "3.0.0-beta.72",
67
+ "@payloadcms/graphql": "3.0.0-beta.72",
68
+ "@payloadcms/translations": "3.0.0-beta.72"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@next/eslint-plugin-next": "^14.1.0",
@@ -77,13 +77,13 @@
77
77
  "esbuild": "0.23.0",
78
78
  "esbuild-sass-plugin": "3.3.1",
79
79
  "swc-plugin-transform-remove-imports": "1.14.0",
80
- "payload": "3.0.0-beta.71",
80
+ "payload": "3.0.0-beta.72",
81
81
  "@payloadcms/eslint-config": "3.0.0-beta.59"
82
82
  },
83
83
  "peerDependencies": {
84
84
  "graphql": "^16.8.1",
85
85
  "next": "^15.0.0-canary.53",
86
- "payload": "3.0.0-beta.71"
86
+ "payload": "3.0.0-beta.72"
87
87
  },
88
88
  "engines": {
89
89
  "node": "^18.20.2 || >=20.9.0"