@payloadcms/next 3.0.2-canary.f4f29e6 → 3.0.3-canary.27acdae
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/cjs/withPayload.cjs +2 -1
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/layouts/Root/NestProviders.d.ts +3 -2
- package/dist/layouts/Root/NestProviders.d.ts.map +1 -1
- package/dist/layouts/Root/NestProviders.js +5 -2
- package/dist/layouts/Root/NestProviders.js.map +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +7 -0
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/utilities/initPage/handleAdminPage.js +2 -2
- package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
- package/dist/views/Document/getDocPreferences.d.ts.map +1 -1
- package/dist/views/Document/getDocPreferences.js +2 -1
- package/dist/views/Document/getDocPreferences.js.map +1 -1
- package/dist/views/Document/getDocumentData.d.ts +1 -1
- package/dist/views/Document/getDocumentData.d.ts.map +1 -1
- package/dist/views/Document/getDocumentData.js +3 -1
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +5 -14
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Document/getIsLocked.d.ts.map +1 -1
- package/dist/views/Document/getIsLocked.js +2 -1
- package/dist/views/Document/getIsLocked.js.map +1 -1
- package/dist/views/Document/getVersions.d.ts +1 -1
- package/dist/views/Document/getVersions.d.ts.map +1 -1
- package/dist/views/Document/getVersions.js +3 -1
- 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 +28 -19
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Root/getViewFromConfig.d.ts +12 -5
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +20 -23
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +2 -3
- package/dist/views/Root/index.js.map +1 -1
- package/dist/withPayload.js +2 -1
- package/dist/withPayload.js.map +1 -1
- package/package.json +7 -7
|
@@ -28,9 +28,9 @@ export function getRouteInfo({
|
|
|
28
28
|
if (globalSlug) {
|
|
29
29
|
globalConfig = config.globals.find(global => global.slug === globalSlug);
|
|
30
30
|
}
|
|
31
|
-
// If the collection
|
|
31
|
+
// If the collection is using a custom ID, we need to determine it's type
|
|
32
32
|
if (collectionConfig && payload) {
|
|
33
|
-
if (payload.collections?.[collectionSlug]) {
|
|
33
|
+
if (payload.collections?.[collectionSlug]?.customIDType) {
|
|
34
34
|
idType = payload.collections?.[collectionSlug].customIDType;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAdminPage.js","names":["getRouteWithoutAdmin","isAdminRoute","getRouteInfo","adminRoute","config","defaultIDType","payload","route","routeWithoutAdmin","routeSegments","split","filter","Boolean","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","collectionConfig","globalConfig","idType","collections","find","collection","slug","globals","global","customIDType","docID","Number"],"sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nimport { getRouteWithoutAdmin, isAdminRoute } from './shared.js'\n\ntype Args = {\n adminRoute: string\n config: SanitizedConfig\n defaultIDType: Payload['db']['defaultIDType']\n payload?: Payload\n route: string\n}\n\ntype RouteInfo = {\n collectionConfig?: SanitizedCollectionConfig\n collectionSlug?: string\n docID?: number | string\n globalConfig?: SanitizedGlobalConfig\n globalSlug?: string\n}\n\nexport function getRouteInfo({\n adminRoute,\n config,\n defaultIDType,\n payload,\n route,\n}: Args): RouteInfo {\n if (isAdminRoute({ adminRoute, config, route })) {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n const routeSegments = routeWithoutAdmin.split('/').filter(Boolean)\n const [entityType, entitySlug, createOrID] = routeSegments\n const collectionSlug = entityType === 'collections' ? entitySlug : undefined\n const globalSlug = entityType === 'globals' ? entitySlug : undefined\n\n let collectionConfig: SanitizedCollectionConfig | undefined\n let globalConfig: SanitizedGlobalConfig | undefined\n let idType = defaultIDType\n\n if (collectionSlug) {\n collectionConfig = config.collections.find((collection) => collection.slug === collectionSlug)\n }\n\n if (globalSlug) {\n globalConfig = config.globals.find((global) => global.slug === globalSlug)\n }\n\n // If the collection
|
|
1
|
+
{"version":3,"file":"handleAdminPage.js","names":["getRouteWithoutAdmin","isAdminRoute","getRouteInfo","adminRoute","config","defaultIDType","payload","route","routeWithoutAdmin","routeSegments","split","filter","Boolean","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","collectionConfig","globalConfig","idType","collections","find","collection","slug","globals","global","customIDType","docID","Number"],"sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nimport { getRouteWithoutAdmin, isAdminRoute } from './shared.js'\n\ntype Args = {\n adminRoute: string\n config: SanitizedConfig\n defaultIDType: Payload['db']['defaultIDType']\n payload?: Payload\n route: string\n}\n\ntype RouteInfo = {\n collectionConfig?: SanitizedCollectionConfig\n collectionSlug?: string\n docID?: number | string\n globalConfig?: SanitizedGlobalConfig\n globalSlug?: string\n}\n\nexport function getRouteInfo({\n adminRoute,\n config,\n defaultIDType,\n payload,\n route,\n}: Args): RouteInfo {\n if (isAdminRoute({ adminRoute, config, route })) {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n const routeSegments = routeWithoutAdmin.split('/').filter(Boolean)\n const [entityType, entitySlug, createOrID] = routeSegments\n const collectionSlug = entityType === 'collections' ? entitySlug : undefined\n const globalSlug = entityType === 'globals' ? entitySlug : undefined\n\n let collectionConfig: SanitizedCollectionConfig | undefined\n let globalConfig: SanitizedGlobalConfig | undefined\n let idType = defaultIDType\n\n if (collectionSlug) {\n collectionConfig = config.collections.find((collection) => collection.slug === collectionSlug)\n }\n\n if (globalSlug) {\n globalConfig = config.globals.find((global) => global.slug === globalSlug)\n }\n\n // If the collection is using a custom ID, we need to determine it's type\n if (collectionConfig && payload) {\n if (payload.collections?.[collectionSlug]?.customIDType) {\n idType = payload.collections?.[collectionSlug].customIDType\n }\n }\n\n const docID =\n collectionSlug && createOrID !== 'create'\n ? idType === 'number'\n ? Number(createOrID)\n : createOrID\n : undefined\n\n return {\n collectionConfig,\n collectionSlug,\n docID,\n globalConfig,\n globalSlug,\n }\n }\n\n return {}\n}\n"],"mappings":"AASA,SAASA,oBAAoB,EAAEC,YAAY,QAAQ;AAkBnD,OAAO,SAASC,aAAa;EAC3BC,UAAU;EACVC,MAAM;EACNC,aAAa;EACbC,OAAO;EACPC;AAAK,CACA;EACL,IAAIN,YAAA,CAAa;IAAEE,UAAA;IAAYC,MAAA;IAAQG;EAAM,IAAI;IAC/C,MAAMC,iBAAA,GAAoBR,oBAAA,CAAqB;MAAEG,UAAA;MAAYI;IAAM;IACnE,MAAME,aAAA,GAAgBD,iBAAA,CAAkBE,KAAK,CAAC,KAAKC,MAAM,CAACC,OAAA;IAC1D,MAAM,CAACC,UAAA,EAAYC,UAAA,EAAYC,UAAA,CAAW,GAAGN,aAAA;IAC7C,MAAMO,cAAA,GAAiBH,UAAA,KAAe,gBAAgBC,UAAA,GAAaG,SAAA;IACnE,MAAMC,UAAA,GAAaL,UAAA,KAAe,YAAYC,UAAA,GAAaG,SAAA;IAE3D,IAAIE,gBAAA;IACJ,IAAIC,YAAA;IACJ,IAAIC,MAAA,GAAShB,aAAA;IAEb,IAAIW,cAAA,EAAgB;MAClBG,gBAAA,GAAmBf,MAAA,CAAOkB,WAAW,CAACC,IAAI,CAAEC,UAAA,IAAeA,UAAA,CAAWC,IAAI,KAAKT,cAAA;IACjF;IAEA,IAAIE,UAAA,EAAY;MACdE,YAAA,GAAehB,MAAA,CAAOsB,OAAO,CAACH,IAAI,CAAEI,MAAA,IAAWA,MAAA,CAAOF,IAAI,KAAKP,UAAA;IACjE;IAEA;IACA,IAAIC,gBAAA,IAAoBb,OAAA,EAAS;MAC/B,IAAIA,OAAA,CAAQgB,WAAW,GAAGN,cAAA,CAAe,EAAEY,YAAA,EAAc;QACvDP,MAAA,GAASf,OAAA,CAAQgB,WAAW,GAAGN,cAAA,CAAe,CAACY,YAAA;MACjD;IACF;IAEA,MAAMC,KAAA,GACJb,cAAA,IAAkBD,UAAA,KAAe,WAC7BM,MAAA,KAAW,WACTS,MAAA,CAAOf,UAAA,IACPA,UAAA,GACFE,SAAA;IAEN,OAAO;MACLE,gBAAA;MACAH,cAAA;MACAa,KAAA;MACAT,YAAA;MACAF;IACF;EACF;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocPreferences.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getDocPreferences.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAItE,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,iBAAiB,uDAM3B,IAAI,KAAG,OAAO,CAAC,mBAAmB,CA2CpC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sanitizeID } from '@payloadcms/ui/shared';
|
|
1
2
|
export const getDocPreferences = async ({
|
|
2
3
|
id,
|
|
3
4
|
collectionSlug,
|
|
@@ -28,7 +29,7 @@ export const getDocPreferences = async ({
|
|
|
28
29
|
}
|
|
29
30
|
}, {
|
|
30
31
|
'user.value': {
|
|
31
|
-
equals: user.id
|
|
32
|
+
equals: sanitizeID(user.id)
|
|
32
33
|
}
|
|
33
34
|
}]
|
|
34
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocPreferences.js","names":["getDocPreferences","id","collectionSlug","globalSlug","payload","user","preferencesKey","preferencesResult","find","collection","depth","limit","where","and","key","equals","docs","value","fields"],"sources":["../../../src/views/Document/getDocPreferences.ts"],"sourcesContent":["import type { DocumentPreferences, Payload, TypedUser } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n payload: Payload\n user: TypedUser\n}\n\nexport const getDocPreferences = async ({\n id,\n collectionSlug,\n globalSlug,\n payload,\n user,\n}: Args): Promise<DocumentPreferences> => {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const preferencesResult = (await payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) {\n return preferencesResult.docs[0].value\n }\n }\n\n return { fields: {} }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDocPreferences.js","names":["sanitizeID","getDocPreferences","id","collectionSlug","globalSlug","payload","user","preferencesKey","preferencesResult","find","collection","depth","limit","where","and","key","equals","docs","value","fields"],"sources":["../../../src/views/Document/getDocPreferences.ts"],"sourcesContent":["import type { DocumentPreferences, Payload, TypedUser } from 'payload'\n\nimport { sanitizeID } from '@payloadcms/ui/shared'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n payload: Payload\n user: TypedUser\n}\n\nexport const getDocPreferences = async ({\n id,\n collectionSlug,\n globalSlug,\n payload,\n user,\n}: Args): Promise<DocumentPreferences> => {\n let preferencesKey\n\n if (collectionSlug && id) {\n preferencesKey = `collection-${collectionSlug}-${id}`\n }\n\n if (globalSlug) {\n preferencesKey = `global-${globalSlug}`\n }\n\n if (preferencesKey) {\n const preferencesResult = (await payload.find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: sanitizeID(user.id),\n },\n },\n ],\n },\n })) as unknown as { docs: { value: DocumentPreferences }[] }\n\n if (preferencesResult?.docs?.[0]?.value) {\n return preferencesResult.docs[0].value\n }\n }\n\n return { fields: {} }\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ;AAU3B,OAAO,MAAMC,iBAAA,GAAoB,MAAAA,CAAO;EACtCC,EAAE;EACFC,cAAc;EACdC,UAAU;EACVC,OAAO;EACPC;AAAI,CACC;EACL,IAAIC,cAAA;EAEJ,IAAIJ,cAAA,IAAkBD,EAAA,EAAI;IACxBK,cAAA,GAAiB,cAAcJ,cAAA,IAAkBD,EAAA,EAAI;EACvD;EAEA,IAAIE,UAAA,EAAY;IACdG,cAAA,GAAiB,UAAUH,UAAA,EAAY;EACzC;EAEA,IAAIG,cAAA,EAAgB;IAClB,MAAMC,iBAAA,GAAqB,MAAMH,OAAA,CAAQI,IAAI,CAAC;MAC5CC,UAAA,EAAY;MACZC,KAAA,EAAO;MACPC,KAAA,EAAO;MACPC,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,GAAA,EAAK;YACHC,MAAA,EAAQT;UACV;QACF,GACA;UACE,mBAAmB;YACjBS,MAAA,EAAQV,IAAA,CAAKI;UACf;QACF,GACA;UACE,cAAc;YACZM,MAAA,EAAQhB,UAAA,CAAWM,IAAA,CAAKJ,EAAE;UAC5B;QACF;MAEJ;IACF;IAEA,IAAIM,iBAAA,EAAmBS,IAAA,GAAO,EAAE,EAAEC,KAAA,EAAO;MACvC,OAAOV,iBAAA,CAAkBS,IAAI,CAAC,EAAE,CAACC,KAAK;IACxC;EACF;EAEA,OAAO;IAAEC,MAAA,EAAQ,CAAC;EAAE;AACtB","ignoreList":[]}
|
|
@@ -7,6 +7,6 @@ type Args = {
|
|
|
7
7
|
payload: Payload;
|
|
8
8
|
user?: TypedUser;
|
|
9
9
|
};
|
|
10
|
-
export declare const getDocumentData: ({ id, collectionSlug, globalSlug, locale, payload, user, }: Args) => Promise<null | Record<string, unknown> | TypeWithID>;
|
|
10
|
+
export declare const getDocumentData: ({ id: idArg, collectionSlug, globalSlug, locale, payload, user, }: Args) => Promise<null | Record<string, unknown> | TypeWithID>;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=getDocumentData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentData.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getDocumentData.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIrE,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,eAAe,sEAOzB,IAAI,KAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAkC5D,CAAA"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { sanitizeID } from '@payloadcms/ui/shared';
|
|
1
2
|
export const getDocumentData = async ({
|
|
2
|
-
id,
|
|
3
|
+
id: idArg,
|
|
3
4
|
collectionSlug,
|
|
4
5
|
globalSlug,
|
|
5
6
|
locale,
|
|
6
7
|
payload,
|
|
7
8
|
user
|
|
8
9
|
}) => {
|
|
10
|
+
const id = sanitizeID(idArg);
|
|
9
11
|
let resolvedData = null;
|
|
10
12
|
try {
|
|
11
13
|
if (collectionSlug && id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentData.js","names":["getDocumentData","id","collectionSlug","globalSlug","locale","payload","user","resolvedData","findByID","collection","depth","draft","fallbackLocale","code","overrideAccess","findGlobal","slug","_err","logger","error"],"sources":["../../../src/views/Document/getDocumentData.ts"],"sourcesContent":["import type { Locale, Payload, TypedUser, TypeWithID } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n locale?: Locale\n payload: Payload\n user?: TypedUser\n}\n\nexport const getDocumentData = async ({\n id,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n user,\n}: Args): Promise<null | Record<string, unknown> | TypeWithID> => {\n let resolvedData: Record<string, unknown> | TypeWithID = null\n\n try {\n if (collectionSlug && id) {\n resolvedData = await payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n overrideAccess: false,\n user,\n })\n }\n\n if (globalSlug) {\n resolvedData = await payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n overrideAccess: false,\n user,\n })\n }\n } catch (_err) {\n payload.logger.error(_err)\n }\n\n return resolvedData\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDocumentData.js","names":["sanitizeID","getDocumentData","id","idArg","collectionSlug","globalSlug","locale","payload","user","resolvedData","findByID","collection","depth","draft","fallbackLocale","code","overrideAccess","findGlobal","slug","_err","logger","error"],"sources":["../../../src/views/Document/getDocumentData.ts"],"sourcesContent":["import type { Locale, Payload, TypedUser, TypeWithID } from 'payload'\n\nimport { sanitizeID } from '@payloadcms/ui/shared'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n locale?: Locale\n payload: Payload\n user?: TypedUser\n}\n\nexport const getDocumentData = async ({\n id: idArg,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n user,\n}: Args): Promise<null | Record<string, unknown> | TypeWithID> => {\n const id = sanitizeID(idArg)\n let resolvedData: Record<string, unknown> | TypeWithID = null\n\n try {\n if (collectionSlug && id) {\n resolvedData = await payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n overrideAccess: false,\n user,\n })\n }\n\n if (globalSlug) {\n resolvedData = await payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n locale: locale?.code,\n overrideAccess: false,\n user,\n })\n }\n } catch (_err) {\n payload.logger.error(_err)\n }\n\n return resolvedData\n}\n"],"mappings":"AAEA,SAASA,UAAU,QAAQ;AAW3B,OAAO,MAAMC,eAAA,GAAkB,MAAAA,CAAO;EACpCC,EAAA,EAAIC,KAAK;EACTC,cAAc;EACdC,UAAU;EACVC,MAAM;EACNC,OAAO;EACPC;AAAI,CACC;EACL,MAAMN,EAAA,GAAKF,UAAA,CAAWG,KAAA;EACtB,IAAIM,YAAA,GAAqD;EAEzD,IAAI;IACF,IAAIL,cAAA,IAAkBF,EAAA,EAAI;MACxBO,YAAA,GAAe,MAAMF,OAAA,CAAQG,QAAQ,CAAC;QACpCR,EAAA;QACAS,UAAA,EAAYP,cAAA;QACZQ,KAAA,EAAO;QACPC,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChBR,MAAA,EAAQA,MAAA,EAAQS,IAAA;QAChBC,cAAA,EAAgB;QAChBR;MACF;IACF;IAEA,IAAIH,UAAA,EAAY;MACdI,YAAA,GAAe,MAAMF,OAAA,CAAQU,UAAU,CAAC;QACtCC,IAAA,EAAMb,UAAA;QACNO,KAAA,EAAO;QACPC,KAAA,EAAO;QACPC,cAAA,EAAgB;QAChBR,MAAA,EAAQA,MAAA,EAAQS,IAAA;QAChBC,cAAA,EAAgB;QAChBR;MACF;IACF;EACF,EAAE,OAAOW,IAAA,EAAM;IACbZ,OAAA,CAAQa,MAAM,CAACC,KAAK,CAACF,IAAA;EACvB;EAEA,OAAOV,YAAA;AACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentPermissions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getDocumentPermissions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,
|
|
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;AAQhB,eAAO,MAAM,sBAAsB,SAAgB;IACjD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,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,CAqFA,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { hasSavePermission as getHasSavePermission, isEditing as getIsEditing } from '@payloadcms/ui/shared';
|
|
2
|
-
import { docAccessOperation, docAccessOperationGlobal
|
|
2
|
+
import { docAccessOperation, docAccessOperationGlobal } from 'payload';
|
|
3
3
|
export const getDocumentPermissions = async args => {
|
|
4
4
|
const {
|
|
5
5
|
id,
|
|
@@ -38,9 +38,7 @@ export const getDocumentPermissions = async args => {
|
|
|
38
38
|
_status: 'published'
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
}).then(
|
|
42
|
-
update
|
|
43
|
-
}) => update?.permission);
|
|
41
|
+
}).then(permissions => permissions.update);
|
|
44
42
|
}
|
|
45
43
|
} catch (error) {
|
|
46
44
|
req.payload.logger.error(error);
|
|
@@ -65,22 +63,15 @@ export const getDocumentPermissions = async args => {
|
|
|
65
63
|
_status: 'published'
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
|
-
}).then(
|
|
69
|
-
update
|
|
70
|
-
}) => update?.permission);
|
|
66
|
+
}).then(permissions => permissions.update);
|
|
71
67
|
}
|
|
72
68
|
} catch (error) {
|
|
73
69
|
req.payload.logger.error(error);
|
|
74
70
|
}
|
|
75
71
|
}
|
|
76
|
-
// TODO: do this in a better way. Only doing this bc this is how the fn was written (mutates the original object)
|
|
77
|
-
const sanitizedDocPermissions = {
|
|
78
|
-
...docPermissions
|
|
79
|
-
};
|
|
80
|
-
sanitizePermissions(sanitizedDocPermissions);
|
|
81
72
|
const hasSavePermission = getHasSavePermission({
|
|
82
73
|
collectionSlug: collectionConfig?.slug,
|
|
83
|
-
docPermissions
|
|
74
|
+
docPermissions,
|
|
84
75
|
globalSlug: globalConfig?.slug,
|
|
85
76
|
isEditing: getIsEditing({
|
|
86
77
|
id,
|
|
@@ -89,7 +80,7 @@ export const getDocumentPermissions = async args => {
|
|
|
89
80
|
})
|
|
90
81
|
});
|
|
91
82
|
return {
|
|
92
|
-
docPermissions
|
|
83
|
+
docPermissions,
|
|
93
84
|
hasPublishPermission,
|
|
94
85
|
hasSavePermission
|
|
95
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","
|
|
1
|
+
{"version":3,"file":"getDocumentPermissions.js","names":["hasSavePermission","getHasSavePermission","isEditing","getIsEditing","docAccessOperation","docAccessOperationGlobal","getDocumentPermissions","args","id","collectionConfig","data","globalConfig","req","docPermissions","hasPublishPermission","toString","collection","config","_status","versions","drafts","then","permissions","update","error","payload","logger","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 } from 'payload'\n\nexport const getDocumentPermissions = async (args: {\n collectionConfig?: SanitizedCollectionConfig\n data: Data\n globalConfig?: SanitizedGlobalConfig\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: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'draft',\n },\n },\n })\n\n if (collectionConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperation({\n id: id?.toString(),\n collection: {\n config: collectionConfig,\n },\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then((permissions) => permissions.update)\n }\n } catch (error) {\n req.payload.logger.error(error)\n }\n }\n\n if (globalConfig) {\n try {\n docPermissions = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data,\n },\n })\n\n if (globalConfig.versions?.drafts) {\n hasPublishPermission = await docAccessOperationGlobal({\n globalConfig,\n req: {\n ...req,\n data: {\n ...data,\n _status: 'published',\n },\n },\n }).then((permissions) => permissions.update)\n }\n } catch (error) {\n req.payload.logger.error(error)\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,QAAQ;AAE7D,OAAO,MAAMC,sBAAA,GAAyB,MAAOC,IAAA;EAW3C,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,MAAMT,kBAAA,CAAmB;QACxCI,EAAA,EAAIA,EAAA,EAAIO,QAAA;QACRC,UAAA,EAAY;UACVC,MAAA,EAAQR;QACV;QACAG,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF,IAAA,EAAM;YACJ,GAAGA,IAAI;YACPQ,OAAA,EAAS;UACX;QACF;MACF;MAEA,IAAIT,gBAAA,CAAiBU,QAAQ,EAAEC,MAAA,EAAQ;QACrCN,oBAAA,GAAuB,MAAMV,kBAAA,CAAmB;UAC9CI,EAAA,EAAIA,EAAA,EAAIO,QAAA;UACRC,UAAA,EAAY;YACVC,MAAA,EAAQR;UACV;UACAG,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAEC,WAAA,IAAgBA,WAAA,CAAYC,MAAM;MAC7C;IACF,EAAE,OAAOC,KAAA,EAAO;MACdZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA,KAAA;IAC3B;EACF;EAEA,IAAIb,YAAA,EAAc;IAChB,IAAI;MACFE,cAAA,GAAiB,MAAMR,wBAAA,CAAyB;QAC9CM,YAAA;QACAC,GAAA,EAAK;UACH,GAAGA,GAAG;UACNF;QACF;MACF;MAEA,IAAIC,YAAA,CAAaQ,QAAQ,EAAEC,MAAA,EAAQ;QACjCN,oBAAA,GAAuB,MAAMT,wBAAA,CAAyB;UACpDM,YAAA;UACAC,GAAA,EAAK;YACH,GAAGA,GAAG;YACNF,IAAA,EAAM;cACJ,GAAGA,IAAI;cACPQ,OAAA,EAAS;YACX;UACF;QACF,GAAGG,IAAI,CAAEC,WAAA,IAAgBA,WAAA,CAAYC,MAAM;MAC7C;IACF,EAAE,OAAOC,KAAA,EAAO;MACdZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA,KAAA;IAC3B;EACF;EAEA,MAAMxB,iBAAA,GAAoBC,oBAAA,CAAqB;IAC7C0B,cAAA,EAAgBlB,gBAAA,EAAkBmB,IAAA;IAClCf,cAAA;IACAgB,UAAA,EAAYlB,YAAA,EAAciB,IAAA;IAC1B1B,SAAA,EAAWC,YAAA,CAAa;MACtBK,EAAA;MACAmB,cAAA,EAAgBlB,gBAAA,EAAkBmB,IAAA;MAClCC,UAAA,EAAYlB,YAAA,EAAciB;IAC5B;EACF;EAEA,OAAO;IACLf,cAAA;IACAC,oBAAA;IACAd;EACF;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getIsLocked.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getIsLocked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,SAAS,EAEV,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getIsLocked.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getIsLocked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,SAAS,EAEV,MAAM,SAAS,CAAA;AAIhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,eAAO,MAAM,WAAW,4DAMrB,IAAI,KAAG,MAyDT,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sanitizeID } from '@payloadcms/ui/shared';
|
|
1
2
|
export const getIsLocked = async ({
|
|
2
3
|
id,
|
|
3
4
|
collectionConfig,
|
|
@@ -20,7 +21,7 @@ export const getIsLocked = async ({
|
|
|
20
21
|
} else {
|
|
21
22
|
where.and = [{
|
|
22
23
|
'document.value': {
|
|
23
|
-
equals: id
|
|
24
|
+
equals: sanitizeID(id)
|
|
24
25
|
}
|
|
25
26
|
}, {
|
|
26
27
|
'document.relationTo': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getIsLocked.js","names":["getIsLocked","id","collectionConfig","globalConfig","isEditing","req","entityConfig","entityHasLockingEnabled","lockDocuments","undefined","isLocked","where","globalSlug","equals","slug","and","docs","payload","find","collection","depth","overrideAccess","length","newEditor","user","value","lastUpdateTime","Date","updatedAt","getTime","currentEditor"],"sources":["../../../src/views/Document/getIsLocked.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n TypedUser,\n Where,\n} from 'payload'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n isEditing: boolean\n req: PayloadRequest\n}\n\ntype Result = Promise<{\n currentEditor?: TypedUser\n isLocked: boolean\n lastUpdateTime?: number\n}>\n\nexport const getIsLocked = async ({\n id,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n}: Args): Result => {\n const entityConfig = collectionConfig || globalConfig\n\n const entityHasLockingEnabled =\n entityConfig?.lockDocuments !== undefined ? entityConfig?.lockDocuments : true\n\n if (!entityHasLockingEnabled || !isEditing) {\n return {\n isLocked: false,\n }\n }\n\n const where: Where = {}\n\n if (globalConfig) {\n where.globalSlug = {\n equals: globalConfig.slug,\n }\n } else {\n where.and = [\n {\n 'document.value': {\n equals: id,\n },\n },\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n ]\n }\n\n const { docs } = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n req,\n where,\n })\n\n if (docs.length > 0) {\n const newEditor = docs[0].user?.value\n const lastUpdateTime = new Date(docs[0].updatedAt).getTime()\n\n if (newEditor?.id !== req.user.id) {\n return {\n currentEditor: newEditor,\n isLocked: true,\n lastUpdateTime,\n }\n }\n }\n\n return {\n isLocked: false,\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getIsLocked.js","names":["sanitizeID","getIsLocked","id","collectionConfig","globalConfig","isEditing","req","entityConfig","entityHasLockingEnabled","lockDocuments","undefined","isLocked","where","globalSlug","equals","slug","and","docs","payload","find","collection","depth","overrideAccess","length","newEditor","user","value","lastUpdateTime","Date","updatedAt","getTime","currentEditor"],"sources":["../../../src/views/Document/getIsLocked.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n TypedUser,\n Where,\n} from 'payload'\n\nimport { sanitizeID } from '@payloadcms/ui/shared'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n id?: number | string\n isEditing: boolean\n req: PayloadRequest\n}\n\ntype Result = Promise<{\n currentEditor?: TypedUser\n isLocked: boolean\n lastUpdateTime?: number\n}>\n\nexport const getIsLocked = async ({\n id,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n}: Args): Result => {\n const entityConfig = collectionConfig || globalConfig\n\n const entityHasLockingEnabled =\n entityConfig?.lockDocuments !== undefined ? entityConfig?.lockDocuments : true\n\n if (!entityHasLockingEnabled || !isEditing) {\n return {\n isLocked: false,\n }\n }\n\n const where: Where = {}\n\n if (globalConfig) {\n where.globalSlug = {\n equals: globalConfig.slug,\n }\n } else {\n where.and = [\n {\n 'document.value': {\n equals: sanitizeID(id),\n },\n },\n {\n 'document.relationTo': {\n equals: collectionConfig.slug,\n },\n },\n ]\n }\n\n const { docs } = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n req,\n where,\n })\n\n if (docs.length > 0) {\n const newEditor = docs[0].user?.value\n const lastUpdateTime = new Date(docs[0].updatedAt).getTime()\n\n if (newEditor?.id !== req.user.id) {\n return {\n currentEditor: newEditor,\n isLocked: true,\n lastUpdateTime,\n }\n }\n }\n\n return {\n isLocked: false,\n }\n}\n"],"mappings":"AAQA,SAASA,UAAU,QAAQ;AAgB3B,OAAO,MAAMC,WAAA,GAAc,MAAAA,CAAO;EAChCC,EAAE;EACFC,gBAAgB;EAChBC,YAAY;EACZC,SAAS;EACTC;AAAG,CACE;EACL,MAAMC,YAAA,GAAeJ,gBAAA,IAAoBC,YAAA;EAEzC,MAAMI,uBAAA,GACJD,YAAA,EAAcE,aAAA,KAAkBC,SAAA,GAAYH,YAAA,EAAcE,aAAA,GAAgB;EAE5E,IAAI,CAACD,uBAAA,IAA2B,CAACH,SAAA,EAAW;IAC1C,OAAO;MACLM,QAAA,EAAU;IACZ;EACF;EAEA,MAAMC,KAAA,GAAe,CAAC;EAEtB,IAAIR,YAAA,EAAc;IAChBQ,KAAA,CAAMC,UAAU,GAAG;MACjBC,MAAA,EAAQV,YAAA,CAAaW;IACvB;EACF,OAAO;IACLH,KAAA,CAAMI,GAAG,GAAG,CACV;MACE,kBAAkB;QAChBF,MAAA,EAAQd,UAAA,CAAWE,EAAA;MACrB;IACF,GACA;MACE,uBAAuB;QACrBY,MAAA,EAAQX,gBAAA,CAAiBY;MAC3B;IACF,EACD;EACH;EAEA,MAAM;IAAEE;EAAI,CAAE,GAAG,MAAMX,GAAA,CAAIY,OAAO,CAACC,IAAI,CAAC;IACtCC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,cAAA,EAAgB;IAChBhB,GAAA;IACAM;EACF;EAEA,IAAIK,IAAA,CAAKM,MAAM,GAAG,GAAG;IACnB,MAAMC,SAAA,GAAYP,IAAI,CAAC,EAAE,CAACQ,IAAI,EAAEC,KAAA;IAChC,MAAMC,cAAA,GAAiB,IAAIC,IAAA,CAAKX,IAAI,CAAC,EAAE,CAACY,SAAS,EAAEC,OAAO;IAE1D,IAAIN,SAAA,EAAWtB,EAAA,KAAOI,GAAA,CAAImB,IAAI,CAACvB,EAAE,EAAE;MACjC,OAAO;QACL6B,aAAA,EAAeP,SAAA;QACfb,QAAA,EAAU;QACVgB;MACF;IACF;EACF;EAEA,OAAO;IACLhB,QAAA,EAAU;EACZ;AACF","ignoreList":[]}
|
|
@@ -14,6 +14,6 @@ type Result = Promise<{
|
|
|
14
14
|
unpublishedVersionCount: number;
|
|
15
15
|
versionCount: number;
|
|
16
16
|
}>;
|
|
17
|
-
export declare const getVersions: ({ id, collectionConfig, docPermissions, globalConfig, locale, payload, user, }: Args) => Result;
|
|
17
|
+
export declare const getVersions: ({ id: idArg, collectionConfig, docPermissions, globalConfig, locale, payload, user, }: Args) => Result;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=getVersions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"getVersions.d.ts","sourceRoot":"","sources":["../../../src/views/Document/getVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,SAAS,EACV,MAAM,SAAS,CAAA;AAIhB,KAAK,IAAI,GAAG;IACV,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,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;AAIF,eAAO,MAAM,WAAW,0FAQrB,IAAI,KAAG,MA6MT,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { sanitizeID } from '@payloadcms/ui/shared';
|
|
1
2
|
// TODO: in the future, we can parallelize some of these queries
|
|
2
3
|
// this will speed up the API by ~30-100ms or so
|
|
3
4
|
export const getVersions = async ({
|
|
4
|
-
id,
|
|
5
|
+
id: idArg,
|
|
5
6
|
collectionConfig,
|
|
6
7
|
docPermissions,
|
|
7
8
|
globalConfig,
|
|
@@ -9,6 +10,7 @@ export const getVersions = async ({
|
|
|
9
10
|
payload,
|
|
10
11
|
user
|
|
11
12
|
}) => {
|
|
13
|
+
const id = sanitizeID(idArg);
|
|
12
14
|
let publishedQuery;
|
|
13
15
|
let hasPublishedDoc = false;
|
|
14
16
|
let mostRecentVersionIsAutosaved = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getVersions.js","names":["getVersions","id","collectionConfig","docPermissions","globalConfig","locale","payload","user","publishedQuery","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","drafts","find","collection","slug","depth","undefined","where","and","or","_status","equals","exists","docs","autosave","mostRecentVersion","findVersions","limit","parent","updatedAt","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","select","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\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\nexport const getVersions = async ({\n id,\n collectionConfig,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n let publishedQuery\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 publishedQuery = await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n locale: locale || undefined,\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\n if (publishedQuery.docs?.[0]) {\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 user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\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 (publishedQuery.docs?.[0]?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\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: publishedQuery.docs[0].updatedAt,\n },\n },\n ],\n },\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n }))\n }\n\n if (globalConfig) {\n if (versionsConfig?.drafts) {\n publishedQuery = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n user,\n })\n\n if (publishedQuery?._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 (publishedQuery?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedQuery.updatedAt,\n },\n },\n ],\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":"
|
|
1
|
+
{"version":3,"file":"getVersions.js","names":["sanitizeID","getVersions","id","idArg","collectionConfig","docPermissions","globalConfig","locale","payload","user","publishedQuery","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","entityConfig","versionsConfig","versions","shouldFetchVersions","Boolean","readVersions","drafts","find","collection","slug","depth","undefined","where","and","or","_status","equals","exists","docs","autosave","mostRecentVersion","findVersions","limit","parent","updatedAt","totalDocs","countVersions","greater_than","findGlobal","findGlobalVersions","select","countGlobalVersions","global"],"sources":["../../../src/views/Document/getVersions.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\n\nimport { sanitizeID } from '@payloadcms/ui/shared'\n\ntype Args = {\n collectionConfig?: SanitizedCollectionConfig\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\nexport const getVersions = async ({\n id: idArg,\n collectionConfig,\n docPermissions,\n globalConfig,\n locale,\n payload,\n user,\n}: Args): Result => {\n const id = sanitizeID(idArg)\n let publishedQuery\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 publishedQuery = await payload.find({\n collection: collectionConfig.slug,\n depth: 0,\n locale: locale || undefined,\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\n if (publishedQuery.docs?.[0]) {\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 user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\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 (publishedQuery.docs?.[0]?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\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: publishedQuery.docs[0].updatedAt,\n },\n },\n ],\n },\n }))\n }\n }\n\n ;({ totalDocs: versionCount } = await payload.countVersions({\n collection: collectionConfig.slug,\n user,\n where: {\n and: [\n {\n parent: {\n equals: id,\n },\n },\n ],\n },\n }))\n }\n\n if (globalConfig) {\n if (versionsConfig?.drafts) {\n publishedQuery = await payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n locale,\n user,\n })\n\n if (publishedQuery?._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 (publishedQuery?.updatedAt) {\n ;({ totalDocs: unpublishedVersionCount } = await payload.countGlobalVersions({\n depth: 0,\n global: globalConfig.slug,\n user,\n where: {\n and: [\n {\n 'version._status': {\n equals: 'draft',\n },\n },\n {\n updatedAt: {\n greater_than: publishedQuery.updatedAt,\n },\n },\n ],\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,cAAc,EACd,IAAI,EAIL,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAKhG,eAAO,MAAM,cAAc,+IAUxB,cAAc,KAAG,OAAO,CAAC;IAC1B,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,cAAc,EACd,IAAI,EAIL,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAKhG,eAAO,MAAM,cAAc,+IAUxB,cAAc,KAAG,OAAO,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAwUA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAc7C,CAAA"}
|
|
@@ -33,7 +33,7 @@ export const renderDocument = async ({
|
|
|
33
33
|
}) => {
|
|
34
34
|
const {
|
|
35
35
|
collectionConfig,
|
|
36
|
-
docID:
|
|
36
|
+
docID: idFromArgs,
|
|
37
37
|
globalConfig,
|
|
38
38
|
locale,
|
|
39
39
|
permissions,
|
|
@@ -58,8 +58,8 @@ export const renderDocument = async ({
|
|
|
58
58
|
const segments = Array.isArray(params?.segments) ? params.segments : [];
|
|
59
59
|
const collectionSlug = collectionConfig?.slug || undefined;
|
|
60
60
|
const globalSlug = globalConfig?.slug || undefined;
|
|
61
|
-
|
|
62
|
-
id,
|
|
61
|
+
let isEditing = getIsEditing({
|
|
62
|
+
id: idFromArgs,
|
|
63
63
|
collectionSlug,
|
|
64
64
|
globalSlug
|
|
65
65
|
});
|
|
@@ -69,8 +69,8 @@ export const renderDocument = async ({
|
|
|
69
69
|
let ErrorView;
|
|
70
70
|
let apiURL;
|
|
71
71
|
// Fetch the doc required for the view
|
|
72
|
-
|
|
73
|
-
id,
|
|
72
|
+
let doc = initialData || (await getDocumentData({
|
|
73
|
+
id: idFromArgs,
|
|
74
74
|
collectionSlug,
|
|
75
75
|
globalSlug,
|
|
76
76
|
locale,
|
|
@@ -91,7 +91,7 @@ export const renderDocument = async ({
|
|
|
91
91
|
}] = await Promise.all([
|
|
92
92
|
// Get document preferences
|
|
93
93
|
getDocPreferences({
|
|
94
|
-
id,
|
|
94
|
+
id: idFromArgs,
|
|
95
95
|
collectionSlug,
|
|
96
96
|
globalSlug,
|
|
97
97
|
payload,
|
|
@@ -99,7 +99,7 @@ export const renderDocument = async ({
|
|
|
99
99
|
}),
|
|
100
100
|
// Get permissions
|
|
101
101
|
getDocumentPermissions({
|
|
102
|
-
id,
|
|
102
|
+
id: idFromArgs,
|
|
103
103
|
collectionConfig,
|
|
104
104
|
data: doc,
|
|
105
105
|
globalConfig,
|
|
@@ -107,7 +107,7 @@ export const renderDocument = async ({
|
|
|
107
107
|
}),
|
|
108
108
|
// Fetch document lock state
|
|
109
109
|
getIsLocked({
|
|
110
|
-
id,
|
|
110
|
+
id: idFromArgs,
|
|
111
111
|
collectionConfig,
|
|
112
112
|
globalConfig,
|
|
113
113
|
isEditing,
|
|
@@ -121,7 +121,7 @@ export const renderDocument = async ({
|
|
|
121
121
|
}, {
|
|
122
122
|
state: formState
|
|
123
123
|
}] = await Promise.all([getVersions({
|
|
124
|
-
id,
|
|
124
|
+
id: idFromArgs,
|
|
125
125
|
collectionConfig,
|
|
126
126
|
docPermissions,
|
|
127
127
|
globalConfig,
|
|
@@ -129,7 +129,7 @@ export const renderDocument = async ({
|
|
|
129
129
|
payload,
|
|
130
130
|
user
|
|
131
131
|
}), buildFormState({
|
|
132
|
-
id,
|
|
132
|
+
id: idFromArgs,
|
|
133
133
|
collectionSlug,
|
|
134
134
|
data: doc,
|
|
135
135
|
docPermissions,
|
|
@@ -137,7 +137,7 @@ export const renderDocument = async ({
|
|
|
137
137
|
fallbackLocale: false,
|
|
138
138
|
globalSlug,
|
|
139
139
|
locale: locale?.code,
|
|
140
|
-
operation: collectionSlug &&
|
|
140
|
+
operation: collectionSlug && idFromArgs || globalSlug ? 'update' : 'create',
|
|
141
141
|
renderAllFields: true,
|
|
142
142
|
req,
|
|
143
143
|
schemaPath: collectionSlug || globalSlug
|
|
@@ -166,7 +166,7 @@ export const renderDocument = async ({
|
|
|
166
166
|
params.append('locale', locale.code);
|
|
167
167
|
}
|
|
168
168
|
const apiQueryParams = `?${params.toString()}`;
|
|
169
|
-
apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${
|
|
169
|
+
apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}`;
|
|
170
170
|
RootViewOverride = collectionConfig?.admin?.components?.views?.edit?.root && 'Component' in collectionConfig.admin.components.views.edit.root ? collectionConfig?.admin?.components?.views?.edit?.root?.Component : null;
|
|
171
171
|
if (!RootViewOverride) {
|
|
172
172
|
const collectionViews = getViewsFromConfig({
|
|
@@ -224,8 +224,9 @@ export const renderDocument = async ({
|
|
|
224
224
|
*/
|
|
225
225
|
const shouldAutosave = hasSavePermission && (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave || globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave);
|
|
226
226
|
const validateDraftData = collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.validate;
|
|
227
|
-
|
|
228
|
-
|
|
227
|
+
let id = idFromArgs;
|
|
228
|
+
if (shouldAutosave && !validateDraftData && !idFromArgs && collectionSlug) {
|
|
229
|
+
doc = await payload.create({
|
|
229
230
|
collection: collectionSlug,
|
|
230
231
|
data: initialData || {},
|
|
231
232
|
depth: 0,
|
|
@@ -236,12 +237,20 @@ export const renderDocument = async ({
|
|
|
236
237
|
user
|
|
237
238
|
});
|
|
238
239
|
if (doc?.id) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
240
|
+
id = doc.id;
|
|
241
|
+
isEditing = getIsEditing({
|
|
242
|
+
id: doc.id,
|
|
243
|
+
collectionSlug,
|
|
244
|
+
globalSlug
|
|
243
245
|
});
|
|
244
|
-
|
|
246
|
+
if (!drawerSlug) {
|
|
247
|
+
const redirectURL = formatAdminURL({
|
|
248
|
+
adminRoute,
|
|
249
|
+
path: `/collections/${collectionSlug}/${doc.id}`,
|
|
250
|
+
serverURL
|
|
251
|
+
});
|
|
252
|
+
redirect(redirectURL);
|
|
253
|
+
}
|
|
245
254
|
} else {
|
|
246
255
|
throw new Error('not-found');
|
|
247
256
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["DocumentInfoProvider","EditDepthProvider","HydrateAuthProvider","RenderServerComponent","formatAdminURL","isEditing","getIsEditing","buildFormState","isRedirectError","notFound","redirect","React","DocumentHeader","NotFoundView","getDocPreferences","getDocumentData","getDocumentPermissions","getIsLocked","getMetaBySegment","getVersions","getViewsFromConfig","renderDocumentSlots","generateMetadata","args","renderDocument","disableActions","drawerSlug","importMap","initialData","initPageResult","params","redirectAfterDelete","redirectAfterDuplicate","searchParams","collectionConfig","docID","id","globalConfig","locale","permissions","req","i18n","payload","config","routes","admin","adminRoute","api","apiRoute","serverURL","user","visibleEntities","segments","Array","isArray","collectionSlug","slug","undefined","globalSlug","RootViewOverride","CustomView","DefaultView","ErrorView","apiURL","doc","Error","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","currentEditor","isLocked","lastUpdateTime","Promise","all","data","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","code","fallbackLocale","operation","renderAllFields","schemaPath","serverProps","routeSegments","collections","find","visibleSlug","URLSearchParams","versions","drafts","append","apiQueryParams","toString","components","views","edit","root","Component","collectionViews","globals","globalViews","shouldAutosave","autosave","validateDraftData","validate","create","collection","depth","draft","redirectURL","path","documentSlots","clientProps","Document","_jsxs","initialState","_jsx","ComponentConfig","RenderedDocument","error","logger","message"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n Data,\n PayloadComponent,\n ServerProps,\n ServerSideEditViewProps,\n} from 'payload'\n\nimport { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL, isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { isRedirectError } from 'next/dist/client/components/redirect.js'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\nimport type { ViewFromConfig } from './getViewsFromConfig.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocPreferences } from './getDocPreferences.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getIsLocked } from './getIsLocked.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getVersions } from './getVersions.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\n// This function will be responsible for rendering an Edit Document view\n// it will be called on the server for Edit page views as well as\n// called on-demand from document drawers\nexport const renderDocument = async ({\n disableActions,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n params,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams,\n}: AdminViewProps): Promise<{\n data: Data\n Document: React.ReactNode\n}> => {\n const {\n collectionConfig,\n docID: id,\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 const isEditing = getIsEditing({ id, collectionSlug, globalSlug })\n\n let RootViewOverride: PayloadComponent\n let CustomView: ViewFromConfig<ServerSideEditViewProps>\n let DefaultView: ViewFromConfig<ServerSideEditViewProps>\n let ErrorView: ViewFromConfig<AdminViewProps>\n\n let apiURL: string\n\n // Fetch the doc required for the view\n const doc =\n initialData ||\n (await getDocumentData({\n id,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n user,\n }))\n\n if (isEditing && !doc) {\n throw new Error('not-found')\n }\n\n const [\n docPreferences,\n { docPermissions, hasPublishPermission, hasSavePermission },\n { currentEditor, isLocked, lastUpdateTime },\n ] = await Promise.all([\n // Get document preferences\n getDocPreferences({\n id,\n collectionSlug,\n globalSlug,\n payload,\n user,\n }),\n\n // Get permissions\n getDocumentPermissions({\n id,\n collectionConfig,\n data: doc,\n globalConfig,\n req,\n }),\n\n // Fetch document lock state\n getIsLocked({\n id,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n }),\n ])\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n ] = await Promise.all([\n getVersions({\n id,\n collectionConfig,\n docPermissions,\n globalConfig,\n locale: locale?.code,\n payload,\n user,\n }),\n buildFormState({\n id,\n collectionSlug,\n data: doc,\n docPermissions,\n docPreferences,\n fallbackLocale: false,\n globalSlug,\n locale: locale?.code,\n operation: (collectionSlug && id) || globalSlug ? 'update' : 'create',\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n }),\n ])\n\n const serverProps: ServerSideEditViewProps = {\n doc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n }\n\n if (collectionConfig) {\n if (!visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) {\n throw new Error('not-found')\n }\n\n const params = new URLSearchParams()\n if (collectionConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${id}${apiQueryParams}`\n\n 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 : null\n\n if (!RootViewOverride) {\n const collectionViews = getViewsFromConfig({\n collectionConfig,\n config,\n docPermissions,\n routeSegments: segments,\n })\n\n CustomView = collectionViews?.CustomView\n DefaultView = collectionViews?.DefaultView\n ErrorView = collectionViews?.ErrorView\n }\n\n if (!CustomView && !DefaultView && !RootViewOverride && !ErrorView) {\n ErrorView = {\n Component: NotFoundView,\n }\n }\n }\n\n if (globalConfig) {\n if (!visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)) {\n throw new Error('not-found')\n }\n\n const params = new URLSearchParams({\n locale: locale?.code,\n })\n\n if (globalConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n\n RootViewOverride =\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 const globalViews = getViewsFromConfig({\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n })\n\n CustomView = globalViews?.CustomView\n DefaultView = globalViews?.DefaultView\n ErrorView = globalViews?.ErrorView\n\n if (!CustomView && !DefaultView && !RootViewOverride && !ErrorView) {\n ErrorView = {\n Component: NotFoundView,\n }\n }\n }\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 if (shouldAutosave && !validateDraftData && !id && collectionSlug) {\n const 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 const redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${doc.id}`,\n serverURL,\n })\n redirect(redirectURL)\n } else {\n throw new Error('not-found')\n }\n }\n\n const documentSlots = renderDocumentSlots({\n collectionConfig,\n globalConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n\n const clientProps = { formState, ...documentSlots }\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 key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n {!RootViewOverride && !drawerSlug && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n i18n={i18n}\n payload={payload}\n permissions={permissions}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {ErrorView\n ? RenderServerComponent({\n clientProps,\n Component: ErrorView.ComponentConfig || ErrorView.Component,\n importMap,\n serverProps,\n })\n : RenderServerComponent({\n clientProps,\n Component: RootViewOverride\n ? RootViewOverride\n : CustomView?.ComponentConfig || CustomView?.Component\n ? CustomView?.ComponentConfig || CustomView?.Component\n : DefaultView?.ComponentConfig || DefaultView?.Component,\n importMap,\n serverProps,\n })}\n </EditDepthProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport const Document: React.FC<AdminViewProps> = async (args) => {\n try {\n const { Document: RenderedDocument } = await renderDocument(args)\n return RenderedDocument\n } catch (error) {\n if (isRedirectError(error)) {\n throw error\n }\n args.initPageResult.req.payload.logger.error(error)\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","RenderServerComponent","formatAdminURL","isEditing","getIsEditing","buildFormState","isRedirectError","notFound","redirect","React","DocumentHeader","NotFoundView","getDocPreferences","getDocumentData","getDocumentPermissions","getIsLocked","getMetaBySegment","getVersions","getViewsFromConfig","renderDocumentSlots","generateMetadata","args","renderDocument","disableActions","drawerSlug","importMap","initialData","initPageResult","params","redirectAfterDelete","redirectAfterDuplicate","searchParams","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","RootViewOverride","CustomView","DefaultView","ErrorView","apiURL","doc","Error","docPreferences","docPermissions","hasPublishPermission","hasSavePermission","currentEditor","isLocked","lastUpdateTime","Promise","all","data","hasPublishedDoc","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","state","formState","code","fallbackLocale","operation","renderAllFields","schemaPath","serverProps","routeSegments","collections","find","visibleSlug","URLSearchParams","versions","drafts","append","apiQueryParams","toString","components","views","edit","root","Component","collectionViews","globals","globalViews","shouldAutosave","autosave","validateDraftData","validate","create","collection","depth","draft","redirectURL","path","documentSlots","clientProps","Document","_jsxs","initialState","_jsx","ComponentConfig","RenderedDocument","error","logger","message"],"sources":["../../../src/views/Document/index.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n Data,\n PayloadComponent,\n ServerProps,\n ServerSideEditViewProps,\n} from 'payload'\n\nimport { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { formatAdminURL, isEditing as getIsEditing } from '@payloadcms/ui/shared'\nimport { buildFormState } from '@payloadcms/ui/utilities/buildFormState'\nimport { isRedirectError } from 'next/dist/client/components/redirect.js'\nimport { notFound, redirect } from 'next/navigation.js'\nimport React from 'react'\n\nimport type { GenerateEditViewMetadata } from './getMetaBySegment.js'\nimport type { ViewFromConfig } from './getViewsFromConfig.js'\n\nimport { DocumentHeader } from '../../elements/DocumentHeader/index.js'\nimport { NotFoundView } from '../NotFound/index.js'\nimport { getDocPreferences } from './getDocPreferences.js'\nimport { getDocumentData } from './getDocumentData.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\nimport { getIsLocked } from './getIsLocked.js'\nimport { getMetaBySegment } from './getMetaBySegment.js'\nimport { getVersions } from './getVersions.js'\nimport { getViewsFromConfig } from './getViewsFromConfig.js'\nimport { renderDocumentSlots } from './renderDocumentSlots.js'\n\nexport const generateMetadata: GenerateEditViewMetadata = async (args) => getMetaBySegment(args)\n\n// This function will be responsible for rendering an Edit Document view\n// it will be called on the server for Edit page views as well as\n// called on-demand from document drawers\nexport const renderDocument = async ({\n disableActions,\n drawerSlug,\n importMap,\n initialData,\n initPageResult,\n params,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams,\n}: AdminViewProps): 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 let RootViewOverride: PayloadComponent\n let CustomView: ViewFromConfig<ServerSideEditViewProps>\n let DefaultView: ViewFromConfig<ServerSideEditViewProps>\n let ErrorView: ViewFromConfig<AdminViewProps>\n\n let apiURL: string\n\n // Fetch the doc required for the view\n let doc =\n initialData ||\n (await getDocumentData({\n id: idFromArgs,\n collectionSlug,\n globalSlug,\n locale,\n payload,\n user,\n }))\n\n if (isEditing && !doc) {\n throw new Error('not-found')\n }\n\n const [\n docPreferences,\n { docPermissions, hasPublishPermission, hasSavePermission },\n { currentEditor, isLocked, lastUpdateTime },\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\n getDocumentPermissions({\n id: idFromArgs,\n collectionConfig,\n data: doc,\n globalConfig,\n req,\n }),\n\n // Fetch document lock state\n getIsLocked({\n id: idFromArgs,\n collectionConfig,\n globalConfig,\n isEditing,\n req,\n }),\n ])\n\n const [\n { hasPublishedDoc, mostRecentVersionIsAutosaved, unpublishedVersionCount, versionCount },\n { state: formState },\n ] = await Promise.all([\n getVersions({\n id: idFromArgs,\n collectionConfig,\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: (collectionSlug && idFromArgs) || globalSlug ? 'update' : 'create',\n renderAllFields: true,\n req,\n schemaPath: collectionSlug || globalSlug,\n }),\n ])\n\n const serverProps: ServerSideEditViewProps = {\n doc,\n i18n,\n initPageResult,\n locale,\n params,\n payload,\n permissions,\n routeSegments: segments,\n searchParams,\n user,\n }\n\n if (collectionConfig) {\n if (!visibleEntities?.collections?.find((visibleSlug) => visibleSlug === collectionSlug)) {\n throw new Error('not-found')\n }\n\n const params = new URLSearchParams()\n if (collectionConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${collectionSlug}/${idFromArgs}${apiQueryParams}`\n\n 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 : null\n\n if (!RootViewOverride) {\n const collectionViews = getViewsFromConfig({\n collectionConfig,\n config,\n docPermissions,\n routeSegments: segments,\n })\n\n CustomView = collectionViews?.CustomView\n DefaultView = collectionViews?.DefaultView\n ErrorView = collectionViews?.ErrorView\n }\n\n if (!CustomView && !DefaultView && !RootViewOverride && !ErrorView) {\n ErrorView = {\n Component: NotFoundView,\n }\n }\n }\n\n if (globalConfig) {\n if (!visibleEntities?.globals?.find((visibleSlug) => visibleSlug === globalSlug)) {\n throw new Error('not-found')\n }\n\n const params = new URLSearchParams({\n locale: locale?.code,\n })\n\n if (globalConfig.versions?.drafts) {\n params.append('draft', 'true')\n }\n\n if (locale?.code) {\n params.append('locale', locale.code)\n }\n\n const apiQueryParams = `?${params.toString()}`\n\n apiURL = `${serverURL}${apiRoute}/${globalSlug}${apiQueryParams}`\n\n RootViewOverride =\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 const globalViews = getViewsFromConfig({\n config,\n docPermissions,\n globalConfig,\n routeSegments: segments,\n })\n\n CustomView = globalViews?.CustomView\n DefaultView = globalViews?.DefaultView\n ErrorView = globalViews?.ErrorView\n\n if (!CustomView && !DefaultView && !RootViewOverride && !ErrorView) {\n ErrorView = {\n Component: NotFoundView,\n }\n }\n }\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) {\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 collectionConfig,\n globalConfig,\n hasSavePermission,\n permissions: docPermissions,\n req,\n })\n\n const clientProps = { formState, ...documentSlots }\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 key={locale?.code}\n lastUpdateTime={lastUpdateTime}\n mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n unpublishedVersionCount={unpublishedVersionCount}\n versionCount={versionCount}\n >\n {!RootViewOverride && !drawerSlug && (\n <DocumentHeader\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n i18n={i18n}\n payload={payload}\n permissions={permissions}\n />\n )}\n <HydrateAuthProvider permissions={permissions} />\n <EditDepthProvider>\n {ErrorView\n ? RenderServerComponent({\n clientProps,\n Component: ErrorView.ComponentConfig || ErrorView.Component,\n importMap,\n serverProps,\n })\n : RenderServerComponent({\n clientProps,\n Component: RootViewOverride\n ? RootViewOverride\n : CustomView?.ComponentConfig || CustomView?.Component\n ? CustomView?.ComponentConfig || CustomView?.Component\n : DefaultView?.ComponentConfig || DefaultView?.Component,\n importMap,\n serverProps,\n })}\n </EditDepthProvider>\n </DocumentInfoProvider>\n ),\n }\n}\n\nexport const Document: React.FC<AdminViewProps> = async (args) => {\n try {\n const { Document: RenderedDocument } = await renderDocument(args)\n return RenderedDocument\n } catch (error) {\n if (isRedirectError(error)) {\n throw error\n }\n args.initPageResult.req.payload.logger.error(error)\n\n if (error.message === 'not-found') {\n notFound()\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,12 @@ export type ViewFromConfig = {
|
|
|
5
5
|
Component?: React.FC<AdminViewProps>;
|
|
6
6
|
payloadComponent?: AdminViewComponent;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type ServerPropsFromView = {
|
|
9
|
+
collectionConfig?: SanitizedConfig['collections'][number];
|
|
10
|
+
globalConfig?: SanitizedConfig['globals'][number];
|
|
11
|
+
viewActions: CustomComponent[];
|
|
12
|
+
};
|
|
13
|
+
type GetViewFromConfigArgs = {
|
|
9
14
|
adminRoute: string;
|
|
10
15
|
config: SanitizedConfig;
|
|
11
16
|
currentRoute: string;
|
|
@@ -14,12 +19,14 @@ export declare const getViewFromConfig: ({ adminRoute, config, currentRoute, imp
|
|
|
14
19
|
[key: string]: string | string[];
|
|
15
20
|
};
|
|
16
21
|
segments: string[];
|
|
17
|
-
}
|
|
22
|
+
};
|
|
23
|
+
type GetViewFromConfigResult = {
|
|
18
24
|
DefaultView: ViewFromConfig;
|
|
19
25
|
initPageOptions: Parameters<typeof initPage>[0];
|
|
20
|
-
serverProps:
|
|
26
|
+
serverProps: ServerPropsFromView;
|
|
21
27
|
templateClassName: string;
|
|
22
|
-
templateType:
|
|
23
|
-
viewActions?: CustomComponent[];
|
|
28
|
+
templateType: 'default' | 'minimal';
|
|
24
29
|
};
|
|
30
|
+
export declare const getViewFromConfig: ({ adminRoute, config, currentRoute, importMap, searchParams, segments, }: GetViewFromConfigArgs) => GetViewFromConfigResult;
|
|
31
|
+
export {};
|
|
25
32
|
//# sourceMappingURL=getViewFromConfig.d.ts.map
|