@payloadcms/next 3.67.0-canary.0 → 3.67.0-internal.1ea538b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +3 -2
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +2 -1
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Document/getVersions.d.ts.map +1 -1
- package/dist/views/Document/getVersions.js +5 -4
- package/dist/views/Document/getVersions.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +3 -3
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
- package/dist/views/Document/renderDocumentSlots.js +3 -2
- package/dist/views/Document/renderDocumentSlots.js.map +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +2 -1
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +2 -1
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/index.js +2 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAkBA,OAAO,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAkBA,OAAO,cAAc,CAAA;AAGrB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EA2LjC,CAAA"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { CheckboxField, CopyToClipboard, Form, Gutter, MinimizeMaximizeIcon, NumberField, SetDocumentStepNav, toast, useConfig, useDocumentInfo, useLocale, useTranslation } from '@payloadcms/ui';
|
|
5
5
|
import { useSearchParams } from 'next/navigation.js';
|
|
6
|
+
import { hasDraftsEnabled } from 'payload/shared';
|
|
6
7
|
import * as React from 'react';
|
|
7
8
|
import { LocaleSelector } from './LocaleSelector/index.js';
|
|
8
9
|
import { RenderJSON } from './RenderJSON/index.js';
|
|
@@ -47,11 +48,11 @@ export const APIViewClient = () => {
|
|
|
47
48
|
let draftsEnabled = false;
|
|
48
49
|
let docEndpoint = '';
|
|
49
50
|
if (collectionConfig) {
|
|
50
|
-
draftsEnabled =
|
|
51
|
+
draftsEnabled = hasDraftsEnabled(collectionConfig);
|
|
51
52
|
docEndpoint = `/${collectionSlug}/${id}`;
|
|
52
53
|
}
|
|
53
54
|
if (globalConfig) {
|
|
54
|
-
draftsEnabled =
|
|
55
|
+
draftsEnabled = hasDraftsEnabled(globalConfig);
|
|
55
56
|
docEndpoint = `/globals/${globalSlug}`;
|
|
56
57
|
}
|
|
57
58
|
const [data, setData] = React.useState(initialData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["CheckboxField","CopyToClipboard","Form","Gutter","MinimizeMaximizeIcon","NumberField","SetDocumentStepNav","toast","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","React","LocaleSelector","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","isTrashed","searchParams","i18n","t","code","config","defaultDepth","localization","routes","api","apiRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","Boolean","versions","drafts","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","toString","authenticated","setAuthenticated","fullscreen","setFullscreen","trashParam","deletedAt","params","URLSearchParams","String","trash","fetchURL","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","_jsxs","className","filter","join","right","_jsx","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","href","rel","target","initialState","initialValue","valid","Number","field","name","onChange","path","step","max","min","onClick","type","isMinimized","object"],"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport {\n CheckboxField,\n CopyToClipboard,\n Form,\n Gutter,\n MinimizeMaximizeIcon,\n NumberField,\n SetDocumentStepNav,\n toast,\n useConfig,\n useDocumentInfo,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useSearchParams } from 'next/navigation.js'\n\nimport './index.scss'\n\nimport * as React from 'react'\n\nimport { LocaleSelector } from './LocaleSelector/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData, isTrashed } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const {\n config: {\n defaultDepth,\n localization,\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = Boolean(collectionConfig.versions?.drafts)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = Boolean(globalConfig.versions?.drafts)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(\n searchParams.get('depth') || defaultDepth.toString(),\n )\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const trashParam = typeof initialData?.deletedAt === 'string'\n\n const params = new URLSearchParams({\n depth,\n draft: String(draft),\n locale,\n trash: trashParam ? 'true' : 'false',\n }).toString()\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}?${params}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error) // eslint-disable-line no-console\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <CheckboxField\n field={{\n name: 'draft',\n label: t('version:draft'),\n }}\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <CheckboxField\n field={{\n name: 'authenticated',\n label: t('authentication:authenticated'),\n }}\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />}\n <NumberField\n field={{\n name: 'depth',\n admin: {\n step: 1,\n },\n label: t('general:depth'),\n max: 10,\n min: 0,\n }}\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximizeIcon isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["CheckboxField","CopyToClipboard","Form","Gutter","MinimizeMaximizeIcon","NumberField","SetDocumentStepNav","toast","useConfig","useDocumentInfo","useLocale","useTranslation","useSearchParams","hasDraftsEnabled","React","LocaleSelector","RenderJSON","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","isTrashed","searchParams","i18n","t","code","config","defaultDepth","localization","routes","api","apiRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","toString","authenticated","setAuthenticated","fullscreen","setFullscreen","trashParam","deletedAt","params","URLSearchParams","String","trash","fetchURL","useEffect","fetchData","res","fetch","credentials","headers","language","method","json","error","console","_jsxs","className","filter","Boolean","join","right","_jsx","globalLabel","pluralLabel","labels","plural","undefined","useAsTitle","admin","view","href","rel","target","initialState","initialValue","valid","Number","field","name","onChange","path","step","max","min","onClick","type","isMinimized","object"],"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport {\n CheckboxField,\n CopyToClipboard,\n Form,\n Gutter,\n MinimizeMaximizeIcon,\n NumberField,\n SetDocumentStepNav,\n toast,\n useConfig,\n useDocumentInfo,\n useLocale,\n useTranslation,\n} from '@payloadcms/ui'\nimport { useSearchParams } from 'next/navigation.js'\n\nimport './index.scss'\n\nimport { hasDraftsEnabled } from 'payload/shared'\nimport * as React from 'react'\n\nimport { LocaleSelector } from './LocaleSelector/index.js'\nimport { RenderJSON } from './RenderJSON/index.js'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData, isTrashed } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const {\n config: {\n defaultDepth,\n localization,\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: string = ''\n\n if (collectionConfig) {\n draftsEnabled = hasDraftsEnabled(collectionConfig)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = hasDraftsEnabled(globalConfig)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(\n searchParams.get('depth') || defaultDepth.toString(),\n )\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n\n const trashParam = typeof initialData?.deletedAt === 'string'\n\n const params = new URLSearchParams({\n depth,\n draft: String(draft),\n locale,\n trash: trashParam ? 'true' : 'false',\n }).toString()\n\n const fetchURL = `${serverURL}${apiRoute}${docEndpoint}?${params}`\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error) // eslint-disable-line no-console\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <Gutter\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n right={false}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <div className={`${baseClass}__configuration`}>\n <div className={`${baseClass}__api-url`}>\n <span className={`${baseClass}__label`}>\n API URL <CopyToClipboard value={fetchURL} />\n </span>\n <a href={fetchURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {fetchURL}\n </a>\n </div>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n <div className={`${baseClass}__filter-query-checkboxes`}>\n {draftsEnabled && (\n <CheckboxField\n field={{\n name: 'draft',\n label: t('version:draft'),\n }}\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <CheckboxField\n field={{\n name: 'authenticated',\n label: t('authentication:authenticated'),\n }}\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n {localeOptions && <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />}\n <NumberField\n field={{\n name: 'depth',\n admin: {\n step: 1,\n },\n label: t('general:depth'),\n max: 10,\n min: 0,\n }}\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__toggle-fullscreen-button-container`}>\n <button\n aria-label=\"toggle fullscreen\"\n className={`${baseClass}__toggle-fullscreen-button`}\n onClick={() => setFullscreen(!fullscreen)}\n type=\"button\"\n >\n <MinimizeMaximizeIcon isMinimized={!fullscreen} />\n </button>\n </div>\n <div className={`${baseClass}__results`}>\n <RenderJSON object={data} />\n </div>\n </div>\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAShB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC;IACV,cAAc,EAAE,4BAA4B,CAAA;IAC5C,oBAAoB,EAAE,OAAO,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;CAC3B,CAiFA,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { hasSavePermission as getHasSavePermission, isEditing as getIsEditing } from '@payloadcms/ui/shared';
|
|
2
2
|
import { docAccessOperation, docAccessOperationGlobal, logError } from 'payload';
|
|
3
|
+
import { hasDraftsEnabled } from 'payload/shared';
|
|
3
4
|
export const getDocumentPermissions = async args => {
|
|
4
5
|
const {
|
|
5
6
|
id,
|
|
@@ -50,7 +51,7 @@ export const getDocumentPermissions = async args => {
|
|
|
50
51
|
globalConfig,
|
|
51
52
|
req
|
|
52
53
|
});
|
|
53
|
-
if (globalConfig
|
|
54
|
+
if (hasDraftsEnabled(globalConfig)) {
|
|
54
55
|
hasPublishPermission = (await docAccessOperationGlobal({
|
|
55
56
|
data: {
|
|
56
57
|
...data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","logError","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","collection","config","_status","versions","drafts","update","err","payload","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal, logError } from 'payload'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n /**\n * When called for creating a new document, id is not provided.\n */\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions: SanitizedDocumentPermissions\n hasPublishPermission: boolean\n hasSavePermission: boolean\n}> => {\n const { id, collectionConfig, data = {}, globalConfig, req } = args\n\n let docPermissions: SanitizedDocumentPermissions\n let hasPublishPermission = false\n\n if (collectionConfig) {\n try {\n docPermissions = await docAccessOperation({\n id,\n collection: {\n config: collectionConfig,\n },\n data: {\n ...data,\n _status: 'draft',\n },\n req,\n })\n\n if (collectionConfig.versions?.drafts) {\n hasPublishPermission = (\n await docAccessOperation({\n id,\n collection: {\n config: collectionConfig,\n },\n data: {\n ...data,\n _status: 'published',\n },\n req,\n })\n ).update\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n data,\n globalConfig,\n req,\n })\n\n if (globalConfig
|
|
1
|
+
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","logError","hasDraftsEnabled","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","collection","config","_status","versions","drafts","update","err","payload","collectionSlug","slug","globalSlug"],"sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"sourcesContent":["import type {\n Data,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport {\n hasSavePermission as getHasSavePermission,\n isEditing as getIsEditing,\n} from '@payloadcms/ui/shared'\nimport { docAccessOperation, docAccessOperationGlobal, logError } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\n /**\n * When called for creating a new document, id is not provided.\n */\n id?: number | string\n req: PayloadRequest\n}): Promise<{\n docPermissions: SanitizedDocumentPermissions\n hasPublishPermission: boolean\n hasSavePermission: boolean\n}> => {\n const { id, collectionConfig, data = {}, globalConfig, req } = args\n\n let docPermissions: SanitizedDocumentPermissions\n let hasPublishPermission = false\n\n if (collectionConfig) {\n try {\n docPermissions = await docAccessOperation({\n id,\n collection: {\n config: collectionConfig,\n },\n data: {\n ...data,\n _status: 'draft',\n },\n req,\n })\n\n if (collectionConfig.versions?.drafts) {\n hasPublishPermission = (\n await docAccessOperation({\n id,\n collection: {\n config: collectionConfig,\n },\n data: {\n ...data,\n _status: 'published',\n },\n req,\n })\n ).update\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n data,\n globalConfig,\n req,\n })\n\n if (hasDraftsEnabled(globalConfig)) {\n hasPublishPermission = (\n await docAccessOperationGlobal({\n data: {\n ...data,\n _status: 'published',\n },\n globalConfig,\n req,\n })\n ).update\n }\n } catch (err) {\n logError({ err, payload: req.payload })\n }\n }\n\n const hasSavePermission = getHasSavePermission({\n collectionSlug: collectionConfig?.slug,\n docPermissions,\n globalSlug: globalConfig?.slug,\n isEditing: getIsEditing({\n id,\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n }),\n })\n\n return {\n docPermissions,\n hasPublishPermission,\n hasSavePermission,\n }\n}\n"],"mappings":"AAQA,SACEA,iBAAA,IAAqBC,oBAAoB,EACzCC,SAAA,IAAaC,YAAY,QACpB;AACP,SAASC,kBAAkB,EAAEC,wBAAwB,EAAEC,QAAQ,QAAQ;AACvE,SAASC,gBAAgB,QAAQ;AAEjC,OAAO,MAAMC,sBAAA,GAAyB,MAAOC,IAAA;EAc3C,MAAM;IAAEC,EAAE;IAAEC,gBAAgB;IAAEC,IAAA,GAAO,CAAC,CAAC;IAAEC,YAAY;IAAEC;EAAG,CAAE,GAAGL,IAAA;EAE/D,IAAIM,cAAA;EACJ,IAAIC,oBAAA,GAAuB;EAE3B,IAAIL,gBAAA,EAAkB;IACpB,IAAI;MACFI,cAAA,GAAiB,MAAMX,kBAAA,CAAmB;QACxCM,EAAA;QACAO,UAAA,EAAY;UACVC,MAAA,EAAQP;QACV;QACAC,IAAA,EAAM;UACJ,GAAGA,IAAI;UACPO,OAAA,EAAS;QACX;QACAL;MACF;MAEA,IAAIH,gBAAA,CAAiBS,QAAQ,EAAEC,MAAA,EAAQ;QACrCL,oBAAA,GAAuB,CACrB,MAAMZ,kBAAA,CAAmB;UACvBM,EAAA;UACAO,UAAA,EAAY;YACVC,MAAA,EAAQP;UACV;UACAC,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPO,OAAA,EAAS;UACX;UACAL;QACF,EAAC,EACDQ,MAAM;MACV;IACF,EAAE,OAAOC,GAAA,EAAK;MACZjB,QAAA,CAAS;QAAEiB,GAAA;QAAKC,OAAA,EAASV,GAAA,CAAIU;MAAQ;IACvC;EACF;EAEA,IAAIX,YAAA,EAAc;IAChB,IAAI;MACFE,cAAA,GAAiB,MAAMV,wBAAA,CAAyB;QAC9CO,IAAA;QACAC,YAAA;QACAC;MACF;MAEA,IAAIP,gBAAA,CAAiBM,YAAA,GAAe;QAClCG,oBAAA,GAAuB,CACrB,MAAMX,wBAAA,CAAyB;UAC7BO,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPO,OAAA,EAAS;UACX;UACAN,YAAA;UACAC;QACF,EAAC,EACDQ,MAAM;MACV;IACF,EAAE,OAAOC,GAAA,EAAK;MACZjB,QAAA,CAAS;QAAEiB,GAAA;QAAKC,OAAA,EAASV,GAAA,CAAIU;MAAQ;IACvC;EACF;EAEA,MAAMxB,iBAAA,GAAoBC,oBAAA,CAAqB;IAC7CwB,cAAA,EAAgBd,gBAAA,EAAkBe,IAAA;IAClCX,cAAA;IACAY,UAAA,EAAYd,YAAA,EAAca,IAAA;IAC1BxB,SAAA,EAAWC,YAAA,CAAa;MACtBO,EAAA;MACAe,cAAA,EAAgBd,gBAAA,EAAkBe,IAAA;MAClCC,UAAA,EAAYd,YAAA,EAAca;IAC5B;EACF;EAEA,OAAO;IACLX,cAAA;IACAC,oBAAA;IACAhB;EACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACf,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACf,MAAM,SAAS,CAAA;AAGhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,cAAc,EAAE,4BAA4B,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,4BAA4B,EAAE,OAAO,CAAA;IACrC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAAC,CAAA;AAKF,eAAO,MAAM,WAAW,+FASrB,IAAI,KAAG,MAiPT,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { sanitizeID } from '@payloadcms/ui/shared';
|
|
2
2
|
import { combineQueries, extractAccessFromPermission } from 'payload';
|
|
3
|
+
import { hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared';
|
|
3
4
|
// TODO: in the future, we can parallelize some of these queries
|
|
4
5
|
// this will speed up the API by ~30-100ms or so
|
|
5
6
|
// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.
|
|
@@ -40,7 +41,7 @@ export const getVersions = async ({
|
|
|
40
41
|
versionCount
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
if (
|
|
44
|
+
if (hasDraftsEnabled(collectionConfig)) {
|
|
44
45
|
// Find out if a published document exists
|
|
45
46
|
if (doc?._status === 'published') {
|
|
46
47
|
publishedDoc = doc;
|
|
@@ -77,7 +78,7 @@ export const getVersions = async ({
|
|
|
77
78
|
if (publishedDoc) {
|
|
78
79
|
hasPublishedDoc = true;
|
|
79
80
|
}
|
|
80
|
-
if (
|
|
81
|
+
if (hasAutosaveEnabled(collectionConfig)) {
|
|
81
82
|
const mostRecentVersion = await payload.findVersions({
|
|
82
83
|
collection: collectionConfig.slug,
|
|
83
84
|
depth: 0,
|
|
@@ -139,7 +140,7 @@ export const getVersions = async ({
|
|
|
139
140
|
}
|
|
140
141
|
if (globalConfig) {
|
|
141
142
|
// Find out if a published document exists
|
|
142
|
-
if (
|
|
143
|
+
if (hasDraftsEnabled(globalConfig)) {
|
|
143
144
|
if (doc?._status === 'published') {
|
|
144
145
|
publishedDoc = doc;
|
|
145
146
|
} else {
|
|
@@ -156,7 +157,7 @@ export const getVersions = async ({
|
|
|
156
157
|
if (publishedDoc?._status === 'published') {
|
|
157
158
|
hasPublishedDoc = true;
|
|
158
159
|
}
|
|
159
|
-
if (
|
|
160
|
+
if (hasAutosaveEnabled(globalConfig)) {
|
|
160
161
|
const mostRecentVersion = await payload.findGlobalVersions({
|
|
161
162
|
slug: globalConfig.slug,
|
|
162
163
|
limit: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersions.js","names":["sanitizeID","combineQueries","extractAccessFromPermission","getVersions","id","idArg","collectionConfig","doc","docPermissions","globalConfig","locale","payload","user","publishedDoc","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","drafts","_status","find","collection","slug","depth","limit","undefined","pagination","select","updatedAt","where","and","or","equals","exists","docs","autosave","mostRecentVersion","findVersions","parent","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import { sanitizeID } from '@payloadcms/ui/shared'\nimport {\n combineQueries,\n extractAccessFromPermission,\n type Payload,\n type SanitizedCollectionConfig,\n type SanitizedDocumentPermissions,\n type SanitizedGlobalConfig,\n type TypedUser,\n} from 'payload'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n /**\n * Optional - performance optimization.\n * If a document has been fetched before fetching versions, pass it here.\n * If this document is set to published, we can skip the query to find out if a published document exists,\n * as the passed in document is proof of its existence.\n */\n doc?: Record<string, any>\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: TypedUser\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\n// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedDoc\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n const hasPublishedDoc = Boolean((collectionConfig && id) || globalConfig)\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (versionsConfig?.drafts) {\n // Find out if a published document exists\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = (\n await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale: locale || undefined,\n pagination: false,\n select: {\n updatedAt: true,\n },\n user,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n )?.docs?.[0]\n }\n\n if (publishedDoc) {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n depth: 0,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n\n if (globalConfig) {\n // Find out if a published document exists\n if (versionsConfig?.drafts) {\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n select: {\n updatedAt: true,\n },\n user,\n })\n }\n\n if (publishedDoc?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (versionsConfig.drafts?.autosave) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: combineQueries(\n {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getVersions.js","names":["sanitizeID","combineQueries","extractAccessFromPermission","hasAutosaveEnabled","hasDraftsEnabled","getVersions","id","idArg","collectionConfig","doc","docPermissions","globalConfig","locale","payload","user","publishedDoc","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","_status","find","collection","slug","depth","limit","undefined","pagination","select","updatedAt","where","and","or","equals","exists","docs","mostRecentVersion","findVersions","autosave","parent","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import { sanitizeID } from '@payloadcms/ui/shared'\nimport {\n combineQueries,\n extractAccessFromPermission,\n type Payload,\n type SanitizedCollectionConfig,\n type SanitizedDocumentPermissions,\n type SanitizedGlobalConfig,\n type TypedUser,\n} from 'payload'\nimport { hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n /**\n * Optional - performance optimization.\n * If a document has been fetched before fetching versions, pass it here.\n * If this document is set to published, we can skip the query to find out if a published document exists,\n * as the passed in document is proof of its existence.\n */\n doc?: Record<string, any>\n docPermissions: SanitizedDocumentPermissions\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n locale?: string\n payload: Payload\n user: TypedUser\n}\n\ntype Result = Promise<{\n hasPublishedDoc: boolean\n mostRecentVersionIsAutosaved: boolean\n unpublishedVersionCount: number\n versionCount: number\n}>\n\n// TODO: in the future, we can parallelize some of these queries\n// this will speed up the API by ~30-100ms or so\n// Note from the future: I have attempted parallelizing these queries, but it made this function almost 2x slower.\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedDoc\n let hasPublishedDoc = false\n let mostRecentVersionIsAutosaved = false\n let unpublishedVersionCount = 0\n let versionCount = 0\n\n const entityConfig = collectionConfig || globalConfig\n const versionsConfig = entityConfig?.versions\n\n const shouldFetchVersions = Boolean(versionsConfig && docPermissions?.readVersions)\n\n if (!shouldFetchVersions) {\n const hasPublishedDoc = Boolean((collectionConfig && id) || globalConfig)\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (collectionConfig) {\n if (!id) {\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n }\n\n if (hasDraftsEnabled(collectionConfig)) {\n // Find out if a published document exists\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = (\n await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n locale: locale || undefined,\n pagination: false,\n select: {\n updatedAt: true,\n },\n user,\n where: {\n and: [\n {\n or: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n _status: {\n exists: false,\n },\n },\n ],\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n )?.docs?.[0]\n }\n\n if (publishedDoc) {\n hasPublishedDoc = true\n }\n\n if (hasAutosaveEnabled(collectionConfig)) {\n const mostRecentVersion = await payload.findVersions({\n collection: collectionConfig.slug,\n depth: 0,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n depth: 0,\n user,\n where: combineQueries(\n {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n\n if (globalConfig) {\n // Find out if a published document exists\n if (hasDraftsEnabled(globalConfig)) {\n if (doc?._status === 'published') {\n publishedDoc = doc\n } else {\n publishedDoc = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n select: {\n updatedAt: true,\n },\n user,\n })\n }\n\n if (publishedDoc?._status === 'published') {\n hasPublishedDoc = true\n }\n\n if (hasAutosaveEnabled(globalConfig)) {\n const mostRecentVersion = await payload.findGlobalVersions({\n slug: globalConfig.slug,\n limit: 1,\n select: {\n autosave: true,\n },\n user,\n })\n\n if (\n mostRecentVersion.docs[0] &&\n 'autosave' in mostRecentVersion.docs[0] &&\n mostRecentVersion.docs[0].autosave\n ) {\n mostRecentVersionIsAutosaved = true\n }\n }\n\n if (publishedDoc?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: combineQueries(\n {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedDoc.updatedAt,\n },\n },\n ],\n },\n extractAccessFromPermission(docPermissions.readVersions),\n ),\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n }))\n }\n\n return {\n hasPublishedDoc,\n mostRecentVersionIsAutosaved,\n unpublishedVersionCount,\n versionCount,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6PAgBxB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAehB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6PAgBxB;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAkXA,CAAA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,oBAAoB,+QAe7D"}
|
|
@@ -6,7 +6,7 @@ import { isEditing as getIsEditing } from '@payloadcms/ui/shared';
|
|
|
6
6
|
import { buildFormState } from '@payloadcms/ui/utilities/buildFormState';
|
|
7
7
|
import { notFound, redirect } from 'next/navigation.js';
|
|
8
8
|
import { isolateObjectProperty, logError } from 'payload';
|
|
9
|
-
import { formatAdminURL } from 'payload/shared';
|
|
9
|
+
import { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared';
|
|
10
10
|
import React from 'react';
|
|
11
11
|
import { DocumentHeader } from '../../elements/DocumentHeader/index.js';
|
|
12
12
|
import { getPreferences } from '../../utilities/getPreferences.js';
|
|
@@ -207,7 +207,7 @@ export const renderDocument = async ({
|
|
|
207
207
|
throw new Error('not-found');
|
|
208
208
|
}
|
|
209
209
|
const formattedParams = new URLSearchParams();
|
|
210
|
-
if (collectionConfig
|
|
210
|
+
if (hasDraftsEnabled(collectionConfig || globalConfig)) {
|
|
211
211
|
formattedParams.append('draft', 'true');
|
|
212
212
|
}
|
|
213
213
|
if (locale?.code) {
|
|
@@ -239,7 +239,7 @@ export const renderDocument = async ({
|
|
|
239
239
|
* Handle case where autoSave is enabled and the document is being created
|
|
240
240
|
* => create document and redirect
|
|
241
241
|
*/
|
|
242
|
-
const shouldAutosave = hasSavePermission && (collectionConfig
|
|
242
|
+
const shouldAutosave = hasSavePermission && hasAutosaveEnabled(collectionConfig || globalConfig);
|
|
243
243
|
const validateDraftData = collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate;
|
|
244
244
|
let id = idFromArgs;
|
|
245
245
|
if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","RenderServerComponent","handleLivePreview","handlePreview","isEditing","getIsEditing","buildFormState","notFound","redirect","isolateObjectProperty","logError","formatAdminURL","React","DocumentHeader","getPreferences","NotFoundView","getDocPreferences","getDocumentData","getDocumentPermissions","getDocumentView","getIsLocked","getMetaBySegment","getVersions","renderDocumentSlots","generateMetadata","args","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","Error","isTrashedDoc","Boolean","deletedAt","reqForPermissions","transactionID","reqForLockCheck","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","drafts","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","autosave","validateDraftData","validate","create","depth","draft","documentSlots","Description","clientProps","isLivePreviewEnabled","livePreviewConfig","livePreviewURL","isPreviewEnabled","previewURL","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","typeofLivePreviewURL","url","AfterHeader","serverProps","DocumentView","props","RenderedDocument","error","message","err"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { handleLivePreview, handlePreview } from '@payloadcms/ui/rsc'\nimport { isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { isolateObjectProperty, logError } from 'payload'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getPreferences } from '../../utilities/getPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocPreferences } from './getDocPreferences.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { getIsLocked } from './getIsLocked.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getVersions } from './getVersions.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = Boolean(doc && 'deletedAt' in doc && typeof doc?.deletedAt === 'string')\n\n // CRITICAL FIX FOR TRANSACTION RACE CONDITION:\n // When running parallel operations with Promise.all, if they share the same req object\n // and one operation calls initTransaction() which MUTATES req.transactionID, that mutation\n // is visible to all parallel operations. This causes:\n // 1. Operation A (e.g., getDocumentPermissions → docAccessOperation) calls initTransaction()\n // which sets req.transactionID = Promise, then resolves it to a UUID\n // 2. Operation B (e.g., getIsLocked) running in parallel receives the SAME req with the mutated transactionID\n // 3. Operation A (does not even know that Operation B even exists and is stil using the transactionID) commits/ends its transaction\n // 4. Operation B tries to use the now-expired session → MongoExpiredSessionError!\n //\n // Solution: Use isolateObjectProperty to create a Proxy that isolates the 'transactionID' property.\n // This allows each operation to have its own transactionID without affecting the parent req.\n // If parent req already has a transaction, preserve it (don't isolate), since this\n // issue only arises when one of the operations calls initTransaction() themselves -\n // because then, that operation will also try to commit/end the transaction itself.\n\n // If the transactionID is already set, the parallel operations will not try to\n // commit/end the transaction themselves, so we don't need to isolate the\n // transactionID property.\n const reqForPermissions = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n const reqForLockCheck = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n\n const [\n docPreferences,\n { docPermissions, hasPublishPermission, hasSavePermission },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions - isolated transactionID prevents cross-contamination\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req: reqForPermissions,\n }),\n\n // Fetch document lock state - isolated transactionID prevents cross-contamination\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req: reqForLockCheck,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc || isLocked,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n ])\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n : ''\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n }\n\n if (!View) {\n View = NotFoundView\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave =\n hasSavePermission &&\n ((collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave))\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n\n redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n id,\n collectionConfig,\n globalConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n\n // Extract Description from documentSlots to pass to DocumentHeader\n const { Description } = documentSlots\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const { isLivePreviewEnabled, livePreviewConfig, livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n const { isPreviewEnabled, previewURL } = await handlePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={Boolean(\n entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL,\n )}\n isPreviewEnabled={Boolean(isPreviewEnabled)}\n previewURL={previewURL}\n typeofLivePreviewURL={typeof livePreviewConfig?.url as 'function' | 'string' | undefined}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n AfterHeader={Description}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function DocumentView(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","LivePreviewProvider","RenderServerComponent","handleLivePreview","handlePreview","isEditing","getIsEditing","buildFormState","notFound","redirect","isolateObjectProperty","logError","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","React","DocumentHeader","getPreferences","NotFoundView","getDocPreferences","getDocumentData","getDocumentPermissions","getDocumentView","getIsLocked","getMetaBySegment","getVersions","renderDocumentSlots","generateMetadata","args","renderDocument","disableActions","documentSubViewType","drawerSlug","importMap","initialData","initPageResult","overrideEntityVisibility","params","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","searchParams","versions","viewType","collectionConfig","docID","idFromArgs","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","id","doc","redirectURL","path","encodeURIComponent","Error","isTrashedDoc","Boolean","deletedAt","reqForPermissions","transactionID","reqForLockCheck","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","currentEditor","isLocked","lastUpdateTime","entityPreferences","Promise","all","data","collection","operation","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","code","fallbackLocale","readOnly","renderAllFields","schemaPath","skipValidation","documentViewServerProps","routeSegments","collections","find","visibleSlug","globals","formattedParams","URLSearchParams","append","apiQueryParams","toString","apiURL","View","showHeader","RootViewOverride","components","views","edit","root","Component","shouldAutosave","validateDraftData","drafts","validate","create","depth","draft","documentSlots","Description","clientProps","isLivePreviewEnabled","livePreviewConfig","livePreviewURL","isPreviewEnabled","previewURL","Document","_jsx","initialState","isTrashed","_jsxs","breakpoints","isLivePreviewing","value","editViewType","typeofLivePreviewURL","url","AfterHeader","serverProps","DocumentView","props","RenderedDocument","error","message","err"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewServerProps,\n CollectionPreferences,\n Data,\n DocumentViewClientProps,\n DocumentViewServerProps,\n DocumentViewServerPropsOnly,\n EditViewComponent,\n PayloadComponent,\n RenderDocumentVersionsProperties,\n} from 'payload'\n\nimport {\n DocumentInfoProvider,\n EditDepthProvider,\n HydrateAuthProvider,\n LivePreviewProvider,\n} from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { handleLivePreview, handlePreview } from '@payloadcms/ui/rsc'\nimport { isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { notFound, redirect } from 'next/navigation.js'\nimport { isolateObjectProperty, logError } from 'payload'\nimport { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { getPreferences } from '../../utilities/getPreferences.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocPreferences } from './getDocPreferences.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getDocumentView } from './getDocumentView.js'\nimport { getIsLocked } from './getIsLocked.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getVersions } from './getVersions.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\nexport type ViewToRender =\n | EditViewComponent\n | PayloadComponent<DocumentViewServerProps>\n | React.FC\n | React.FC<DocumentViewClientProps>\n\n/**\n * This function is responsible for rendering\n * an Edit Document view on the server for both:\n * - default document edit views\n * - on-demand edit views within drawers\n */\nexport const renderDocument = async ({\n disableActions,\n documentSubViewType,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n overrideEntityVisibility,\n params,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n searchParams,\n versions,\n viewType,\n}: {\n drawerSlug?: string\n overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n versions?: RenderDocumentVersionsProperties\n} & AdminViewServerProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: idFromArgs,\n globalConfig,\n locale,\n permissions,\n req,\n req: {\n i18n,\n payload,\n payload: {\n config,\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n },\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const segments = Array.isArray(params?.segments) ? params.segments : []\n const collectionSlug = collectionConfig?.slug || undefined\n const globalSlug = globalConfig?.slug || undefined\n let isEditing = getIsEditing({ id: idFromArgs, collectionSlug, globalSlug })\n\n // Fetch the doc required for the view\n let doc =\n !idFromArgs && !globalSlug\n ? initialData || null\n : await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n req,\n segments,\n user,\n })\n\n if (isEditing && !doc) {\n // If it's a collection document that doesn't exist, redirect to collection list\n if (collectionSlug) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}?notFound=${encodeURIComponent(idFromArgs)}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n // For globals or other cases, keep the 404 behavior\n throw new Error('not-found')\n }\n }\n\n const isTrashedDoc = Boolean(doc && 'deletedAt' in doc && typeof doc?.deletedAt === 'string')\n\n // CRITICAL FIX FOR TRANSACTION RACE CONDITION:\n // When running parallel operations with Promise.all, if they share the same req object\n // and one operation calls initTransaction() which MUTATES req.transactionID, that mutation\n // is visible to all parallel operations. This causes:\n // 1. Operation A (e.g., getDocumentPermissions → docAccessOperation) calls initTransaction()\n // which sets req.transactionID = Promise, then resolves it to a UUID\n // 2. Operation B (e.g., getIsLocked) running in parallel receives the SAME req with the mutated transactionID\n // 3. Operation A (does not even know that Operation B even exists and is stil using the transactionID) commits/ends its transaction\n // 4. Operation B tries to use the now-expired session → MongoExpiredSessionError!\n //\n // Solution: Use isolateObjectProperty to create a Proxy that isolates the 'transactionID' property.\n // This allows each operation to have its own transactionID without affecting the parent req.\n // If parent req already has a transaction, preserve it (don't isolate), since this\n // issue only arises when one of the operations calls initTransaction() themselves -\n // because then, that operation will also try to commit/end the transaction itself.\n\n // If the transactionID is already set, the parallel operations will not try to\n // commit/end the transaction themselves, so we don't need to isolate the\n // transactionID property.\n const reqForPermissions = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n const reqForLockCheck = req.transactionID ? req : isolateObjectProperty(req, 'transactionID')\n\n const [\n docPreferences,\n { docPermissions, hasPublishPermission, hasSavePermission },\n { currentEditor, isLocked, lastUpdateTime },\n entityPreferences,\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions - isolated transactionID prevents cross-contamination\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req: reqForPermissions,\n }),\n\n // Fetch document lock state - isolated transactionID prevents cross-contamination\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req: reqForLockCheck,\n }),\n\n // get entity preferences\n getPreferences<CollectionPreferences>(\n collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`,\n payload,\n req.user.id,\n req.user.collection,\n ),\n ])\n\n const operation = (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create'\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\n doc,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id: idFromArgs,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation,\n readOnly: isTrashedDoc || isLocked,\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n skipValidation: true,\n }),\n ])\n\n const documentViewServerProps: DocumentViewServerPropsOnly = {\n doc,\n hasPublishedDoc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n versions,\n }\n\n if (\n !overrideEntityVisibility &&\n ((collectionSlug &&\n !visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) ||\n (globalSlug && !visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)))\n ) {\n throw new Error('not-found')\n }\n\n const formattedParams = new URLSearchParams()\n\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n formattedParams.append('draft', 'true')\n }\n\n if (locale?.code) {\n formattedParams.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${formattedParams.toString()}`\n\n const apiURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n : globalSlug\n ? `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n : ''\n\n let View: ViewToRender = null\n\n let showHeader = true\n\n const RootViewOverride =\n collectionConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in collectionConfig.admin.components.views.edit.root\n ? collectionConfig?.admin?.components?.views?.edit?.root?.Component\n : globalConfig?.admin?.components?.views?.edit?.root &&\n 'Component' in globalConfig.admin.components.views.edit.root\n ? globalConfig?.admin?.components?.views?.edit?.root?.Component\n : null\n\n if (RootViewOverride) {\n View = RootViewOverride\n showHeader = false\n } else {\n ;({ View } = getDocumentView({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n }))\n }\n\n if (!View) {\n View = NotFoundView\n }\n\n /**\n * Handle case where autoSave is enabled and the document is being created\n * => create document and redirect\n */\n const shouldAutosave = hasSavePermission && hasAutosaveEnabled(collectionConfig || globalConfig)\n\n const validateDraftData =\n collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate\n\n let id = idFromArgs\n\n if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {\n doc = await payload.create({\n collection: collectionSlug,\n data: initialData || {},\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n req,\n user,\n })\n\n if (doc?.id) {\n id = doc.id\n isEditing = getIsEditing({ id: doc.id, collectionSlug, globalSlug })\n\n if (!drawerSlug && redirectAfterCreate !== false) {\n const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n\n redirect(redirectURL)\n }\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n id,\n collectionConfig,\n globalConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n\n // Extract Description from documentSlots to pass to DocumentHeader\n const { Description } = documentSlots\n\n const clientProps: DocumentViewClientProps = {\n formState,\n ...documentSlots,\n documentSubViewType,\n viewType,\n }\n\n const { isLivePreviewEnabled, livePreviewConfig, livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n const { isPreviewEnabled, previewURL } = await handlePreview({\n collectionSlug,\n config,\n data: doc,\n globalSlug,\n operation,\n req,\n })\n\n return {\n data: doc,\n Document: (\n <DocumentInfoProvider\n apiURL={apiURL}\n collectionSlug={collectionConfig?.slug}\n currentEditor={currentEditor}\n disableActions={disableActions ?? false}\n docPermissions={docPermissions}\n globalSlug={globalConfig?.slug}\n hasPublishedDoc={hasPublishedDoc}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n initialData={doc}\n initialState={formState}\n isEditing={isEditing}\n isLocked={isLocked}\n isTrashed={isTrashedDoc}\n key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterCreate={redirectAfterCreate}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n <LivePreviewProvider\n breakpoints={livePreviewConfig?.breakpoints}\n isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'}\n isLivePreviewing={Boolean(\n entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL,\n )}\n isPreviewEnabled={Boolean(isPreviewEnabled)}\n previewURL={previewURL}\n typeofLivePreviewURL={typeof livePreviewConfig?.url as 'function' | 'string' | undefined}\n url={livePreviewURL}\n >\n {showHeader && !drawerSlug && (\n <DocumentHeader\n AfterHeader={Description}\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n permissions={permissions}\n req={req}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {RenderServerComponent({\n clientProps,\n Component: View,\n importMap,\n serverProps: documentViewServerProps,\n })}\n </EditDepthProvider>\n </LivePreviewProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport async function DocumentView(props: AdminViewServerProps) {\n try {\n const { Document: RenderedDocument } = await renderDocument(props)\n return RenderedDocument\n } catch (error) {\n if (error?.message === 'NEXT_REDIRECT') {\n throw error\n }\n\n logError({ err: error, payload: props.initPageResult.req.payload })\n\n if (error.message === 'not-found') {\n notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderDocumentSlots.d.ts","sourceRoot":"","sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,cAAc,EAGd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EAGrB,cAAc,EAKf,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"renderDocumentSlots.d.ts","sourceRoot":"","sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,cAAc,EAGd,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EAGrB,cAAc,EAKf,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,mBAAmB,EAAE,CAAC,IAAI,EAAE;IACvC,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,WAAW,EAAE,4BAA4B,CAAA;IACzC,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,aAqJL,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,cAAc,CAAC;IACtD,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB,CAsBA,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ViewDescription } from '@payloadcms/ui';
|
|
2
2
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
3
|
+
import { hasDraftsEnabled } from 'payload/shared';
|
|
3
4
|
import { getDocumentPermissions } from './getDocumentPermissions.js';
|
|
4
5
|
export const renderDocumentSlots = args => {
|
|
5
6
|
const {
|
|
@@ -69,7 +70,7 @@ export const renderDocumentSlots = args => {
|
|
|
69
70
|
});
|
|
70
71
|
}
|
|
71
72
|
if (hasSavePermission) {
|
|
72
|
-
if (collectionConfig
|
|
73
|
+
if (hasDraftsEnabled(collectionConfig || globalConfig)) {
|
|
73
74
|
const CustomPublishButton = collectionConfig?.admin?.components?.edit?.PublishButton || globalConfig?.admin?.components?.elements?.PublishButton;
|
|
74
75
|
if (CustomPublishButton) {
|
|
75
76
|
components.PublishButton = RenderServerComponent({
|
|
@@ -79,7 +80,7 @@ export const renderDocumentSlots = args => {
|
|
|
79
80
|
});
|
|
80
81
|
}
|
|
81
82
|
const CustomSaveDraftButton = collectionConfig?.admin?.components?.edit?.SaveDraftButton || globalConfig?.admin?.components?.elements?.SaveDraftButton;
|
|
82
|
-
const draftsEnabled = collectionConfig
|
|
83
|
+
const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig);
|
|
83
84
|
if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {
|
|
84
85
|
components.SaveDraftButton = RenderServerComponent({
|
|
85
86
|
Component: CustomSaveDraftButton,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderDocumentSlots.js","names":["ViewDescription","RenderServerComponent","getDocumentPermissions","renderDocumentSlots","args","id","collectionConfig","globalConfig","hasSavePermission","req","components","unsavedDraftWithValidations","undefined","isPreviewEnabled","admin","preview","serverProps","i18n","payload","user","BeforeDocumentControls","edit","beforeDocumentControls","elements","Component","importMap","EditMenuItems","editMenuItems","CustomPreviewButton","PreviewButton","LivePreview","views","livePreview","descriptionFromConfig","description","staticDescription","t","CustomDescription","Description","hasDescription","clientProps","collectionSlug","slug","Fallback","versions","drafts","CustomPublishButton","PublishButton","CustomSaveDraftButton","SaveDraftButton","draftsEnabled","autosave","CustomSaveButton","SaveButton","upload","Upload","controls","UploadControls","renderDocumentSlotsHandler","collections","config","Error","docPermissions","data","permissions"],"sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"sourcesContent":["import type {\n BeforeDocumentControlsServerPropsOnly,\n DocumentSlots,\n EditMenuItemsServerPropsOnly,\n PayloadRequest,\n PreviewButtonServerPropsOnly,\n PublishButtonServerPropsOnly,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n SaveButtonServerPropsOnly,\n SaveDraftButtonServerPropsOnly,\n ServerFunction,\n ServerProps,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { ViewDescription } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport const renderDocumentSlots: (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasSavePermission: boolean\n id?: number | string\n permissions: SanitizedDocumentPermissions\n req: PayloadRequest\n}) => DocumentSlots = (args) => {\n const { id, collectionConfig, globalConfig, hasSavePermission, req } = args\n\n const components: DocumentSlots = {} as DocumentSlots\n\n const unsavedDraftWithValidations = undefined\n\n const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview\n\n const serverProps: ServerProps = {\n id,\n i18n: req.i18n,\n payload: req.payload,\n user: req.user,\n // TODO: Add remaining serverProps\n }\n\n const BeforeDocumentControls =\n collectionConfig?.admin?.components?.edit?.beforeDocumentControls ||\n globalConfig?.admin?.components?.elements?.beforeDocumentControls\n\n if (BeforeDocumentControls) {\n components.BeforeDocumentControls = RenderServerComponent({\n Component: BeforeDocumentControls,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies BeforeDocumentControlsServerPropsOnly,\n })\n }\n\n const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems\n\n if (EditMenuItems) {\n components.EditMenuItems = RenderServerComponent({\n Component: EditMenuItems,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies EditMenuItemsServerPropsOnly,\n })\n }\n\n const CustomPreviewButton =\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n\n if (isPreviewEnabled && CustomPreviewButton) {\n components.PreviewButton = RenderServerComponent({\n Component: CustomPreviewButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PreviewButtonServerPropsOnly,\n })\n }\n\n const LivePreview =\n collectionConfig?.admin?.components?.views?.edit?.livePreview ||\n globalConfig?.admin?.components?.views?.edit?.livePreview\n\n if (LivePreview?.Component) {\n components.LivePreview = RenderServerComponent({\n Component: LivePreview.Component,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n const descriptionFromConfig =\n collectionConfig?.admin?.description || globalConfig?.admin?.description\n\n const staticDescription: StaticDescription =\n typeof descriptionFromConfig === 'function'\n ? descriptionFromConfig({ t: req.i18n.t })\n : descriptionFromConfig\n\n const CustomDescription =\n collectionConfig?.admin?.components?.Description ||\n globalConfig?.admin?.components?.elements?.Description\n\n const hasDescription = CustomDescription || staticDescription\n\n if (hasDescription) {\n components.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig?.slug,\n description: staticDescription,\n } satisfies ViewDescriptionClientProps,\n Component: CustomDescription,\n Fallback: ViewDescription,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n if (hasSavePermission) {\n if (collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) {\n const CustomPublishButton =\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n\n if (CustomPublishButton) {\n components.PublishButton = RenderServerComponent({\n Component: CustomPublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PublishButtonServerPropsOnly,\n })\n }\n\n const CustomSaveDraftButton =\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n\n const draftsEnabled =\n (collectionConfig?.versions?.drafts && !collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && !globalConfig?.versions?.drafts?.autosave)\n\n if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {\n components.SaveDraftButton = RenderServerComponent({\n Component: CustomSaveDraftButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveDraftButtonServerPropsOnly,\n })\n }\n } else {\n const CustomSaveButton =\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n\n if (CustomSaveButton) {\n components.SaveButton = RenderServerComponent({\n Component: CustomSaveButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveButtonServerPropsOnly,\n })\n }\n }\n }\n\n if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {\n components.Upload = RenderServerComponent({\n Component: collectionConfig.admin.components.edit.Upload,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n if (collectionConfig?.upload && collectionConfig.upload.admin?.components?.controls) {\n components.UploadControls = RenderServerComponent({\n Component: collectionConfig.upload.admin.components.controls,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n return components\n}\n\nexport const renderDocumentSlotsHandler: ServerFunction<{\n collectionSlug: string\n id?: number | string\n}> = async (args) => {\n const { id, collectionSlug, req } = args\n\n const collectionConfig = req.payload.collections[collectionSlug]?.config\n\n if (!collectionConfig) {\n throw new Error(req.t('error:incorrectCollection'))\n }\n\n const { docPermissions, hasSavePermission } = await getDocumentPermissions({\n collectionConfig,\n data: {},\n req,\n })\n\n return renderDocumentSlots({\n id,\n collectionConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderDocumentSlots.js","names":["ViewDescription","RenderServerComponent","hasDraftsEnabled","getDocumentPermissions","renderDocumentSlots","args","id","collectionConfig","globalConfig","hasSavePermission","req","components","unsavedDraftWithValidations","undefined","isPreviewEnabled","admin","preview","serverProps","i18n","payload","user","BeforeDocumentControls","edit","beforeDocumentControls","elements","Component","importMap","EditMenuItems","editMenuItems","CustomPreviewButton","PreviewButton","LivePreview","views","livePreview","descriptionFromConfig","description","staticDescription","t","CustomDescription","Description","hasDescription","clientProps","collectionSlug","slug","Fallback","CustomPublishButton","PublishButton","CustomSaveDraftButton","SaveDraftButton","draftsEnabled","CustomSaveButton","SaveButton","upload","Upload","controls","UploadControls","renderDocumentSlotsHandler","collections","config","Error","docPermissions","data","permissions"],"sources":["../../../src/views/Document/renderDocumentSlots.tsx"],"sourcesContent":["import type {\n BeforeDocumentControlsServerPropsOnly,\n DocumentSlots,\n EditMenuItemsServerPropsOnly,\n PayloadRequest,\n PreviewButtonServerPropsOnly,\n PublishButtonServerPropsOnly,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n SaveButtonServerPropsOnly,\n SaveDraftButtonServerPropsOnly,\n ServerFunction,\n ServerProps,\n StaticDescription,\n ViewDescriptionClientProps,\n ViewDescriptionServerPropsOnly,\n} from 'payload'\n\nimport { ViewDescription } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { hasDraftsEnabled } from 'payload/shared'\n\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport const renderDocumentSlots: (args: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n hasSavePermission: boolean\n id?: number | string\n permissions: SanitizedDocumentPermissions\n req: PayloadRequest\n}) => DocumentSlots = (args) => {\n const { id, collectionConfig, globalConfig, hasSavePermission, req } = args\n\n const components: DocumentSlots = {} as DocumentSlots\n\n const unsavedDraftWithValidations = undefined\n\n const isPreviewEnabled = collectionConfig?.admin?.preview || globalConfig?.admin?.preview\n\n const serverProps: ServerProps = {\n id,\n i18n: req.i18n,\n payload: req.payload,\n user: req.user,\n // TODO: Add remaining serverProps\n }\n\n const BeforeDocumentControls =\n collectionConfig?.admin?.components?.edit?.beforeDocumentControls ||\n globalConfig?.admin?.components?.elements?.beforeDocumentControls\n\n if (BeforeDocumentControls) {\n components.BeforeDocumentControls = RenderServerComponent({\n Component: BeforeDocumentControls,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies BeforeDocumentControlsServerPropsOnly,\n })\n }\n\n const EditMenuItems = collectionConfig?.admin?.components?.edit?.editMenuItems\n\n if (EditMenuItems) {\n components.EditMenuItems = RenderServerComponent({\n Component: EditMenuItems,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies EditMenuItemsServerPropsOnly,\n })\n }\n\n const CustomPreviewButton =\n collectionConfig?.admin?.components?.edit?.PreviewButton ||\n globalConfig?.admin?.components?.elements?.PreviewButton\n\n if (isPreviewEnabled && CustomPreviewButton) {\n components.PreviewButton = RenderServerComponent({\n Component: CustomPreviewButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PreviewButtonServerPropsOnly,\n })\n }\n\n const LivePreview =\n collectionConfig?.admin?.components?.views?.edit?.livePreview ||\n globalConfig?.admin?.components?.views?.edit?.livePreview\n\n if (LivePreview?.Component) {\n components.LivePreview = RenderServerComponent({\n Component: LivePreview.Component,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n const descriptionFromConfig =\n collectionConfig?.admin?.description || globalConfig?.admin?.description\n\n const staticDescription: StaticDescription =\n typeof descriptionFromConfig === 'function'\n ? descriptionFromConfig({ t: req.i18n.t })\n : descriptionFromConfig\n\n const CustomDescription =\n collectionConfig?.admin?.components?.Description ||\n globalConfig?.admin?.components?.elements?.Description\n\n const hasDescription = CustomDescription || staticDescription\n\n if (hasDescription) {\n components.Description = RenderServerComponent({\n clientProps: {\n collectionSlug: collectionConfig?.slug,\n description: staticDescription,\n } satisfies ViewDescriptionClientProps,\n Component: CustomDescription,\n Fallback: ViewDescription,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies ViewDescriptionServerPropsOnly,\n })\n }\n\n if (hasSavePermission) {\n if (hasDraftsEnabled(collectionConfig || globalConfig)) {\n const CustomPublishButton =\n collectionConfig?.admin?.components?.edit?.PublishButton ||\n globalConfig?.admin?.components?.elements?.PublishButton\n\n if (CustomPublishButton) {\n components.PublishButton = RenderServerComponent({\n Component: CustomPublishButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies PublishButtonServerPropsOnly,\n })\n }\n\n const CustomSaveDraftButton =\n collectionConfig?.admin?.components?.edit?.SaveDraftButton ||\n globalConfig?.admin?.components?.elements?.SaveDraftButton\n\n const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig)\n\n if ((draftsEnabled || unsavedDraftWithValidations) && CustomSaveDraftButton) {\n components.SaveDraftButton = RenderServerComponent({\n Component: CustomSaveDraftButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveDraftButtonServerPropsOnly,\n })\n }\n } else {\n const CustomSaveButton =\n collectionConfig?.admin?.components?.edit?.SaveButton ||\n globalConfig?.admin?.components?.elements?.SaveButton\n\n if (CustomSaveButton) {\n components.SaveButton = RenderServerComponent({\n Component: CustomSaveButton,\n importMap: req.payload.importMap,\n serverProps: serverProps satisfies SaveButtonServerPropsOnly,\n })\n }\n }\n }\n\n if (collectionConfig?.upload && collectionConfig?.admin?.components?.edit?.Upload) {\n components.Upload = RenderServerComponent({\n Component: collectionConfig.admin.components.edit.Upload,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n if (collectionConfig?.upload && collectionConfig.upload.admin?.components?.controls) {\n components.UploadControls = RenderServerComponent({\n Component: collectionConfig.upload.admin.components.controls,\n importMap: req.payload.importMap,\n serverProps,\n })\n }\n\n return components\n}\n\nexport const renderDocumentSlotsHandler: ServerFunction<{\n collectionSlug: string\n id?: number | string\n}> = async (args) => {\n const { id, collectionSlug, req } = args\n\n const collectionConfig = req.payload.collections[collectionSlug]?.config\n\n if (!collectionConfig) {\n throw new Error(req.t('error:incorrectCollection'))\n }\n\n const { docPermissions, hasSavePermission } = await getDocumentPermissions({\n collectionConfig,\n data: {},\n req,\n })\n\n return renderDocumentSlots({\n id,\n collectionConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAKxB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAKxB,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,wBAAsB,WAAW,CAAC,KAAK,EAAE,uBAAuB,8BA8Z/D"}
|
|
@@ -4,6 +4,7 @@ import { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig';
|
|
|
4
4
|
import { getClientSchemaMap } from '@payloadcms/ui/utilities/getClientSchemaMap';
|
|
5
5
|
import { getSchemaMap } from '@payloadcms/ui/utilities/getSchemaMap';
|
|
6
6
|
import { notFound } from 'next/navigation.js';
|
|
7
|
+
import { hasDraftsEnabled } from 'payload/shared';
|
|
7
8
|
import React from 'react';
|
|
8
9
|
import { DefaultVersionView } from './Default/index.js';
|
|
9
10
|
import { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js';
|
|
@@ -38,7 +39,7 @@ export async function VersionView(props) {
|
|
|
38
39
|
const versionToID = routeSegments[routeSegments.length - 1];
|
|
39
40
|
const collectionSlug = collectionConfig?.slug;
|
|
40
41
|
const globalSlug = globalConfig?.slug;
|
|
41
|
-
const draftsEnabled = (collectionConfig
|
|
42
|
+
const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig);
|
|
42
43
|
const localeCodesFromParams = searchParams.localeCodes ? JSON.parse(searchParams.localeCodes) : null;
|
|
43
44
|
const versionFromIDFromParams = searchParams.versionFrom;
|
|
44
45
|
const modifiedOnly = searchParams.modifiedOnly === 'false' ? false : true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["formatDate","getClientConfig","getClientSchemaMap","getSchemaMap","notFound","React","DefaultVersionView","fetchLatestVersion","fetchVersion","fetchVersions","RenderDiff","getVersionLabel","VersionPillLabel","VersionView","props","hasPublishedDoc","i18n","initPageResult","routeSegments","searchParams","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","localization","user","versionToID","length","collectionSlug","slug","globalSlug","draftsEnabled","versions","drafts","localeCodesFromParams","localeCodes","JSON","parse","versionFromIDFromParams","versionFrom","modifiedOnly","docPermissions","collections","globals","versionTo","depth","locale","overrideAccess","previousVersionResult","versionFromResult","currentlyPublishedVersion","latestDraftVersion","previousPublishedVersionResult","Promise","all","draft","limit","parentID","sort","where","and","updatedAt","less_than","resolve","status","equals","previousVersion","docs","previousPublishedVersion","selectedLocales","locales","code","find","push","filterAvailableLocales","map","schemaMap","clientSchemaMap","importMap","RenderedDiff","customDiffComponents","entitySlug","fields","fieldsPermissions","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","versionFromSiblingData","version","versionToSiblingData","versionToCreatedAtFormatted","date","Date","pattern","admin","dateFormat","formatPill","doc","labelOverride","labelStyle","labelSuffix","_jsx","labelFirst","versionFromOptions","t","value","publishedNewerThanDraft","some","option","a","b","getTime","versionToIsVersionFrom","versionFromComparisonOptions","isVersionTo","alreadyAdded","existingOption","otherOptionsWithSameID","filter","_jsxs","optionWithSameID","index","label","Fragment","undefined","canUpdate","update","versionFromCreatedAt","createdAt","versionFromID","versionToCreatedAt","VersionToCreatedAtLabel","versionToStatus","_status"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n DocumentViewServerProps,\n Locale,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n TypeWithVersion,\n} from 'payload'\n\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { getClientSchemaMap } from '@payloadcms/ui/utilities/getClientSchemaMap'\nimport { getSchemaMap } from '@payloadcms/ui/utilities/getSchemaMap'\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport type { CompareOption } from './Default/types.js'\n\nimport { DefaultVersionView } from './Default/index.js'\nimport { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js'\nimport { RenderDiff } from './RenderFieldsToDiff/index.js'\nimport { getVersionLabel } from './VersionPillLabel/getVersionLabel.js'\nimport { VersionPillLabel } from './VersionPillLabel/VersionPillLabel.js'\n\nexport async function VersionView(props: DocumentViewServerProps) {\n const { hasPublishedDoc, i18n, initPageResult, routeSegments, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config, config: { localization } } = {}, user } = {},\n } = initPageResult\n\n const versionToID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const draftsEnabled = (collectionConfig ?? globalConfig)?.versions?.drafts\n\n const localeCodesFromParams = searchParams.localeCodes\n ? JSON.parse(searchParams.localeCodes as string)\n : null\n\n const versionFromIDFromParams = searchParams.versionFrom as string\n\n const modifiedOnly: boolean = searchParams.modifiedOnly === 'false' ? false : true\n\n const docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission = collectionSlug\n ? permissions.collections[collectionSlug]\n : permissions.globals[globalSlug]\n\n const versionTo = await fetchVersion<{\n _status?: string\n }>({\n id: versionToID,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (!versionTo) {\n return notFound()\n }\n\n const [\n previousVersionResult,\n versionFromResult,\n currentlyPublishedVersion,\n latestDraftVersion,\n previousPublishedVersionResult,\n ] = await Promise.all([\n // Previous version (the one before the versionTo)\n fetchVersions({\n collectionSlug,\n // If versionFromIDFromParams is provided, the previous version is only used in the version comparison dropdown => depth 0 is enough.\n // If it's not provided, this is used as `versionFrom` in the comparison, which expects populated data => depth 1 is needed.\n depth: versionFromIDFromParams ? 0 : 1,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n ],\n },\n }),\n // Version from ID from params\n (versionFromIDFromParams\n ? fetchVersion({\n id: versionFromIDFromParams,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n : Promise.resolve(null)) as Promise<null | TypeWithVersion<object>>,\n // Currently published version - do note: currently published != latest published, as an unpublished version can be the latest published\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n // Latest draft version\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n // Previous published version\n // Only query for published versions if drafts are enabled (since _status field only exists with drafts)\n draftsEnabled\n ? fetchVersions({\n collectionSlug,\n depth: 0,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n })\n : Promise.resolve(null),\n ])\n\n const previousVersion: null | TypeWithVersion<object> = previousVersionResult?.docs?.[0] ?? null\n\n const versionFrom =\n versionFromResult ||\n // By default, we'll compare the previous version. => versionFrom = version previous to versionTo\n previousVersion\n\n // Previous published version before the versionTo\n const previousPublishedVersion = previousPublishedVersionResult?.docs?.[0] ?? null\n\n let selectedLocales: string[] = []\n if (localization) {\n let locales: Locale[] = []\n if (localeCodesFromParams) {\n for (const code of localeCodesFromParams) {\n const locale = localization.locales.find((locale) => locale.code === code)\n if (!locale) {\n continue\n }\n locales.push(locale)\n }\n } else {\n locales = localization.locales\n }\n\n if (localization.filterAvailableLocales) {\n locales = (await localization.filterAvailableLocales({ locales, req })) || []\n }\n\n selectedLocales = locales.map((locale) => locale.code)\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config: payload.config,\n i18n,\n importMap: payload.importMap,\n user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n const RenderedDiff = RenderDiff({\n clientSchemaMap,\n customDiffComponents: {},\n entitySlug: collectionSlug || globalSlug,\n fields: (collectionConfig || globalConfig)?.fields,\n fieldsPermissions: docPermissions?.fields,\n i18n,\n modifiedOnly,\n parentIndexPath: '',\n parentIsLocalized: false,\n parentPath: '',\n parentSchemaPath: '',\n req,\n selectedLocales,\n versionFromSiblingData: {\n ...versionFrom?.version,\n updatedAt: versionFrom?.updatedAt,\n },\n versionToSiblingData: {\n ...versionTo.version,\n updatedAt: versionTo.updatedAt,\n },\n })\n\n const versionToCreatedAtFormatted = versionTo.updatedAt\n ? formatDate({\n date:\n typeof versionTo.updatedAt === 'string'\n ? new Date(versionTo.updatedAt)\n : (versionTo.updatedAt as Date),\n i18n,\n pattern: config.admin.dateFormat,\n })\n : ''\n\n const formatPill = ({\n doc,\n labelOverride,\n labelStyle,\n labelSuffix,\n }: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n labelStyle?: 'pill' | 'text'\n labelSuffix?: React.ReactNode\n }): React.ReactNode => {\n return (\n <VersionPillLabel\n currentlyPublishedVersion={currentlyPublishedVersion}\n doc={doc}\n key={doc.id}\n labelFirst={true}\n labelOverride={labelOverride}\n labelStyle={labelStyle ?? 'text'}\n labelSuffix={labelSuffix}\n latestDraftVersion={latestDraftVersion}\n />\n )\n }\n\n // SelectComparison Options:\n //\n // Previous version: always, unless doesn't exist. Can be the same as previously published\n // Latest draft: only if no newer published exists (latestDraftVersion)\n // Currently published: always, if exists\n // Previously published: if there is a prior published version older than versionTo\n // Specific Version: only if not already present under other label (= versionFrom)\n\n let versionFromOptions: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n updatedAt: Date\n value: string\n }[] = []\n\n // Previous version\n if (previousVersion?.id) {\n versionFromOptions.push({\n doc: previousVersion,\n labelOverride: i18n.t('version:previousVersion'),\n updatedAt: new Date(previousVersion.updatedAt),\n value: previousVersion.id,\n })\n }\n\n // Latest Draft\n const publishedNewerThanDraft =\n currentlyPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n if (latestDraftVersion && !publishedNewerThanDraft) {\n versionFromOptions.push({\n doc: latestDraftVersion,\n updatedAt: new Date(latestDraftVersion.updatedAt),\n value: latestDraftVersion.id,\n })\n }\n\n // Currently Published\n if (currentlyPublishedVersion) {\n versionFromOptions.push({\n doc: currentlyPublishedVersion,\n updatedAt: new Date(currentlyPublishedVersion.updatedAt),\n value: currentlyPublishedVersion.id,\n })\n }\n\n // Previous Published\n if (previousPublishedVersion && currentlyPublishedVersion?.id !== previousPublishedVersion.id) {\n versionFromOptions.push({\n doc: previousPublishedVersion,\n labelOverride: i18n.t('version:previouslyPublished'),\n updatedAt: new Date(previousPublishedVersion.updatedAt),\n value: previousPublishedVersion.id,\n })\n }\n\n // Specific Version\n if (versionFrom?.id && !versionFromOptions.some((option) => option.value === versionFrom.id)) {\n // Only add \"specific version\" if it is not already in the options\n versionFromOptions.push({\n doc: versionFrom,\n labelOverride: i18n.t('version:specificVersion'),\n updatedAt: new Date(versionFrom.updatedAt),\n value: versionFrom.id,\n })\n }\n\n versionFromOptions = versionFromOptions.sort((a, b) => {\n // Sort by updatedAt, newest first\n if (a && b) {\n return b.updatedAt.getTime() - a.updatedAt.getTime()\n }\n return 0\n })\n\n const versionToIsVersionFrom = versionFrom?.id === versionTo.id\n\n const versionFromComparisonOptions: CompareOption[] = []\n\n for (const option of versionFromOptions) {\n const isVersionTo = option.value === versionTo.id\n\n if (isVersionTo && !versionToIsVersionFrom) {\n // Don't offer selecting a versionFrom that is the same as versionTo, unless it's already selected\n continue\n }\n\n const alreadyAdded = versionFromComparisonOptions.some(\n (existingOption) => existingOption.value === option.value,\n )\n if (alreadyAdded) {\n continue\n }\n\n const otherOptionsWithSameID = versionFromOptions.filter(\n (existingOption) => existingOption.value === option.value && existingOption !== option,\n )\n\n // Merge options with same ID to the same option\n const labelSuffix = otherOptionsWithSameID?.length ? (\n <span key={`${option.value}-suffix`}>\n {' ('}\n {otherOptionsWithSameID.map((optionWithSameID, index) => {\n const label =\n optionWithSameID.labelOverride ||\n getVersionLabel({\n currentlyPublishedVersion,\n latestDraftVersion,\n t: i18n.t,\n version: optionWithSameID.doc,\n }).label\n\n return (\n <React.Fragment key={`${optionWithSameID.value}-${index}`}>\n {index > 0 ? ', ' : ''}\n {label}\n </React.Fragment>\n )\n })}\n {')'}\n </span>\n ) : undefined\n\n versionFromComparisonOptions.push({\n label: formatPill({\n doc: option.doc,\n labelOverride: option.labelOverride,\n labelSuffix,\n }),\n value: option.value,\n })\n }\n\n return (\n <DefaultVersionView\n canUpdate={docPermissions?.update}\n modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionFromCreatedAt={versionFrom?.createdAt}\n versionFromID={versionFrom?.id}\n versionFromOptions={versionFromComparisonOptions}\n versionToCreatedAt={versionTo.createdAt}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n VersionToCreatedAtLabel={formatPill({ doc: versionTo, labelStyle: 'pill' })}\n versionToID={versionTo.id}\n versionToStatus={versionTo.version?._status}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["formatDate","getClientConfig","getClientSchemaMap","getSchemaMap","notFound","hasDraftsEnabled","React","DefaultVersionView","fetchLatestVersion","fetchVersion","fetchVersions","RenderDiff","getVersionLabel","VersionPillLabel","VersionView","props","hasPublishedDoc","i18n","initPageResult","routeSegments","searchParams","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","localization","user","versionToID","length","collectionSlug","slug","globalSlug","draftsEnabled","localeCodesFromParams","localeCodes","JSON","parse","versionFromIDFromParams","versionFrom","modifiedOnly","docPermissions","collections","globals","versionTo","depth","locale","overrideAccess","previousVersionResult","versionFromResult","currentlyPublishedVersion","latestDraftVersion","previousPublishedVersionResult","Promise","all","draft","limit","parentID","sort","where","and","updatedAt","less_than","resolve","status","equals","previousVersion","docs","previousPublishedVersion","selectedLocales","locales","code","find","push","filterAvailableLocales","map","schemaMap","clientSchemaMap","importMap","RenderedDiff","customDiffComponents","entitySlug","fields","fieldsPermissions","parentIndexPath","parentIsLocalized","parentPath","parentSchemaPath","versionFromSiblingData","version","versionToSiblingData","versionToCreatedAtFormatted","date","Date","pattern","admin","dateFormat","formatPill","doc","labelOverride","labelStyle","labelSuffix","_jsx","labelFirst","versionFromOptions","t","value","publishedNewerThanDraft","some","option","a","b","getTime","versionToIsVersionFrom","versionFromComparisonOptions","isVersionTo","alreadyAdded","existingOption","otherOptionsWithSameID","filter","_jsxs","optionWithSameID","index","label","Fragment","undefined","canUpdate","update","versionFromCreatedAt","createdAt","versionFromID","versionToCreatedAt","VersionToCreatedAtLabel","versionToStatus","_status"],"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n DocumentViewServerProps,\n Locale,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n TypeWithVersion,\n} from 'payload'\n\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { getClientConfig } from '@payloadcms/ui/utilities/getClientConfig'\nimport { getClientSchemaMap } from '@payloadcms/ui/utilities/getClientSchemaMap'\nimport { getSchemaMap } from '@payloadcms/ui/utilities/getSchemaMap'\nimport { notFound } from 'next/navigation.js'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { CompareOption } from './Default/types.js'\n\nimport { DefaultVersionView } from './Default/index.js'\nimport { fetchLatestVersion, fetchVersion, fetchVersions } from './fetchVersions.js'\nimport { RenderDiff } from './RenderFieldsToDiff/index.js'\nimport { getVersionLabel } from './VersionPillLabel/getVersionLabel.js'\nimport { VersionPillLabel } from './VersionPillLabel/VersionPillLabel.js'\n\nexport async function VersionView(props: DocumentViewServerProps) {\n const { hasPublishedDoc, i18n, initPageResult, routeSegments, searchParams } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config, config: { localization } } = {}, user } = {},\n } = initPageResult\n\n const versionToID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig)\n\n const localeCodesFromParams = searchParams.localeCodes\n ? JSON.parse(searchParams.localeCodes as string)\n : null\n\n const versionFromIDFromParams = searchParams.versionFrom as string\n\n const modifiedOnly: boolean = searchParams.modifiedOnly === 'false' ? false : true\n\n const docPermissions: SanitizedCollectionPermission | SanitizedGlobalPermission = collectionSlug\n ? permissions.collections[collectionSlug]\n : permissions.globals[globalSlug]\n\n const versionTo = await fetchVersion<{\n _status?: string\n }>({\n id: versionToID,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n\n if (!versionTo) {\n return notFound()\n }\n\n const [\n previousVersionResult,\n versionFromResult,\n currentlyPublishedVersion,\n latestDraftVersion,\n previousPublishedVersionResult,\n ] = await Promise.all([\n // Previous version (the one before the versionTo)\n fetchVersions({\n collectionSlug,\n // If versionFromIDFromParams is provided, the previous version is only used in the version comparison dropdown => depth 0 is enough.\n // If it's not provided, this is used as `versionFrom` in the comparison, which expects populated data => depth 1 is needed.\n depth: versionFromIDFromParams ? 0 : 1,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n ],\n },\n }),\n // Version from ID from params\n (versionFromIDFromParams\n ? fetchVersion({\n id: versionFromIDFromParams,\n collectionSlug,\n depth: 1,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n req,\n user,\n })\n : Promise.resolve(null)) as Promise<null | TypeWithVersion<object>>,\n // Currently published version - do note: currently published != latest published, as an unpublished version can be the latest published\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n // Latest draft version\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n // Previous published version\n // Only query for published versions if drafts are enabled (since _status field only exists with drafts)\n draftsEnabled\n ? fetchVersions({\n collectionSlug,\n depth: 0,\n draft: true,\n globalSlug,\n limit: 1,\n locale: 'all',\n overrideAccess: false,\n parentID: id,\n req,\n sort: '-updatedAt',\n user,\n where: {\n and: [\n {\n updatedAt: {\n less_than: versionTo.updatedAt,\n },\n },\n {\n 'version._status': {\n equals: 'published',\n },\n },\n ],\n },\n })\n : Promise.resolve(null),\n ])\n\n const previousVersion: null | TypeWithVersion<object> = previousVersionResult?.docs?.[0] ?? null\n\n const versionFrom =\n versionFromResult ||\n // By default, we'll compare the previous version. => versionFrom = version previous to versionTo\n previousVersion\n\n // Previous published version before the versionTo\n const previousPublishedVersion = previousPublishedVersionResult?.docs?.[0] ?? null\n\n let selectedLocales: string[] = []\n if (localization) {\n let locales: Locale[] = []\n if (localeCodesFromParams) {\n for (const code of localeCodesFromParams) {\n const locale = localization.locales.find((locale) => locale.code === code)\n if (!locale) {\n continue\n }\n locales.push(locale)\n }\n } else {\n locales = localization.locales\n }\n\n if (localization.filterAvailableLocales) {\n locales = (await localization.filterAvailableLocales({ locales, req })) || []\n }\n\n selectedLocales = locales.map((locale) => locale.code)\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config: payload.config,\n i18n,\n importMap: payload.importMap,\n user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n const RenderedDiff = RenderDiff({\n clientSchemaMap,\n customDiffComponents: {},\n entitySlug: collectionSlug || globalSlug,\n fields: (collectionConfig || globalConfig)?.fields,\n fieldsPermissions: docPermissions?.fields,\n i18n,\n modifiedOnly,\n parentIndexPath: '',\n parentIsLocalized: false,\n parentPath: '',\n parentSchemaPath: '',\n req,\n selectedLocales,\n versionFromSiblingData: {\n ...versionFrom?.version,\n updatedAt: versionFrom?.updatedAt,\n },\n versionToSiblingData: {\n ...versionTo.version,\n updatedAt: versionTo.updatedAt,\n },\n })\n\n const versionToCreatedAtFormatted = versionTo.updatedAt\n ? formatDate({\n date:\n typeof versionTo.updatedAt === 'string'\n ? new Date(versionTo.updatedAt)\n : (versionTo.updatedAt as Date),\n i18n,\n pattern: config.admin.dateFormat,\n })\n : ''\n\n const formatPill = ({\n doc,\n labelOverride,\n labelStyle,\n labelSuffix,\n }: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n labelStyle?: 'pill' | 'text'\n labelSuffix?: React.ReactNode\n }): React.ReactNode => {\n return (\n <VersionPillLabel\n currentlyPublishedVersion={currentlyPublishedVersion}\n doc={doc}\n key={doc.id}\n labelFirst={true}\n labelOverride={labelOverride}\n labelStyle={labelStyle ?? 'text'}\n labelSuffix={labelSuffix}\n latestDraftVersion={latestDraftVersion}\n />\n )\n }\n\n // SelectComparison Options:\n //\n // Previous version: always, unless doesn't exist. Can be the same as previously published\n // Latest draft: only if no newer published exists (latestDraftVersion)\n // Currently published: always, if exists\n // Previously published: if there is a prior published version older than versionTo\n // Specific Version: only if not already present under other label (= versionFrom)\n\n let versionFromOptions: {\n doc: TypeWithVersion<any>\n labelOverride?: string\n updatedAt: Date\n value: string\n }[] = []\n\n // Previous version\n if (previousVersion?.id) {\n versionFromOptions.push({\n doc: previousVersion,\n labelOverride: i18n.t('version:previousVersion'),\n updatedAt: new Date(previousVersion.updatedAt),\n value: previousVersion.id,\n })\n }\n\n // Latest Draft\n const publishedNewerThanDraft =\n currentlyPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n if (latestDraftVersion && !publishedNewerThanDraft) {\n versionFromOptions.push({\n doc: latestDraftVersion,\n updatedAt: new Date(latestDraftVersion.updatedAt),\n value: latestDraftVersion.id,\n })\n }\n\n // Currently Published\n if (currentlyPublishedVersion) {\n versionFromOptions.push({\n doc: currentlyPublishedVersion,\n updatedAt: new Date(currentlyPublishedVersion.updatedAt),\n value: currentlyPublishedVersion.id,\n })\n }\n\n // Previous Published\n if (previousPublishedVersion && currentlyPublishedVersion?.id !== previousPublishedVersion.id) {\n versionFromOptions.push({\n doc: previousPublishedVersion,\n labelOverride: i18n.t('version:previouslyPublished'),\n updatedAt: new Date(previousPublishedVersion.updatedAt),\n value: previousPublishedVersion.id,\n })\n }\n\n // Specific Version\n if (versionFrom?.id && !versionFromOptions.some((option) => option.value === versionFrom.id)) {\n // Only add \"specific version\" if it is not already in the options\n versionFromOptions.push({\n doc: versionFrom,\n labelOverride: i18n.t('version:specificVersion'),\n updatedAt: new Date(versionFrom.updatedAt),\n value: versionFrom.id,\n })\n }\n\n versionFromOptions = versionFromOptions.sort((a, b) => {\n // Sort by updatedAt, newest first\n if (a && b) {\n return b.updatedAt.getTime() - a.updatedAt.getTime()\n }\n return 0\n })\n\n const versionToIsVersionFrom = versionFrom?.id === versionTo.id\n\n const versionFromComparisonOptions: CompareOption[] = []\n\n for (const option of versionFromOptions) {\n const isVersionTo = option.value === versionTo.id\n\n if (isVersionTo && !versionToIsVersionFrom) {\n // Don't offer selecting a versionFrom that is the same as versionTo, unless it's already selected\n continue\n }\n\n const alreadyAdded = versionFromComparisonOptions.some(\n (existingOption) => existingOption.value === option.value,\n )\n if (alreadyAdded) {\n continue\n }\n\n const otherOptionsWithSameID = versionFromOptions.filter(\n (existingOption) => existingOption.value === option.value && existingOption !== option,\n )\n\n // Merge options with same ID to the same option\n const labelSuffix = otherOptionsWithSameID?.length ? (\n <span key={`${option.value}-suffix`}>\n {' ('}\n {otherOptionsWithSameID.map((optionWithSameID, index) => {\n const label =\n optionWithSameID.labelOverride ||\n getVersionLabel({\n currentlyPublishedVersion,\n latestDraftVersion,\n t: i18n.t,\n version: optionWithSameID.doc,\n }).label\n\n return (\n <React.Fragment key={`${optionWithSameID.value}-${index}`}>\n {index > 0 ? ', ' : ''}\n {label}\n </React.Fragment>\n )\n })}\n {')'}\n </span>\n ) : undefined\n\n versionFromComparisonOptions.push({\n label: formatPill({\n doc: option.doc,\n labelOverride: option.labelOverride,\n labelSuffix,\n }),\n value: option.value,\n })\n }\n\n return (\n <DefaultVersionView\n canUpdate={docPermissions?.update}\n modifiedOnly={modifiedOnly}\n RenderedDiff={RenderedDiff}\n selectedLocales={selectedLocales}\n versionFromCreatedAt={versionFrom?.createdAt}\n versionFromID={versionFrom?.id}\n versionFromOptions={versionFromComparisonOptions}\n versionToCreatedAt={versionTo.createdAt}\n versionToCreatedAtFormatted={versionToCreatedAtFormatted}\n VersionToCreatedAtLabel={formatPill({ doc: versionTo, labelStyle: 'pill' })}\n versionToID={versionTo.id}\n versionToStatus={versionTo.version?._status}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildColumns.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/buildColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,yBAAyB,
|
|
1
|
+
{"version":3,"file":"buildColumns.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/buildColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EAChB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAGnF,eAAO,MAAM,mBAAmB,mJAU7B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAA;IAC/D,yBAAyB,CAAC,EAAE;QAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACjD,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE;QACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF,KAAG,MAAM,EAmET,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { SortColumn } from '@payloadcms/ui';
|
|
3
|
+
import { hasDraftsEnabled } from 'payload/shared';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { AutosaveCell } from './cells/AutosaveCell/index.js';
|
|
5
6
|
import { CreatedAtCell } from './cells/CreatedAt/index.js';
|
|
@@ -60,7 +61,7 @@ export const buildVersionColumns = ({
|
|
|
60
61
|
}, i);
|
|
61
62
|
})
|
|
62
63
|
}];
|
|
63
|
-
if (entityConfig
|
|
64
|
+
if (hasDraftsEnabled(entityConfig)) {
|
|
64
65
|
columns.push({
|
|
65
66
|
accessor: '_status',
|
|
66
67
|
active: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildColumns.js","names":["SortColumn","React","AutosaveCell","CreatedAtCell","IDCell","buildVersionColumns","collectionConfig","CreatedAtCellOverride","currentlyPublishedVersion","docID","docs","globalConfig","i18n","t","isTrashed","latestDraftVersion","entityConfig","CreatedAtCellComponent","columns","accessor","active","field","name","type","Heading","_jsx","Label","renderedCells","map","doc","i","collectionSlug","slug","globalSlug","rowData","id","updatedAt","disable","
|
|
1
|
+
{"version":3,"file":"buildColumns.js","names":["SortColumn","hasDraftsEnabled","React","AutosaveCell","CreatedAtCell","IDCell","buildVersionColumns","collectionConfig","CreatedAtCellOverride","currentlyPublishedVersion","docID","docs","globalConfig","i18n","t","isTrashed","latestDraftVersion","entityConfig","CreatedAtCellComponent","columns","accessor","active","field","name","type","Heading","_jsx","Label","renderedCells","map","doc","i","collectionSlug","slug","globalSlug","rowData","id","updatedAt","disable","push"],"sources":["../../../src/views/Versions/buildColumns.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n Column,\n PaginatedDocs,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n TypeWithVersion,\n} from 'payload'\n\nimport { SortColumn } from '@payloadcms/ui'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport React from 'react'\n\nimport { AutosaveCell } from './cells/AutosaveCell/index.js'\nimport { CreatedAtCell, type CreatedAtCellProps } from './cells/CreatedAt/index.js'\nimport { IDCell } from './cells/ID/index.js'\n\nexport const buildVersionColumns = ({\n collectionConfig,\n CreatedAtCellOverride,\n currentlyPublishedVersion,\n docID,\n docs,\n globalConfig,\n i18n: { t },\n isTrashed,\n latestDraftVersion,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n CreatedAtCellOverride?: React.ComponentType<CreatedAtCellProps>\n currentlyPublishedVersion?: {\n id: number | string\n updatedAt: string\n }\n docID?: number | string\n docs: PaginatedDocs<TypeWithVersion<any>>['docs']\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n isTrashed?: boolean\n latestDraftVersion?: {\n id: number | string\n updatedAt: string\n }\n}): Column[] => {\n const entityConfig = collectionConfig || globalConfig\n\n const CreatedAtCellComponent = CreatedAtCellOverride ?? CreatedAtCell\n\n const columns: Column[] = [\n {\n accessor: 'updatedAt',\n active: true,\n field: {\n name: '',\n type: 'date',\n },\n Heading: <SortColumn Label={t('general:updatedAt')} name=\"updatedAt\" />,\n renderedCells: docs.map((doc, i) => {\n return (\n <CreatedAtCellComponent\n collectionSlug={collectionConfig?.slug}\n docID={docID}\n globalSlug={globalConfig?.slug}\n isTrashed={isTrashed}\n key={i}\n rowData={{\n id: doc.id,\n updatedAt: doc.updatedAt,\n }}\n />\n )\n }),\n },\n {\n accessor: 'id',\n active: true,\n field: {\n name: '',\n type: 'text',\n },\n Heading: <SortColumn disable Label={t('version:versionID')} name=\"id\" />,\n renderedCells: docs.map((doc, i) => {\n return <IDCell id={doc.id} key={i} />\n }),\n },\n ]\n\n if (hasDraftsEnabled(entityConfig)) {\n columns.push({\n accessor: '_status',\n active: true,\n field: {\n name: '',\n type: 'checkbox',\n },\n Heading: <SortColumn disable Label={t('version:status')} name=\"status\" />,\n renderedCells: docs.map((doc, i) => {\n return (\n <AutosaveCell\n currentlyPublishedVersion={currentlyPublishedVersion}\n key={i}\n latestDraftVersion={latestDraftVersion}\n rowData={doc}\n />\n )\n }),\n })\n }\n\n return columns\n}\n"],"mappings":";AASA,SAASA,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAC7B,SAASC,aAAa,QAAiC;AACvD,SAASC,MAAM,QAAQ;AAEvB,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,gBAAgB;EAChBC,qBAAqB;EACrBC,yBAAyB;EACzBC,KAAK;EACLC,IAAI;EACJC,YAAY;EACZC,IAAA,EAAM;IAAEC;EAAC,CAAE;EACXC,SAAS;EACTC;AAAkB,CAiBnB;EACC,MAAMC,YAAA,GAAeV,gBAAA,IAAoBK,YAAA;EAEzC,MAAMM,sBAAA,GAAyBV,qBAAA,IAAyBJ,aAAA;EAExD,MAAMe,OAAA,GAAoB,CACxB;IACEC,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAAC1B,UAAA;MAAW2B,KAAA,EAAOb,CAAA,CAAE;MAAsBS,IAAA,EAAK;;IACzDK,aAAA,EAAejB,IAAA,CAAKkB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;MAC5B,oBACEL,IAAA,CAACR,sBAAA;QACCc,cAAA,EAAgBzB,gBAAA,EAAkB0B,IAAA;QAClCvB,KAAA,EAAOA,KAAA;QACPwB,UAAA,EAAYtB,YAAA,EAAcqB,IAAA;QAC1BlB,SAAA,EAAWA,SAAA;QAEXoB,OAAA,EAAS;UACPC,EAAA,EAAIN,GAAA,CAAIM,EAAE;UACVC,SAAA,EAAWP,GAAA,CAAIO;QACjB;SAJKN,CAAA;IAOX;EACF,GACA;IACEX,QAAA,EAAU;IACVC,MAAA,EAAQ;IACRC,KAAA,EAAO;MACLC,IAAA,EAAM;MACNC,IAAA,EAAM;IACR;IACAC,OAAA,eAASC,IAAA,CAAC1B,UAAA;MAAWsC,OAAO;MAACX,KAAA,EAAOb,CAAA,CAAE;MAAsBS,IAAA,EAAK;;IACjEK,aAAA,EAAejB,IAAA,CAAKkB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;MAC5B,oBAAOL,IAAA,CAACrB,MAAA;QAAO+B,EAAA,EAAIN,GAAA,CAAIM;SAASL,CAAA;IAClC;EACF,EACD;EAED,IAAI9B,gBAAA,CAAiBgB,YAAA,GAAe;IAClCE,OAAA,CAAQoB,IAAI,CAAC;MACXnB,QAAA,EAAU;MACVC,MAAA,EAAQ;MACRC,KAAA,EAAO;QACLC,IAAA,EAAM;QACNC,IAAA,EAAM;MACR;MACAC,OAAA,eAASC,IAAA,CAAC1B,UAAA;QAAWsC,OAAO;QAACX,KAAA,EAAOb,CAAA,CAAE;QAAmBS,IAAA,EAAK;;MAC9DK,aAAA,EAAejB,IAAA,CAAKkB,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;QAC5B,oBACEL,IAAA,CAACvB,YAAA;UACCM,yBAAA,EAA2BA,yBAAA;UAE3BO,kBAAA,EAAoBA,kBAAA;UACpBmB,OAAA,EAASL;WAFJC,CAAA;MAKX;IACF;EACF;EAEA,OAAOZ,OAAA;AACT","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Gutter, ListQueryProvider, SetDocumentStepNav } from '@payloadcms/ui';
|
|
3
3
|
import { notFound } from 'next/navigation.js';
|
|
4
|
-
import { isNumber } from 'payload/shared';
|
|
4
|
+
import { hasDraftsEnabled, isNumber } from 'payload/shared';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { fetchLatestVersion, fetchVersions } from '../Version/fetchVersions.js';
|
|
7
7
|
import { VersionDrawerCreatedAtCell } from '../Version/SelectComparison/VersionDrawer/CreatedAtCell.js';
|
|
@@ -36,7 +36,7 @@ export async function VersionsView(props) {
|
|
|
36
36
|
useVersionDrawerCreatedAtCell = false
|
|
37
37
|
} = {}
|
|
38
38
|
} = props;
|
|
39
|
-
const draftsEnabled = (collectionConfig
|
|
39
|
+
const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig);
|
|
40
40
|
const collectionSlug = collectionConfig?.slug;
|
|
41
41
|
const globalSlug = globalConfig?.slug;
|
|
42
42
|
const isTrashed = segments[2] === 'trash';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Gutter","ListQueryProvider","SetDocumentStepNav","notFound","isNumber","React","fetchLatestVersion","fetchVersions","VersionDrawerCreatedAtCell","buildVersionColumns","VersionsViewClient","baseClass","VersionsView","props","hasPublishedDoc","initPageResult","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","t","user","routeSegments","segments","searchParams","limit","page","sort","versions","disableGutter","useVersionDrawerCreatedAtCell","draftsEnabled","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Gutter","ListQueryProvider","SetDocumentStepNav","notFound","hasDraftsEnabled","isNumber","React","fetchLatestVersion","fetchVersions","VersionDrawerCreatedAtCell","buildVersionColumns","VersionsViewClient","baseClass","VersionsView","props","hasPublishedDoc","initPageResult","collectionConfig","docID","id","globalConfig","req","i18n","payload","config","t","user","routeSegments","segments","searchParams","limit","page","sort","versions","disableGutter","useVersionDrawerCreatedAtCell","draftsEnabled","collectionSlug","slug","globalSlug","isTrashed","localization","routes","api","apiRoute","serverURL","whereQuery","and","push","snapshot","not_equals","defaultLimit","admin","pagination","limitToUse","Number","versionsData","depth","overrideAccess","parseInt","toString","undefined","parentID","where","currentlyPublishedVersion","latestDraftVersion","Promise","all","select","updatedAt","status","resolve","fetchURL","columns","CreatedAtCellOverride","docs","pluralLabel","labels","plural","label","GutterComponent","Fragment","_jsxs","_jsx","useAsTitle","view","className","data","modifySearchParams","orderableFieldName","orderable","query","paginationLimits","limits"],"sources":["../../../src/views/Versions/index.tsx"],"sourcesContent":["import { Gutter, ListQueryProvider, SetDocumentStepNav } from '@payloadcms/ui'\nimport { notFound } from 'next/navigation.js'\nimport { type DocumentViewServerProps, type PaginatedDocs, type Where } from 'payload'\nimport { hasDraftsEnabled, isNumber } from 'payload/shared'\nimport React from 'react'\n\nimport { fetchLatestVersion, fetchVersions } from '../Version/fetchVersions.js'\nimport { VersionDrawerCreatedAtCell } from '../Version/SelectComparison/VersionDrawer/CreatedAtCell.js'\nimport { buildVersionColumns } from './buildColumns.js'\nimport { VersionsViewClient } from './index.client.js'\nimport './index.scss'\n\nconst baseClass = 'versions'\n\nexport async function VersionsView(props: DocumentViewServerProps) {\n const {\n hasPublishedDoc,\n initPageResult: {\n collectionConfig,\n docID: id,\n globalConfig,\n req,\n req: {\n i18n,\n payload: { config },\n t,\n user,\n },\n },\n routeSegments: segments,\n searchParams: { limit, page, sort },\n versions: { disableGutter = false, useVersionDrawerCreatedAtCell = false } = {},\n } = props\n\n const draftsEnabled = hasDraftsEnabled(collectionConfig || globalConfig)\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const isTrashed = segments[2] === 'trash'\n\n const {\n localization,\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const whereQuery: {\n and: Array<{ parent?: { equals: number | string }; snapshot?: { not_equals: boolean } }>\n } & Where = {\n and: [],\n }\n if (localization && draftsEnabled) {\n whereQuery.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const defaultLimit = collectionSlug ? collectionConfig?.admin?.pagination?.defaultLimit : 10\n\n const limitToUse = isNumber(limit) ? Number(limit) : defaultLimit\n\n const versionsData: PaginatedDocs = await fetchVersions({\n collectionSlug,\n depth: 0,\n globalSlug,\n limit: limitToUse,\n overrideAccess: false,\n page: page ? parseInt(page.toString(), 10) : undefined,\n parentID: id,\n req,\n sort: sort as string,\n user,\n where: whereQuery,\n })\n\n if (!versionsData) {\n return notFound()\n }\n\n const [currentlyPublishedVersion, latestDraftVersion] = await Promise.all([\n hasPublishedDoc\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n overrideAccess: false,\n parentID: id,\n req,\n select: {\n id: true,\n updatedAt: true,\n },\n status: 'published',\n user,\n })\n : Promise.resolve(null),\n draftsEnabled\n ? fetchLatestVersion({\n collectionSlug,\n depth: 0,\n globalSlug,\n overrideAccess: false,\n parentID: id,\n req,\n select: {\n id: true,\n updatedAt: true,\n },\n status: 'draft',\n user,\n })\n : Promise.resolve(null),\n ])\n\n const fetchURL = collectionSlug\n ? `${serverURL}${apiRoute}/${collectionSlug}/versions`\n : `${serverURL}${apiRoute}/globals/${globalSlug}/versions`\n\n const columns = buildVersionColumns({\n collectionConfig,\n CreatedAtCellOverride: useVersionDrawerCreatedAtCell ? VersionDrawerCreatedAtCell : undefined,\n currentlyPublishedVersion,\n docID: id,\n docs: versionsData?.docs,\n globalConfig,\n i18n,\n isTrashed,\n latestDraftVersion,\n })\n\n const pluralLabel =\n typeof collectionConfig?.labels?.plural === 'function'\n ? collectionConfig.labels.plural({ i18n, t })\n : (collectionConfig?.labels?.plural ?? globalConfig?.label)\n\n const GutterComponent = disableGutter ? React.Fragment : Gutter\n\n return (\n <React.Fragment>\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={pluralLabel}\n useAsTitle={collectionConfig?.admin?.useAsTitle || globalSlug}\n view={i18n.t('version:versions')}\n />\n <main className={baseClass}>\n <GutterComponent className={`${baseClass}__wrap`}>\n <ListQueryProvider\n data={versionsData}\n modifySearchParams\n orderableFieldName={collectionConfig?.orderable === true ? '_order' : undefined}\n query={{\n limit: limitToUse,\n sort: sort as string,\n }}\n >\n <VersionsViewClient\n baseClass={baseClass}\n columns={columns}\n fetchURL={fetchURL}\n paginationLimits={collectionConfig?.admin?.pagination?.limits}\n />\n </ListQueryProvider>\n </GutterComponent>\n </main>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/next",
|
|
3
|
-
"version": "3.67.0-
|
|
3
|
+
"version": "3.67.0-internal.1ea538b",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -97,9 +97,9 @@
|
|
|
97
97
|
"qs-esm": "7.0.2",
|
|
98
98
|
"sass": "1.77.4",
|
|
99
99
|
"uuid": "10.0.0",
|
|
100
|
-
"@payloadcms/graphql": "3.67.0-
|
|
101
|
-
"@payloadcms/translations": "3.67.0-
|
|
102
|
-
"@payloadcms/ui": "3.67.0-
|
|
100
|
+
"@payloadcms/graphql": "3.67.0-internal.1ea538b",
|
|
101
|
+
"@payloadcms/translations": "3.67.0-internal.1ea538b",
|
|
102
|
+
"@payloadcms/ui": "3.67.0-internal.1ea538b"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
105
|
"@babel/cli": "7.27.2",
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
"esbuild-sass-plugin": "3.3.1",
|
|
118
118
|
"swc-plugin-transform-remove-imports": "4.0.4",
|
|
119
119
|
"@payloadcms/eslint-config": "3.28.0",
|
|
120
|
-
"payload": "3.67.0-
|
|
120
|
+
"payload": "3.67.0-internal.1ea538b"
|
|
121
121
|
},
|
|
122
122
|
"peerDependencies": {
|
|
123
123
|
"graphql": "^16.8.1",
|
|
124
124
|
"next": "^15.4.8",
|
|
125
|
-
"payload": "3.67.0-
|
|
125
|
+
"payload": "3.67.0-internal.1ea538b"
|
|
126
126
|
},
|
|
127
127
|
"engines": {
|
|
128
128
|
"node": "^18.20.2 || >=20.9.0"
|