@payloadcms/next 3.0.0-canary.67aae47 → 3.0.0-canary.6b9e4be
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 +10 -0
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/fetchAPI-multipart/isEligibleRequest.js +1 -1
- package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +3 -1
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/utilities/getClientConfig.d.ts +2 -1
- package/dist/utilities/getClientConfig.d.ts.map +1 -1
- package/dist/utilities/getClientConfig.js +4 -2
- package/dist/utilities/getClientConfig.js.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +1 -2
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +80 -113
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/Document/getIsLocked.d.ts +3 -4
- package/dist/views/Document/getIsLocked.d.ts.map +1 -1
- package/dist/views/Document/getIsLocked.js +5 -4
- package/dist/views/Document/getIsLocked.js.map +1 -1
- package/dist/views/Document/handleServerFunction.d.ts +2 -1
- package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
- package/dist/views/Document/handleServerFunction.js +6 -3
- package/dist/views/Document/handleServerFunction.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +1 -2
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/List/handleServerFunction.d.ts +2 -1
- package/dist/views/List/handleServerFunction.d.ts.map +1 -1
- package/dist/views/List/handleServerFunction.js +6 -3
- package/dist/views/List/handleServerFunction.js.map +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.d.ts +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.d.ts.map +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.js +4 -4
- package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +11 -19
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +2 -1
- package/dist/views/Root/index.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +10 -0
- package/dist/withPayload.js.map +1 -1
- package/license.md +22 -0
- package/package.json +16 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getIsLocked.js","names":["getIsLocked","id","collectionConfig","globalConfig","isEditing","
|
|
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":"AAsBA,OAAO,MAAMA,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,EAAQZ;MACV;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":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { I18nClient } from '@payloadcms/translations';
|
|
2
|
-
import type { ClientConfig, Data, DocumentPreferences, FormState, PayloadRequest, SanitizedConfig } from 'payload';
|
|
2
|
+
import type { ClientConfig, Data, DocumentPreferences, FormState, ImportMap, PayloadRequest, SanitizedConfig } from 'payload';
|
|
3
3
|
export declare const getClientConfig: (args: {
|
|
4
4
|
config: SanitizedConfig;
|
|
5
5
|
i18n: I18nClient;
|
|
6
|
+
importMap: ImportMap;
|
|
6
7
|
}) => ClientConfig;
|
|
7
8
|
type RenderDocumentResult = {
|
|
8
9
|
data: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,IAAI,EACJ,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,eAAe,EAEhB,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,eAAe,SAAU;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,IAAI,EACJ,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,cAAc,EACd,eAAe,EAEhB,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,eAAe,SAAU;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,YAcH,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,qBAAqB,SAAgB;IAChD,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,oBAAoB,CA2I/B,CAAA"}
|
|
@@ -8,14 +8,16 @@ if (!cachedClientConfig) {
|
|
|
8
8
|
export const getClientConfig = args => {
|
|
9
9
|
const {
|
|
10
10
|
config,
|
|
11
|
-
i18n
|
|
11
|
+
i18n,
|
|
12
|
+
importMap
|
|
12
13
|
} = args;
|
|
13
14
|
if (cachedClientConfig && process.env.NODE_ENV !== 'development') {
|
|
14
15
|
return cachedClientConfig;
|
|
15
16
|
}
|
|
16
17
|
cachedClientConfig = createClientConfig({
|
|
17
18
|
config,
|
|
18
|
-
i18n
|
|
19
|
+
i18n,
|
|
20
|
+
importMap
|
|
19
21
|
});
|
|
20
22
|
return cachedClientConfig;
|
|
21
23
|
};
|
|
@@ -71,7 +73,8 @@ export const renderDocumentHandler = async args => {
|
|
|
71
73
|
}
|
|
72
74
|
const clientConfig = getClientConfig({
|
|
73
75
|
config,
|
|
74
|
-
i18n
|
|
76
|
+
i18n,
|
|
77
|
+
importMap: req.payload.importMap
|
|
75
78
|
});
|
|
76
79
|
let preferences;
|
|
77
80
|
if (docID) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunction.js","names":["headers","getHeaders","createClientConfig","getAccessResults","isEntityHidden","parseCookies","renderDocument","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","config","i18n","process","env","NODE_ENV","renderDocumentHandler","collectionSlug","disableActions","docID","drawerSlug","initialData","redirectAfterDelete","redirectAfterDuplicate","req","payload","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","preferences","preferencesKey","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","data","Document","
|
|
1
|
+
{"version":3,"file":"handleServerFunction.js","names":["headers","getHeaders","createClientConfig","getAccessResults","isEntityHidden","parseCookies","renderDocument","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","config","i18n","importMap","process","env","NODE_ENV","renderDocumentHandler","collectionSlug","disableActions","docID","drawerSlug","initialData","redirectAfterDelete","redirectAfterDuplicate","req","payload","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","preferences","preferencesKey","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","data","Document","initPageResult","collectionConfig","globalConfig","global1","languageOptions","undefined","translations","params","segments","searchParams"],"sources":["../../../src/views/Document/handleServerFunction.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientConfig,\n Data,\n DocumentPreferences,\n FormState,\n ImportMap,\n PayloadRequest,\n SanitizedConfig,\n VisibleEntities,\n} from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createClientConfig, getAccessResults, isEntityHidden, parseCookies } from 'payload'\n\nimport { renderDocument } from './index.js'\n\nlet cachedClientConfig = global._payload_clientConfig\n\nif (!cachedClientConfig) {\n cachedClientConfig = global._payload_clientConfig = null\n}\n\nexport const getClientConfig = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n importMap: ImportMap\n}): ClientConfig => {\n const { config, i18n, importMap } = args\n\n if (cachedClientConfig && process.env.NODE_ENV !== 'development') {\n return cachedClientConfig\n }\n\n cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n return cachedClientConfig\n}\n\ntype RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\nexport const renderDocumentHandler = async (args: {\n collectionSlug: string\n disableActions?: boolean\n docID: string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n req: PayloadRequest\n}): Promise<RenderDocumentResult> => {\n const {\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = args\n\n const headers = await getHeaders()\n\n const cookies = parseCookies(headers)\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n })\n\n let preferences: DocumentPreferences\n\n if (docID) {\n const preferencesKey = `${collectionSlug}-edit-${docID}`\n\n preferences = await payload\n .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 })\n .then((res) => res.docs[0]?.value as DocumentPreferences)\n }\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const permissions = await getAccessResults({\n req,\n })\n\n const { data, Document } = await renderDocument({\n clientConfig,\n disableActions,\n drawerSlug,\n importMap: payload.importMap,\n initialData,\n initPageResult: {\n collectionConfig: payload.config.collections.find(\n (collection) => collection.slug === collectionSlug,\n ),\n cookies,\n docID,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n params: {\n segments: ['collections', collectionSlug, docID],\n },\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams: {},\n })\n\n return {\n data,\n Document,\n preferences,\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,CAkUA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAc7C,CAAA"}
|
|
@@ -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","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","fallbackLocale","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 payload: req.payload,\n user,\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 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: ServerProps = {\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: null,\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={clientProps}\n Component={ErrorView.ComponentConfig || ErrorView.Component}\n importMap={importMap}\n serverProps={serverProps}\n />\n ) : (\n <RenderServerComponent\n clientProps={clientProps}\n Component={\n RootViewOverride\n ? RootViewOverride\n : CustomView?.ComponentConfig || CustomView?.Component\n ? CustomView?.ComponentConfig || CustomView?.Component\n : DefaultView?.ComponentConfig || DefaultView?.Component\n }\n importMap={importMap}\n serverProps={serverProps}\n />\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","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","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","fallbackLocale","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 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: ServerProps = {\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: null,\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={clientProps}\n Component={ErrorView.ComponentConfig || ErrorView.Component}\n importMap={importMap}\n serverProps={serverProps}\n />\n ) : (\n <RenderServerComponent\n clientProps={clientProps}\n Component={\n RootViewOverride\n ? RootViewOverride\n : CustomView?.ComponentConfig || CustomView?.Component\n ? CustomView?.ComponentConfig || CustomView?.Component\n : DefaultView?.ComponentConfig || DefaultView?.Component\n }\n importMap={importMap}\n serverProps={serverProps}\n />\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,9 +1,10 @@
|
|
|
1
1
|
import type { I18nClient } from '@payloadcms/translations';
|
|
2
2
|
import type { ListPreferences } from '@payloadcms/ui';
|
|
3
|
-
import type { ClientConfig, ListQuery, PayloadRequest, SanitizedConfig } from 'payload';
|
|
3
|
+
import type { ClientConfig, ImportMap, ListQuery, PayloadRequest, SanitizedConfig } from 'payload';
|
|
4
4
|
export declare const getClientConfig: (args: {
|
|
5
5
|
config: SanitizedConfig;
|
|
6
6
|
i18n: I18nClient;
|
|
7
|
+
importMap: ImportMap;
|
|
7
8
|
}) => ClientConfig;
|
|
8
9
|
type RenderListResult = {
|
|
9
10
|
List: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,cAAc,EACd,eAAe,EAEhB,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,eAAe,SAAU;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/List/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,eAAe,EAEhB,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,eAAe,SAAU;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAG,YAcH,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,EAAE,eAAe,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAgB;IAC5C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,KAAK,EAAE,SAAS,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,gBAAgB,CA0I3B,CAAA"}
|
|
@@ -8,14 +8,16 @@ if (!cachedClientConfig) {
|
|
|
8
8
|
export const getClientConfig = args => {
|
|
9
9
|
const {
|
|
10
10
|
config,
|
|
11
|
-
i18n
|
|
11
|
+
i18n,
|
|
12
|
+
importMap
|
|
12
13
|
} = args;
|
|
13
14
|
if (cachedClientConfig && process.env.NODE_ENV !== 'development') {
|
|
14
15
|
return cachedClientConfig;
|
|
15
16
|
}
|
|
16
17
|
cachedClientConfig = createClientConfig({
|
|
17
18
|
config,
|
|
18
|
-
i18n
|
|
19
|
+
i18n,
|
|
20
|
+
importMap
|
|
19
21
|
});
|
|
20
22
|
return cachedClientConfig;
|
|
21
23
|
};
|
|
@@ -73,7 +75,8 @@ export const renderListHandler = async args => {
|
|
|
73
75
|
}
|
|
74
76
|
const clientConfig = getClientConfig({
|
|
75
77
|
config,
|
|
76
|
-
i18n
|
|
78
|
+
i18n,
|
|
79
|
+
importMap: payload.importMap
|
|
77
80
|
});
|
|
78
81
|
const preferencesKey = `${collectionSlug}-list`;
|
|
79
82
|
const preferences = await payload.find({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunction.js","names":["headers","getHeaders","createClientConfig","getAccessResults","isEntityHidden","parseCookies","renderListView","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","config","i18n","process","env","NODE_ENV","renderListHandler","collectionSlug","disableActions","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","query","redirectAfterDelete","redirectAfterDuplicate","req","payload","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","preferencesKey","preferences","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","List","
|
|
1
|
+
{"version":3,"file":"handleServerFunction.js","names":["headers","getHeaders","createClientConfig","getAccessResults","isEntityHidden","parseCookies","renderListView","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","config","i18n","importMap","process","env","NODE_ENV","renderListHandler","collectionSlug","disableActions","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","query","redirectAfterDelete","redirectAfterDuplicate","req","payload","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","preferencesKey","preferences","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","List","initPageResult","collectionConfig","globalConfig","global1","languageOptions","undefined","translations","params","segments","searchParams"],"sources":["../../../src/views/List/handleServerFunction.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ListPreferences } from '@payloadcms/ui'\nimport type {\n ClientConfig,\n ImportMap,\n ListQuery,\n PayloadRequest,\n SanitizedConfig,\n VisibleEntities,\n} from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createClientConfig, getAccessResults, isEntityHidden, parseCookies } from 'payload'\n\nimport { renderListView } from './index.js'\n\nlet cachedClientConfig = global._payload_clientConfig\n\nif (!cachedClientConfig) {\n cachedClientConfig = global._payload_clientConfig = null\n}\n\nexport const getClientConfig = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n importMap: ImportMap\n}): ClientConfig => {\n const { config, i18n, importMap } = args\n\n if (cachedClientConfig && process.env.NODE_ENV !== 'development') {\n return cachedClientConfig\n }\n\n cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n return cachedClientConfig\n}\n\ntype RenderListResult = {\n List: React.ReactNode\n preferences: ListPreferences\n}\n\nexport const renderListHandler = async (args: {\n collectionSlug: string\n disableActions?: boolean\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n documentDrawerSlug: string\n drawerSlug?: string\n enableRowSelections: boolean\n query: ListQuery\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n req: PayloadRequest\n}): Promise<RenderListResult> => {\n const {\n collectionSlug,\n disableActions,\n disableBulkDelete,\n disableBulkEdit,\n drawerSlug,\n enableRowSelections,\n query,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = args\n\n const headers = await getHeaders()\n\n const cookies = parseCookies(headers)\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n importMap: payload.importMap,\n })\n\n const preferencesKey = `${collectionSlug}-list`\n\n const preferences = await payload\n .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 })\n .then((res) => res.docs[0]?.value as ListPreferences)\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const permissions = await getAccessResults({\n req,\n })\n\n const { List } = await renderListView({\n clientConfig,\n disableActions,\n disableBulkDelete,\n disableBulkEdit,\n drawerSlug,\n enableRowSelections,\n importMap: payload.importMap,\n initPageResult: {\n collectionConfig: payload.config.collections.find(\n (collection) => collection.slug === collectionSlug,\n ),\n cookies,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n params: {\n segments: ['collections', collectionSlug],\n },\n query,\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams: {},\n })\n\n return {\n List,\n preferences,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,8 +13,8 @@ export type SizeReducerAction = {
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
export declare const sizeReducer: (state: SizeReducerState, action: SizeReducerAction) => {
|
|
16
|
-
width: number;
|
|
17
16
|
height: number;
|
|
17
|
+
width: number;
|
|
18
18
|
};
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=sizeReducer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sizeReducer.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"names":[],"mappings":"AAWA,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAEL,eAAO,MAAM,WAAW,UAAW,gBAAgB,UAAU,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"sizeReducer.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"names":[],"mappings":"AAWA,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAEL,eAAO,MAAM,WAAW,UAAW,gBAAgB,UAAU,iBAAiB;;WAhBrE,MAAM;CAyBd,CAAA"}
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
// },
|
|
11
11
|
export const sizeReducer = (state, action) => {
|
|
12
12
|
switch (action.type) {
|
|
13
|
-
case '
|
|
13
|
+
case 'height':
|
|
14
14
|
return {
|
|
15
15
|
...state,
|
|
16
|
-
|
|
16
|
+
height: action.value
|
|
17
17
|
};
|
|
18
|
-
case '
|
|
18
|
+
case 'width':
|
|
19
19
|
return {
|
|
20
20
|
...state,
|
|
21
|
-
|
|
21
|
+
width: action.value
|
|
22
22
|
};
|
|
23
23
|
default:
|
|
24
24
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","
|
|
1
|
+
{"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","height","value","width"],"sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"sourcesContent":["// export const sizeReducer: (state, action) => {\n// switch (action.type) {\n// case 'width':\n// return { ...state, width: action.value }\n// case 'height':\n// return { ...state, height: action.value }\n// default:\n// return { ...state, ...(action?.value || {}) }\n// }\n// },\n\ntype SizeReducerState = {\n height: number\n width: number\n}\n\nexport type SizeReducerAction =\n | {\n type: 'height' | 'width'\n value: number\n }\n | {\n type: 'reset'\n value: {\n height: number\n width: number\n }\n }\n\nexport const sizeReducer = (state: SizeReducerState, action: SizeReducerAction) => {\n switch (action.type) {\n case 'height':\n return { ...state, height: action.value }\n case 'width':\n return { ...state, width: action.value }\n default:\n return { ...state, ...(action?.value || {}) }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA,OAAO,MAAMA,WAAA,GAAcA,CAACC,KAAA,EAAyBC,MAAA;EACnD,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MACH,OAAO;QAAE,GAAGF,KAAK;QAAEG,MAAA,EAAQF,MAAA,CAAOG;MAAM;IAC1C,KAAK;MACH,OAAO;QAAE,GAAGJ,KAAK;QAAEK,KAAA,EAAOJ,MAAA,CAAOG;MAAM;IACzC;MACE,OAAO;QAAE,GAAGJ,KAAK;QAAE,IAAIC,MAAA,EAAQG,KAAA,IAAS,CAAC,CAAC;MAAE;EAChD;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AA2BhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAIjF,OAAO,cAAc,CAAA;AA4ZrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CA8CA,CAAA"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { DocumentControls, DocumentFields, DocumentLocked, DocumentTakeOver, Form, LeaveWithoutSaving, OperationProvider, SetDocumentStepNav, SetDocumentTitle, useAuth, useConfig, useDocumentDrawerContext, useDocumentEvents, useDocumentInfo, useServerFunctions, useTranslation } from '@payloadcms/ui';
|
|
6
|
-
import { handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
|
|
6
|
+
import { abortAndIgnore, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
|
|
7
7
|
import { useRouter } from 'next/navigation.js';
|
|
8
8
|
import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
|
|
9
9
|
import { useLivePreviewContext } from './Context/context.js';
|
|
@@ -85,7 +85,7 @@ const PreviewView = ({
|
|
|
85
85
|
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
86
86
|
const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
|
|
87
87
|
const [showTakeOverModal, setShowTakeOverModal] = useState(false);
|
|
88
|
-
const
|
|
88
|
+
const formStateAbortControllerRef = useRef(new AbortController());
|
|
89
89
|
const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
|
|
90
90
|
const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
|
|
91
91
|
const isLockExpired = Date.now() > lockExpiryTime;
|
|
@@ -119,15 +119,9 @@ const PreviewView = ({
|
|
|
119
119
|
const onChange = useCallback(async ({
|
|
120
120
|
formState: prevFormState
|
|
121
121
|
}) => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
} catch (_err) {
|
|
126
|
-
// swallow error
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
const abortController = new AbortController();
|
|
130
|
-
abortControllerRef.current = abortController;
|
|
122
|
+
abortAndIgnore(formStateAbortControllerRef.current);
|
|
123
|
+
const controller = new AbortController();
|
|
124
|
+
formStateAbortControllerRef.current = controller;
|
|
131
125
|
const currentTime = Date.now();
|
|
132
126
|
const timeSinceLastUpdate = currentTime - editSessionStartTime;
|
|
133
127
|
const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
|
|
@@ -149,7 +143,7 @@ const PreviewView = ({
|
|
|
149
143
|
operation,
|
|
150
144
|
returnLockStatus: isLockingEnabled ? true : false,
|
|
151
145
|
schemaPath,
|
|
152
|
-
signal:
|
|
146
|
+
signal: controller.signal,
|
|
153
147
|
updateLastEdited
|
|
154
148
|
});
|
|
155
149
|
setDocumentIsLocked(true);
|
|
@@ -176,13 +170,6 @@ const PreviewView = ({
|
|
|
176
170
|
// Clean up when the component unmounts or when the document is unlocked
|
|
177
171
|
useEffect(() => {
|
|
178
172
|
return () => {
|
|
179
|
-
if (abortControllerRef.current) {
|
|
180
|
-
try {
|
|
181
|
-
abortControllerRef.current.abort();
|
|
182
|
-
} catch (_err_0) {
|
|
183
|
-
// swallow error
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
173
|
if (!isLockingEnabled) {
|
|
187
174
|
return;
|
|
188
175
|
}
|
|
@@ -203,6 +190,11 @@ const PreviewView = ({
|
|
|
203
190
|
setShowTakeOverModal(false);
|
|
204
191
|
};
|
|
205
192
|
}, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
return () => {
|
|
195
|
+
abortAndIgnore(formStateAbortControllerRef.current);
|
|
196
|
+
};
|
|
197
|
+
});
|
|
206
198
|
const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal &&
|
|
207
199
|
// eslint-disable-next-line react-compiler/react-compiler
|
|
208
200
|
!documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
|