@payloadcms/ui 3.57.0-canary.7 → 3.57.0-internal.1d2ebbc
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/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +2 -4
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts +3 -4
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +28 -41
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +0 -1
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
- package/dist/elements/DocumentLocked/index.js +33 -41
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js +19 -27
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +0 -1
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
- package/dist/elements/FullscreenModal/index.js +0 -1
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.d.ts +7 -1
- package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.js +18 -39
- package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +61 -135
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +1 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/SearchBar/index.scss +0 -4
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +1 -1
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +14 -20
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +28 -44
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +2 -4
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +2 -6
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.scss +9 -11
- package/dist/elements/Toasts/fieldErrors.js +1 -1
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/exports/client/index.js +24 -24
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +0 -1
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +0 -1
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +16 -36
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +5 -1
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Upload/Input.js +20 -20
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/index.js +2 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +0 -8
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +2 -2
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +236 -223
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -33
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +1 -2
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +0 -2
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +0 -6
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +73 -76
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.d.ts +9 -5
- package/dist/forms/useField/types.d.ts.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/providers/LivePreview/context.d.ts +2 -17
- package/dist/providers/LivePreview/context.d.ts.map +1 -1
- package/dist/providers/LivePreview/context.js +2 -3
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.d.ts +2 -2
- package/dist/providers/LivePreview/index.d.ts.map +1 -1
- package/dist/providers/LivePreview/index.js +19 -33
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/RouteCache/index.d.ts.map +1 -1
- package/dist/providers/RouteCache/index.js +25 -62
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts +1 -2
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +0 -2
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +2 -3
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +2 -39
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts +0 -2
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +1 -20
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.js +4 -0
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
- package/dist/utilities/handleTakeOver.d.ts +4 -17
- package/dist/utilities/handleTakeOver.d.ts.map +1 -1
- package/dist/utilities/handleTakeOver.js +2 -18
- package/dist/utilities/handleTakeOver.js.map +1 -1
- package/dist/utilities/renderTable.d.ts +2 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +0 -2
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +13 -48
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/utilities/formatAbsoluteURL.d.ts +0 -8
- package/dist/utilities/formatAbsoluteURL.d.ts.map +0 -1
- package/dist/utilities/formatAbsoluteURL.js +0 -15
- package/dist/utilities/formatAbsoluteURL.js.map +0 -1
- package/dist/utilities/handleLivePreview.d.ts +0 -58
- package/dist/utilities/handleLivePreview.d.ts.map +0 -1
- package/dist/utilities/handleLivePreview.js +0 -96
- package/dist/utilities/handleLivePreview.js.map +0 -1
|
@@ -8,12 +8,10 @@ type BuildFormStateSuccessResult = {
|
|
|
8
8
|
clientConfig?: ClientConfig;
|
|
9
9
|
errors?: never;
|
|
10
10
|
indexPath?: string;
|
|
11
|
-
livePreviewURL?: string;
|
|
12
11
|
lockedState?: LockedState;
|
|
13
12
|
state: FormState;
|
|
14
13
|
};
|
|
15
14
|
type BuildFormStateErrorResult = {
|
|
16
|
-
livePreviewURL?: never;
|
|
17
15
|
lockedState?: never;
|
|
18
16
|
state?: never;
|
|
19
17
|
} & ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAwB9B,CAAA;AAED,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CAgKrC,CAAA"}
|
|
@@ -6,7 +6,6 @@ import { getClientConfig } from './getClientConfig.js';
|
|
|
6
6
|
import { getClientSchemaMap } from './getClientSchemaMap.js';
|
|
7
7
|
import { getSchemaMap } from './getSchemaMap.js';
|
|
8
8
|
import { handleFormStateLocking } from './handleFormStateLocking.js';
|
|
9
|
-
import { handleLivePreview } from './handleLivePreview.js';
|
|
10
9
|
export const buildFormStateHandler = async args => {
|
|
11
10
|
const {
|
|
12
11
|
req
|
|
@@ -57,7 +56,6 @@ export const buildFormState = async args => {
|
|
|
57
56
|
config
|
|
58
57
|
}
|
|
59
58
|
},
|
|
60
|
-
returnLivePreviewURL,
|
|
61
59
|
returnLockStatus,
|
|
62
60
|
schemaPath = collectionSlug || globalSlug,
|
|
63
61
|
select,
|
|
@@ -163,26 +161,9 @@ export const buildFormState = async args => {
|
|
|
163
161
|
updateLastEdited
|
|
164
162
|
});
|
|
165
163
|
}
|
|
166
|
-
|
|
164
|
+
return {
|
|
167
165
|
lockedState: lockedStateResult,
|
|
168
166
|
state: formStateResult
|
|
169
167
|
};
|
|
170
|
-
if (returnLivePreviewURL) {
|
|
171
|
-
const {
|
|
172
|
-
livePreviewURL
|
|
173
|
-
} = await handleLivePreview({
|
|
174
|
-
collectionSlug,
|
|
175
|
-
config,
|
|
176
|
-
data,
|
|
177
|
-
globalSlug,
|
|
178
|
-
req
|
|
179
|
-
});
|
|
180
|
-
// Important: only set this when not undefined,
|
|
181
|
-
// Otherwise it will travel through the network as `$undefined`
|
|
182
|
-
if (livePreviewURL) {
|
|
183
|
-
res.livePreviewURL = livePreviewURL;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return res;
|
|
187
168
|
};
|
|
188
169
|
//# sourceMappingURL=buildFormState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildFormState.js","names":["canAccessAdmin","formatErrors","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","handleLivePreview","buildFormStateHandler","args","req","res","buildFormState","err","payload","logger","error","msg","message","Error","id","idFromArgs","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","readOnly","renderAllFields","i18n","config","returnLivePreviewURL","returnLockStatus","schemaPath","select","skipClientConfigAuth","skipValidation","updateLastEdited","selectMode","undefined","schemaMap","clientSchemaMap","importMap","user","fieldOrEntityConfig","get","fields","length","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","collections","upload","file","lockedStateResult","lockedState","state","livePreviewURL"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { canAccessAdmin, formatErrors } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\nimport { handleLivePreview } from './handleLivePreview.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user: ClientUser | number | string\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n livePreviewURL?: string\n lockedState?: LockedState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n livePreviewURL?: never\n lockedState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n try {\n await canAccessAdmin({ req })\n const res = await buildFormState(args)\n\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new Error('Unauthorized')\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLivePreviewURL,\n returnLockStatus,\n schemaPath = collectionSlug || globalSlug,\n select,\n skipClientConfigAuth,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n if (!collectionSlug && !globalSlug) {\n throw new Error('Either collectionSlug or globalSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n user: skipClientConfigAuth ? true : req.user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n const res: BuildFormStateSuccessResult = {\n lockedState: lockedStateResult,\n state: formStateResult,\n }\n\n if (returnLivePreviewURL) {\n const { livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data,\n globalSlug,\n req,\n })\n\n // Important: only set this when not undefined,\n // Otherwise it will travel through the network as `$undefined`\n if (livePreviewURL) {\n res.livePreviewURL = livePreviewURL\n }\n }\n\n return res\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildFormState.js","names":["canAccessAdmin","formatErrors","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","buildFormStateHandler","args","req","res","buildFormState","err","payload","logger","error","msg","message","Error","id","idFromArgs","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","readOnly","renderAllFields","i18n","config","returnLockStatus","schemaPath","select","skipClientConfigAuth","skipValidation","updateLastEdited","selectMode","undefined","schemaMap","clientSchemaMap","importMap","user","fieldOrEntityConfig","get","fields","length","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","collections","upload","file","lockedStateResult","lockedState","state"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { canAccessAdmin, formatErrors } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user: ClientUser | number | string\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n lockedState?: LockedState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n lockedState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n try {\n await canAccessAdmin({ req })\n const res = await buildFormState(args)\n\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new Error('Unauthorized')\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLockStatus,\n schemaPath = collectionSlug || globalSlug,\n select,\n skipClientConfigAuth,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n if (!collectionSlug && !globalSlug) {\n throw new Error('Either collectionSlug or globalSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n user: skipClientConfigAuth ? true : req.user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n return {\n lockedState: lockedStateResult,\n state: formStateResult,\n }\n}\n"],"mappings":"AASA,SAASA,cAAc,EAAEC,YAAY,QAAQ;AAC7C,SAASC,aAAa,EAAEC,oBAAoB,QAAQ;AAEpD,SAASC,uBAAuB,QAAQ;AACxC,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,YAAY,QAAQ;AAC7B,SAASC,sBAAsB,QAAQ;AA4BvC,OAAO,MAAMC,qBAAA,GAGT,MAAOC,IAAA;EACT,MAAM;IAAEC;EAAG,CAAE,GAAGD,IAAA;EAEhB,IAAI;IACF,MAAMX,cAAA,CAAe;MAAEY;IAAI;IAC3B,MAAMC,GAAA,GAAM,MAAMC,cAAA,CAAeH,IAAA;IAEjC,OAAOE,GAAA;EACT,EAAE,OAAOE,GAAA,EAAK;IACZH,GAAA,CAAII,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;MAAEH,GAAA;MAAKI,GAAA,EAAK;IAAyC;IAE9E,IAAIJ,GAAA,CAAIK,OAAO,KAAK,8CAA8C;MAChE,OAAO;QACLA,OAAA,EAASL,GAAA,CAAIK;MACf;IACF;IAEA,IAAIL,GAAA,CAAIK,OAAO,KAAK,gBAAgB;MAClC,MAAM,IAAIC,KAAA,CAAM;IAClB;IAEA,OAAOpB,YAAA,CAAac,GAAA;EACtB;AACF;AAEA,OAAO,MAAMD,cAAA,GAAiB,MAC5BH,IAAA;EAEA,MAAM;IACJW,EAAA,EAAIC,UAAU;IACdC,cAAc;IACdC,IAAA,EAAMC,YAAY;IAClBC,cAAc;IACdC,cAAc;IACdC,iBAAiB;IACjBC,SAAS;IACTC,UAAU;IACVC,gBAAgB;IAChBC,qBAAqB;IACrBC,QAAQ;IACRC,SAAS;IACTC,QAAQ;IACRC,eAAe;IACfzB,GAAG;IACHA,GAAA,EAAK;MACH0B,IAAI;MACJtB,OAAO;MACPA,OAAA,EAAS;QAAEuB;MAAM;IAAE,CACpB;IACDC,gBAAgB;IAChBC,UAAA,GAAajB,cAAA,IAAkBO,UAAU;IACzCW,MAAM;IACNC,oBAAoB;IACpBC,cAAc;IACdC;EAAgB,CACjB,GAAGlC,IAAA;EAEJ,MAAMmC,UAAA,GAAaJ,MAAA,GAASxC,aAAA,CAAcwC,MAAA,IAAUK,SAAA;EAEpD,IAAI,CAACvB,cAAA,IAAkB,CAACO,UAAA,EAAY;IAClC,MAAM,IAAIV,KAAA,CAAM;EAClB;EAEA,MAAM2B,SAAA,GAAYxC,YAAA,CAAa;IAC7BgB,cAAA;IACAe,MAAA;IACAR,UAAA;IACAO;EACF;EAEA,MAAMW,eAAA,GAAkB1C,kBAAA,CAAmB;IACzCiB,cAAA;IACAe,MAAA,EAAQjC,eAAA,CAAgB;MACtBiC,MAAA;MACAD,IAAA;MACAY,SAAA,EAAWtC,GAAA,CAAII,OAAO,CAACkC,SAAS;MAChCC,IAAA,EAAMR,oBAAA,GAAuB,OAAO/B,GAAA,CAAIuC;IAC1C;IACApB,UAAA;IACAO,IAAA;IACAtB,OAAA;IACAgC;EACF;EAEA,MAAM1B,EAAA,GAAKE,cAAA,GAAiBD,UAAA,GAAawB,SAAA;EACzC,MAAMK,mBAAA,GAAsBJ,SAAA,CAAUK,GAAG,CAACZ,UAAA;EAE1C,IAAI,CAACW,mBAAA,EAAqB;IACxB,MAAM,IAAI/B,KAAA,CAAM,mBAAmBoB,UAAA,yBAAmC;EACxE;EAEA,IACE,CAAC,EAAE,YAAYW,mBAAkB,KAC/B,CAACA,mBAAA,CAAoBE,MAAM,IAC3B,CAACF,mBAAA,CAAoBE,MAAM,CAACC,MAAM,KACpC,UAAUH,mBAAA,IACVA,mBAAA,CAAoBI,IAAI,KAAK,UAC7B;IACA,MAAM,IAAInC,KAAA,CACR,0CAA0CoB,UAAA,mCAA6C;EAE3F;EAEA;EACA;EACA,MAAMhB,IAAA,GAAOC,YAAA,IAAgBvB,oBAAA,CAAqB2B,SAAA,EAAW;EAE7D,IAAI2B,YAAA,GAAeV,SAAA;EAEnB,IAAIlB,iBAAA,EAAmB;IACrB4B,YAAA,GAAetD,oBAAA,CAAqB0B,iBAAA,EAAmB;EACzD;EAEA,IAAI6B,SAAA,GAAY1B,gBAAA;EAEhB,IAAIC,qBAAA,EAAuB;IACzByB,SAAA,GAAYvD,oBAAA,CAAqB8B,qBAAA,EAAuB;EAC1D;EAEA;;;;;;;;;EASA,MAAMqB,MAAA,GAASK,KAAA,CAAMC,OAAO,CAACR,mBAAA,IACzBA,mBAAA,GACA,YAAYA,mBAAA,GACVA,mBAAA,CAAoBE,MAAM,GAC1B,CAACF,mBAAA,CAAoB;EAE3B;EACA;EACA,IAAI,CAAC3B,IAAA,CAAKH,EAAE,IAAIA,EAAA,EAAI;IAClBG,IAAA,CAAKH,EAAE,GAAGA,EAAA;EACZ;EAEA,MAAMuC,eAAA,GAAkB,MAAMzD,uBAAA,CAAwB;IACpDkB,EAAA;IACAwC,oBAAA,EAAsBb,eAAA;IACtBzB,cAAA;IACAC,IAAA;IACAgC,YAAA;IACAH,MAAA;IACAS,cAAA,EAAgBf,SAAA;IAChBhB,gBAAA,EAAkB0B,SAAA;IAClBxB,QAAA;IACAC,SAAA;IACA6B,WAAA,EAAarC,cAAA,EAAgB2B,MAAA,IAAU,CAAC;IACxCW,WAAA,EAAarC,cAAA,IAAkB;MAAE0B,MAAA,EAAQ,CAAC;IAAE;IAC5CY,iBAAA,EAAmBpC,SAAA;IACnBM,QAAA;IACAC,eAAA;IACA8B,aAAA,EAAe9D,WAAA;IACfO,GAAA;IACA6B,UAAA;IACAC,MAAA;IACAI,UAAA;IACAF;EACF;EAEA;EACA,IAAIpB,cAAA,IAAkBM,SAAA,EAAW;IAC/B,IAAId,OAAA,CAAQoD,WAAW,CAAC5C,cAAA,CAAe,EAAEe,MAAA,EAAQ8B,MAAA,IAAUvC,SAAA,CAAUwC,IAAI,EAAE;MACzET,eAAA,CAAgBS,IAAI,GAAGxC,SAAA,CAAUwC,IAAI;IACvC;EACF;EAEA,IAAIC,iBAAA;EAEJ,IAAI/B,gBAAA,EAAkB;IACpB+B,iBAAA,GAAoB,MAAM9D,sBAAA,CAAuB;MAC/Ca,EAAA;MACAE,cAAA;MACAO,UAAA;MACAnB,GAAA;MACAiC;IACF;EACF;EAEA,OAAO;IACL2B,WAAA,EAAaD,iBAAA;IACbE,KAAA,EAAOZ;EACT;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderResultsComponentAndData.d.ts","sourceRoot":"","sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,oCAAoC,EACpC,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAWxE,KAAK,sCAAsC,GAAG;IAC5C,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,yBAAyB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5C,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAChC,CAAA;AAED,KAAK,2CAA2C,GAAG;IACjD,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,sBAAsB,CAAC,EAAE,KAAK,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,cAAc,CAClE,oCAAoC,EACpC,OAAO,CAAC,2CAA2C,GAAG,sCAAsC,CAAC,CAe9F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,gIAQ1C,oCAAoC,KAAG,OAAO,CAAC,sCAAsC,
|
|
1
|
+
{"version":3,"file":"getFolderResultsComponentAndData.d.ts","sourceRoot":"","sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,oCAAoC,EACpC,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAWxE,KAAK,sCAAsC,GAAG;IAC5C,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,yBAAyB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5C,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAChC,CAAA;AAED,KAAK,2CAA2C,GAAG;IACjD,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,sBAAsB,CAAC,EAAE,KAAK,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,cAAc,CAClE,oCAAoC,EACpC,OAAO,CAAC,2CAA2C,GAAG,sCAAsC,CAAC,CAe9F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,gIAQ1C,oCAAoC,KAAG,OAAO,CAAC,sCAAsC,CAmIvF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderResultsComponentAndData.js","names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","combineWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","browseByFolder","collectionsToDisplay","activeCollectionSlugs","displayAs","folderAssignedCollections","folderID","undefined","sort","config","folders","emptyQuery","id","exists","collectionSlug","documentWhere","Array","isArray","length","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","collectionSpecific","or","folderType","in","collectionConstraints","push","folderData","FolderResultsComponent","_jsxs","subfolders","_jsx","_Fragment","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared'\n\nimport {\n FolderFileTable,\n ItemCardGrid,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir\n} from '../exports/client/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n folderAssignedCollections?: CollectionSlug[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error getting the folder results component and data`,\n })\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n */\nexport const getFolderResultsComponentAndData = async ({\n browseByFolder = false,\n collectionsToDisplay: activeCollectionSlugs,\n displayAs,\n folderAssignedCollections,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n const emptyQuery = {\n id: {\n exists: false,\n },\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n let folderWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n folderWhere = combineWhereConstraints([\n folderWhere,\n Array.isArray(folderAssignedCollections) &&\n folderAssignedCollections.length &&\n payload.config.folders.collectionSpecific\n ? {\n or: [\n {\n folderType: {\n in: folderAssignedCollections,\n },\n },\n // if the folderType is not set, it means it accepts all collections and should appear in the results\n {\n folderType: {\n exists: false,\n },\n },\n ],\n }\n : undefined,\n ])\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n sort,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n folderAssignedCollections: folderData.folderAssignedCollections,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"getFolderResultsComponentAndData.js","names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","combineWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","browseByFolder","collectionsToDisplay","activeCollectionSlugs","displayAs","folderAssignedCollections","folderID","undefined","sort","config","folders","emptyQuery","id","exists","collectionSlug","documentWhere","Array","isArray","length","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","collectionSpecific","or","folderType","in","equals","collectionConstraints","push","folderData","FolderResultsComponent","_jsxs","subfolders","_jsx","_Fragment","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared'\n\nimport {\n FolderFileTable,\n ItemCardGrid,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir\n} from '../exports/client/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n folderAssignedCollections?: CollectionSlug[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error getting the folder results component and data`,\n })\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n */\nexport const getFolderResultsComponentAndData = async ({\n browseByFolder = false,\n collectionsToDisplay: activeCollectionSlugs,\n displayAs,\n folderAssignedCollections,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n const emptyQuery = {\n id: {\n exists: false,\n },\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n let folderWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n folderWhere = combineWhereConstraints([\n folderWhere,\n Array.isArray(folderAssignedCollections) &&\n folderAssignedCollections.length &&\n payload.config.folders.collectionSpecific\n ? {\n or: [\n {\n folderType: {\n in: folderAssignedCollections,\n },\n },\n // if the folderType is not set, it means it accepts all collections and should appear in the results\n {\n folderType: {\n exists: false,\n },\n },\n {\n folderType: {\n equals: null,\n },\n },\n ],\n }\n : undefined,\n ])\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n sort,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n folderAssignedCollections: folderData.folderAssignedCollections,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
import type { ClientUser } from 'payload';
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
documentLockStateRef: React.RefObject<{
|
|
6
|
-
hasShownLockedModal: boolean;
|
|
7
|
-
isLocked: boolean;
|
|
8
|
-
user: ClientUser | number | string;
|
|
9
|
-
}>;
|
|
10
|
-
globalSlug?: string;
|
|
11
|
-
id: number | string;
|
|
12
|
-
isLockingEnabled: boolean;
|
|
13
|
-
isWithinDoc: boolean;
|
|
14
|
-
setCurrentEditor: (value: React.SetStateAction<ClientUser | number | string>) => void;
|
|
15
|
-
setIsReadOnlyForIncomingUser?: (value: React.SetStateAction<boolean>) => void;
|
|
16
|
-
updateDocumentEditor: (docID: number | string, slug: string, user: ClientUser | number | string) => Promise<void>;
|
|
2
|
+
export declare const handleTakeOver: (id: number | string, collectionSlug: string, globalSlug: string, user: ClientUser | number | string, isWithinDoc: boolean, updateDocumentEditor: (docID: number | string, slug: string, user: ClientUser | number | string) => Promise<void>, setCurrentEditor: (value: React.SetStateAction<ClientUser | number | string>) => void, documentLockStateRef: React.RefObject<{
|
|
3
|
+
hasShownLockedModal: boolean;
|
|
4
|
+
isLocked: boolean;
|
|
17
5
|
user: ClientUser | number | string;
|
|
18
|
-
}
|
|
19
|
-
export declare const handleTakeOver: ({ id, clearRouteCache, collectionSlug, documentLockStateRef, globalSlug, isLockingEnabled, isWithinDoc, setCurrentEditor, setIsReadOnlyForIncomingUser, updateDocumentEditor, user, }: HandleTakeOverParams) => Promise<void>;
|
|
6
|
+
}>, isLockingEnabled: boolean, setIsReadOnlyForIncomingUser?: (value: React.SetStateAction<boolean>) => void) => void;
|
|
20
7
|
//# sourceMappingURL=handleTakeOver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTakeOver.d.ts","sourceRoot":"","sources":["../../src/utilities/handleTakeOver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,MAAM,
|
|
1
|
+
{"version":3,"file":"handleTakeOver.d.ts","sourceRoot":"","sources":["../../src/utilities/handleTakeOver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,cAAc,OACrB,MAAM,GAAG,MAAM,kBACH,MAAM,cACV,MAAM,QACZ,UAAU,GAAG,MAAM,GAAG,MAAM,eACrB,OAAO,wBACE,CACpB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,KAC/B,OAAO,CAAC,IAAI,CAAC,oBACA,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,wBAC/D,KAAK,CAAC,SAAS,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACnC,CAAC,oBACgB,OAAO,iCACM,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,KAC5E,IA6BF,CAAA"}
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
export const handleTakeOver =
|
|
2
|
-
id,
|
|
3
|
-
clearRouteCache,
|
|
4
|
-
collectionSlug,
|
|
5
|
-
documentLockStateRef,
|
|
6
|
-
globalSlug,
|
|
7
|
-
isLockingEnabled,
|
|
8
|
-
isWithinDoc,
|
|
9
|
-
setCurrentEditor,
|
|
10
|
-
setIsReadOnlyForIncomingUser,
|
|
11
|
-
updateDocumentEditor,
|
|
12
|
-
user
|
|
13
|
-
}) => {
|
|
1
|
+
export const handleTakeOver = (id, collectionSlug, globalSlug, user, isWithinDoc, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled, setIsReadOnlyForIncomingUser) => {
|
|
14
2
|
if (!isLockingEnabled) {
|
|
15
3
|
return;
|
|
16
4
|
}
|
|
17
5
|
try {
|
|
18
6
|
// Call updateDocumentEditor to update the document's owner to the current user
|
|
19
|
-
|
|
7
|
+
void updateDocumentEditor(id, collectionSlug ?? globalSlug, user);
|
|
20
8
|
if (!isWithinDoc) {
|
|
21
9
|
documentLockStateRef.current.hasShownLockedModal = true;
|
|
22
10
|
}
|
|
@@ -31,10 +19,6 @@ export const handleTakeOver = async ({
|
|
|
31
19
|
if (isWithinDoc && setIsReadOnlyForIncomingUser) {
|
|
32
20
|
setIsReadOnlyForIncomingUser(false);
|
|
33
21
|
}
|
|
34
|
-
// Need to clear the route cache to refresh the page and update readOnly state for server rendered components
|
|
35
|
-
if (clearRouteCache) {
|
|
36
|
-
clearRouteCache();
|
|
37
|
-
}
|
|
38
22
|
} catch (error) {
|
|
39
23
|
// eslint-disable-next-line no-console
|
|
40
24
|
console.error('Error during document takeover:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleTakeOver.js","names":["handleTakeOver","id","
|
|
1
|
+
{"version":3,"file":"handleTakeOver.js","names":["handleTakeOver","id","collectionSlug","globalSlug","user","isWithinDoc","updateDocumentEditor","setCurrentEditor","documentLockStateRef","isLockingEnabled","setIsReadOnlyForIncomingUser","current","hasShownLockedModal","isLocked","error","console"],"sources":["../../src/utilities/handleTakeOver.tsx"],"sourcesContent":["import type { ClientUser } from 'payload'\n\nexport const handleTakeOver = (\n id: number | string,\n collectionSlug: string,\n globalSlug: string,\n user: ClientUser | number | string,\n isWithinDoc: boolean,\n updateDocumentEditor: (\n docID: number | string,\n slug: string,\n user: ClientUser | number | string,\n ) => Promise<void>,\n setCurrentEditor: (value: React.SetStateAction<ClientUser | number | string>) => void,\n documentLockStateRef: React.RefObject<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n }>,\n isLockingEnabled: boolean,\n setIsReadOnlyForIncomingUser?: (value: React.SetStateAction<boolean>) => void,\n): void => {\n if (!isLockingEnabled) {\n return\n }\n\n try {\n // Call updateDocumentEditor to update the document's owner to the current user\n void updateDocumentEditor(id, collectionSlug ?? globalSlug, user)\n\n if (!isWithinDoc) {\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n // Update the locked state to reflect the current user as the owner\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal,\n isLocked: true,\n user,\n }\n setCurrentEditor(user)\n\n // If this is a takeover within the document, ensure the document is editable\n if (isWithinDoc && setIsReadOnlyForIncomingUser) {\n setIsReadOnlyForIncomingUser(false)\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error during document takeover:', error)\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAA,GAAiBA,CAC5BC,EAAA,EACAC,cAAA,EACAC,UAAA,EACAC,IAAA,EACAC,WAAA,EACAC,oBAAA,EAKAC,gBAAA,EACAC,oBAAA,EAKAC,gBAAA,EACAC,4BAAA;EAEA,IAAI,CAACD,gBAAA,EAAkB;IACrB;EACF;EAEA,IAAI;IACF;IACA,KAAKH,oBAAA,CAAqBL,EAAA,EAAIC,cAAA,IAAkBC,UAAA,EAAYC,IAAA;IAE5D,IAAI,CAACC,WAAA,EAAa;MAChBG,oBAAA,CAAqBG,OAAO,CAACC,mBAAmB,GAAG;IACrD;IAEA;IACAJ,oBAAA,CAAqBG,OAAO,GAAG;MAC7BC,mBAAA,EAAqBJ,oBAAA,CAAqBG,OAAO,EAAEC,mBAAA;MACnDC,QAAA,EAAU;MACVT;IACF;IACAG,gBAAA,CAAiBH,IAAA;IAEjB;IACA,IAAIC,WAAA,IAAeK,4BAAA,EAA8B;MAC/CA,4BAAA,CAA6B;IAC/B;EACF,EAAE,OAAOI,KAAA,EAAO;IACd;IACAC,OAAA,CAAQD,KAAK,CAAC,mCAAmCA,KAAA;EACnD;AACF","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ClientCollectionConfig, ClientConfig, CollectionConfig, Column, ColumnPreference, Field, ImportMap, ListQuery, PaginatedDocs, Payload,
|
|
1
|
+
import type { ClientCollectionConfig, ClientConfig, CollectionConfig, Column, ColumnPreference, Field, ImportMap, ListQuery, PaginatedDocs, Payload, SanitizedCollectionConfig, ViewTypes } from 'payload';
|
|
2
2
|
import { type I18nClient } from '@payloadcms/translations';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
export declare const renderFilters: (fields: Field[], importMap: ImportMap) => Map<string, React.ReactNode>;
|
|
5
|
-
export declare const renderTable: ({ clientCollectionConfig, clientConfig, collectionConfig, collections, columns, customCellProps, data, enableRowSelections, groupByFieldPath, groupByValue, heading, i18n, key, orderableFieldName, payload, query, renderRowTypes,
|
|
5
|
+
export declare const renderTable: ({ clientCollectionConfig, clientConfig, collectionConfig, collections, columns, customCellProps, data, enableRowSelections, groupByFieldPath, groupByValue, heading, i18n, key, orderableFieldName, payload, query, renderRowTypes, tableAppearance, useAsTitle, viewType, }: {
|
|
6
6
|
clientCollectionConfig?: ClientCollectionConfig;
|
|
7
7
|
clientConfig?: ClientConfig;
|
|
8
8
|
collectionConfig?: SanitizedCollectionConfig;
|
|
@@ -21,7 +21,6 @@ export declare const renderTable: ({ clientCollectionConfig, clientConfig, colle
|
|
|
21
21
|
payload: Payload;
|
|
22
22
|
query?: ListQuery;
|
|
23
23
|
renderRowTypes?: boolean;
|
|
24
|
-
req?: PayloadRequest;
|
|
25
24
|
tableAppearance?: "condensed" | "default";
|
|
26
25
|
useAsTitle: CollectionConfig["admin"]["useAsTitle"];
|
|
27
26
|
viewType?: ViewTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,EACP,
|
|
1
|
+
{"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EAEZ,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,OAAO,EACP,yBAAyB,EACzB,SAAS,EACV,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,KAAK,MAAM,OAAO,CAAA;AAqBzB,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,iRAqBrB;IACD,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAC/C,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CAoMvB,CAAA"}
|
|
@@ -36,7 +36,6 @@ export const renderTable = ({
|
|
|
36
36
|
payload,
|
|
37
37
|
query,
|
|
38
38
|
renderRowTypes,
|
|
39
|
-
req,
|
|
40
39
|
tableAppearance,
|
|
41
40
|
useAsTitle,
|
|
42
41
|
viewType
|
|
@@ -79,7 +78,6 @@ export const renderTable = ({
|
|
|
79
78
|
// sortColumnProps,
|
|
80
79
|
customCellProps,
|
|
81
80
|
payload,
|
|
82
|
-
req,
|
|
83
81
|
serverFields,
|
|
84
82
|
useAsTitle,
|
|
85
83
|
viewType
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFields","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","customCellProps","data","enableRowSelections","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","req","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","className","filter","join","_jsxs","totalDocs","appearance"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n PayloadRequest,\n SanitizedCollectionConfig,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns,\n customCellProps,\n data,\n enableRowSelections,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n req,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns: ColumnPreference[]\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n req?: PayloadRequest\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(collectionConfig?.admin?.groupBy && query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFields(clientCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n\n for (const field of filterFields(serverCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'i18n'\n | 'payload'\n | 'req'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n req,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((_, i) => (\n <SelectRow key={i} rowData={data?.docs[i]} />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n <GroupByPageControls\n collectionConfig={clientCollectionConfig}\n data={data}\n groupByValue={groupByValue}\n />\n </SelectionProvider>\n </div>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </div>\n ),\n }\n }\n\n columnsToUse.unshift({\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </div>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","React","RenderServerComponent","GroupByHeader","GroupByPageControls","OrderableTable","Pill","SelectAll","SelectionProvider","SelectRow","SortHeader","SortRow","Table","filterFields","buildColumnState","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columns","customCellProps","data","enableRowSelections","groupByFieldPath","groupByValue","heading","i18n","key","orderableFieldName","payload","query","renderRowTypes","tableAppearance","useAsTitle","viewType","columnState","clientFields","serverFields","isPolymorphic","isGroupingBy","Boolean","groupBy","collection","find","each","slug","some","push","serverCollectionConfig","config","sharedArgs","collectionSlug","undefined","dataType","docs","columnsToUse","unshift","accessor","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","size","relationTo","labels","singular","_","rowData","className","filter","join","_jsxs","totalDocs","appearance"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Column,\n ColumnPreference,\n Field,\n ImportMap,\n ListQuery,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n ViewTypes,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React from 'react'\n\nimport type { BuildColumnStateArgs } from '../providers/TableColumns/buildColumnState/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport {\n GroupByHeader,\n GroupByPageControls,\n OrderableTable,\n Pill,\n SelectAll,\n SelectionProvider,\n SelectRow,\n SortHeader,\n SortRow,\n Table,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- these MUST reference the exports dir: https://github.com/payloadcms/payload/issues/12002#issuecomment-2791493587\n} from '../exports/client/index.js'\nimport { filterFields } from '../providers/TableColumns/buildColumnState/filterFields.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columns,\n customCellProps,\n data,\n enableRowSelections,\n groupByFieldPath,\n groupByValue,\n heading,\n i18n,\n key = 'table',\n orderableFieldName,\n payload,\n query,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n viewType,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columns: ColumnPreference[]\n customCellProps?: Record<string, unknown>\n data?: PaginatedDocs | undefined\n drawerSlug?: string\n enableRowSelections: boolean\n groupByFieldPath?: string\n groupByValue?: string\n heading?: string\n i18n: I18nClient\n key?: string\n orderableFieldName: string\n payload: Payload\n query?: ListQuery\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n viewType?: ViewTypes\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n let clientFields: ClientField[] = clientCollectionConfig?.fields || []\n let serverFields: Field[] = collectionConfig?.fields || []\n const isPolymorphic = collections\n\n const isGroupingBy = Boolean(collectionConfig?.admin?.groupBy && query?.groupBy)\n\n if (isPolymorphic) {\n clientFields = []\n serverFields = []\n\n for (const collection of collections) {\n const clientCollectionConfig = clientConfig.collections.find(\n (each) => each.slug === collection,\n )\n\n for (const field of filterFields(clientCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (clientFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n clientFields.push(field)\n }\n\n const serverCollectionConfig = payload.collections[collection].config\n\n for (const field of filterFields(serverCollectionConfig.fields)) {\n if (fieldAffectsData(field)) {\n if (serverFields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n serverFields.push(field)\n }\n }\n }\n\n const sharedArgs: Pick<\n BuildColumnStateArgs,\n | 'clientFields'\n | 'columns'\n | 'customCellProps'\n | 'enableRowSelections'\n | 'i18n'\n | 'payload'\n | 'serverFields'\n | 'useAsTitle'\n | 'viewType'\n > = {\n clientFields,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n payload,\n serverFields,\n useAsTitle,\n viewType,\n }\n\n if (isPolymorphic) {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: undefined,\n dataType: 'polymorphic',\n docs: data?.docs || [],\n })\n } else {\n columnState = buildColumnState({\n ...sharedArgs,\n collectionSlug: clientCollectionConfig.slug,\n dataType: 'monomorphic',\n docs: data?.docs || [],\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: (data?.docs || []).map((doc, i) => (\n <Pill key={i} size=\"small\">\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: (data?.docs || []).map((_, i) => (\n <SelectRow key={i} rowData={data?.docs[i]} />\n )),\n } as Column)\n }\n\n if (isGroupingBy) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div\n className={['table-wrap', groupByValue !== undefined && `table-wrap--group-by`]\n .filter(Boolean)\n .join(' ')}\n key={key}\n >\n <SelectionProvider docs={data?.docs || []} totalDocs={data?.totalDocs || 0}>\n <GroupByHeader\n collectionConfig={clientCollectionConfig}\n groupByFieldPath={groupByFieldPath}\n groupByValue={groupByValue}\n heading={heading}\n />\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n <GroupByPageControls\n collectionConfig={clientCollectionConfig}\n data={data}\n groupByValue={groupByValue}\n />\n </SelectionProvider>\n </div>\n ),\n }\n }\n\n if (!orderableFieldName) {\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <Table appearance={tableAppearance} columns={columnsToUse} data={data?.docs || []} />\n </div>\n ),\n }\n }\n\n columnsToUse.unshift({\n accessor: '_dragHandle',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SortHeader />,\n renderedCells: (data?.docs || []).map((_, i) => <SortRow key={i} />),\n } as Column)\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: (\n <div className=\"table-wrap\" key={key}>\n <OrderableTable\n appearance={tableAppearance}\n collection={clientCollectionConfig}\n columns={columnsToUse}\n data={data?.docs || []}\n />\n </div>\n ),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAIlE,OAAO,KAAsE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAIlE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAkC1F,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,aAAa,GAAG;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAKD,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,EACpB,cAAc,GACf,EAAE,uBAAuB,qBAumBzB"}
|
package/dist/views/Edit/index.js
CHANGED
|
@@ -21,7 +21,6 @@ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
|
21
21
|
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
22
22
|
import { useLivePreviewContext } from '../../providers/LivePreview/context.js';
|
|
23
23
|
import { OperationProvider } from '../../providers/Operation/index.js';
|
|
24
|
-
import { useRouteCache } from '../../providers/RouteCache/index.js';
|
|
25
24
|
import { useRouteTransition } from '../../providers/RouteTransition/index.js';
|
|
26
25
|
import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
|
|
27
26
|
import { UploadControlsProvider } from '../../providers/UploadControls/index.js';
|
|
@@ -74,7 +73,6 @@ export function DefaultEditView({
|
|
|
74
73
|
initialState,
|
|
75
74
|
isEditing,
|
|
76
75
|
isInitializing,
|
|
77
|
-
isLocked,
|
|
78
76
|
isTrashed,
|
|
79
77
|
lastUpdateTime,
|
|
80
78
|
redirectAfterCreate,
|
|
@@ -134,15 +132,10 @@ export function DefaultEditView({
|
|
|
134
132
|
const {
|
|
135
133
|
startRouteTransition
|
|
136
134
|
} = useRouteTransition();
|
|
137
|
-
const {
|
|
138
|
-
clearRouteCache
|
|
139
|
-
} = useRouteCache();
|
|
140
135
|
const {
|
|
141
136
|
isLivePreviewEnabled,
|
|
142
137
|
isLivePreviewing,
|
|
143
|
-
previewWindowType
|
|
144
|
-
setURL: setLivePreviewURL,
|
|
145
|
-
typeofLivePreviewURL
|
|
138
|
+
previewWindowType
|
|
146
139
|
} = useLivePreviewContext();
|
|
147
140
|
const abortOnChangeRef = useRef(null);
|
|
148
141
|
const abortOnSaveRef = useRef(null);
|
|
@@ -217,14 +210,19 @@ export function DefaultEditView({
|
|
|
217
210
|
}
|
|
218
211
|
}
|
|
219
212
|
}, [collectionSlug, documentIsLocked, documentLockState, globalSlug, id, isLockingEnabled, setCurrentEditor, setDocumentIsLocked, unlockDocument, user?.id]);
|
|
220
|
-
const onSave = useCallback(async (json,
|
|
213
|
+
const onSave = useCallback(async (json, options) => {
|
|
221
214
|
const {
|
|
222
215
|
context,
|
|
223
216
|
formState
|
|
224
|
-
} =
|
|
217
|
+
} = options || {};
|
|
225
218
|
const controller = handleAbortRef(abortOnSaveRef);
|
|
226
219
|
const document = json?.doc || json?.result;
|
|
227
220
|
const updatedAt = document?.updatedAt || new Date().toISOString();
|
|
221
|
+
reportUpdate({
|
|
222
|
+
id,
|
|
223
|
+
entitySlug,
|
|
224
|
+
updatedAt
|
|
225
|
+
});
|
|
228
226
|
// If we're editing the doc of the logged-in user,
|
|
229
227
|
// Refresh the cookie to get new permissions
|
|
230
228
|
if (user && collectionSlug === userSlug && id === user.id) {
|
|
@@ -263,7 +261,6 @@ export function DefaultEditView({
|
|
|
263
261
|
if (id || globalSlug) {
|
|
264
262
|
const docPreferences = await getDocPreferences();
|
|
265
263
|
const {
|
|
266
|
-
livePreviewURL,
|
|
267
264
|
state
|
|
268
265
|
} = await getFormState({
|
|
269
266
|
id,
|
|
@@ -275,7 +272,6 @@ export function DefaultEditView({
|
|
|
275
272
|
globalSlug,
|
|
276
273
|
operation,
|
|
277
274
|
renderAllFields: false,
|
|
278
|
-
returnLivePreviewURL: isLivePreviewEnabled && typeofLivePreviewURL === 'function',
|
|
279
275
|
returnLockStatus: false,
|
|
280
276
|
schemaPath: schemaPathSegments.join('.'),
|
|
281
277
|
signal: controller.signal,
|
|
@@ -285,18 +281,10 @@ export function DefaultEditView({
|
|
|
285
281
|
if (isLockingEnabled) {
|
|
286
282
|
setDocumentIsLocked(false);
|
|
287
283
|
}
|
|
288
|
-
if (isLivePreviewEnabled) {
|
|
289
|
-
setLivePreviewURL(livePreviewURL);
|
|
290
|
-
}
|
|
291
|
-
reportUpdate({
|
|
292
|
-
id,
|
|
293
|
-
entitySlug,
|
|
294
|
-
updatedAt
|
|
295
|
-
});
|
|
296
284
|
abortOnSaveRef.current = null;
|
|
297
285
|
return state;
|
|
298
286
|
}
|
|
299
|
-
}, [reportUpdate, id, entitySlug, user, collectionSlug, userSlug, setLastUpdateTime, setData, onSaveFromContext, isEditing, depth, redirectAfterCreate,
|
|
287
|
+
}, [reportUpdate, id, entitySlug, user, collectionSlug, userSlug, setLastUpdateTime, setData, onSaveFromContext, isEditing, depth, redirectAfterCreate, getDocPermissions, globalSlug, refreshCookieAsync, incrementVersionCount, adminRoute, locale, startRouteTransition, router, resetUploadEdits, getDocPreferences, getFormState, docPermissions, operation, schemaPathSegments, isLockingEnabled, setDocumentIsLocked]);
|
|
300
288
|
const onChange = useCallback(async ({
|
|
301
289
|
formState: prevFormState,
|
|
302
290
|
submitted
|
|
@@ -337,7 +325,7 @@ export function DefaultEditView({
|
|
|
337
325
|
}
|
|
338
326
|
abortOnChangeRef.current = null;
|
|
339
327
|
return state_0;
|
|
340
|
-
}, [
|
|
328
|
+
}, [id, collectionSlug, getDocPreferences, getFormState, globalSlug, handleDocumentLocking, isLockingEnabled, operation, schemaPathSegments, docPermissions, editSessionStartTime]);
|
|
341
329
|
// Clean up when the component unmounts or when the document is unlocked
|
|
342
330
|
useEffect(() => {
|
|
343
331
|
return () => {
|
|
@@ -383,18 +371,7 @@ export function DefaultEditView({
|
|
|
383
371
|
setIsReadOnlyForIncomingUser(true);
|
|
384
372
|
setShowTakeOverModal(false);
|
|
385
373
|
},
|
|
386
|
-
onTakeOver: () => handleTakeOver(
|
|
387
|
-
id,
|
|
388
|
-
clearRouteCache,
|
|
389
|
-
collectionSlug,
|
|
390
|
-
documentLockStateRef: documentLockState,
|
|
391
|
-
globalSlug,
|
|
392
|
-
isLockingEnabled,
|
|
393
|
-
isWithinDoc: false,
|
|
394
|
-
setCurrentEditor,
|
|
395
|
-
updateDocumentEditor,
|
|
396
|
-
user
|
|
397
|
-
}),
|
|
374
|
+
onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockState, isLockingEnabled),
|
|
398
375
|
updatedAt: lastUpdateTime,
|
|
399
376
|
user: currentEditor
|
|
400
377
|
}), isLockingEnabled && showTakeOverModal && /*#__PURE__*/_jsx(DocumentTakeOver, {
|
|
@@ -446,19 +423,7 @@ export function DefaultEditView({
|
|
|
446
423
|
onDuplicate: onDuplicate,
|
|
447
424
|
onRestore: onRestore,
|
|
448
425
|
onSave: onSave,
|
|
449
|
-
onTakeOver: () => handleTakeOver(
|
|
450
|
-
id,
|
|
451
|
-
clearRouteCache,
|
|
452
|
-
collectionSlug,
|
|
453
|
-
documentLockStateRef: documentLockState,
|
|
454
|
-
globalSlug,
|
|
455
|
-
isLockingEnabled,
|
|
456
|
-
isWithinDoc: true,
|
|
457
|
-
setCurrentEditor,
|
|
458
|
-
setIsReadOnlyForIncomingUser,
|
|
459
|
-
updateDocumentEditor,
|
|
460
|
-
user
|
|
461
|
-
}),
|
|
426
|
+
onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockState, isLockingEnabled, setIsReadOnlyForIncomingUser),
|
|
462
427
|
permissions: docPermissions,
|
|
463
428
|
readOnlyForIncomingUser: isReadOnlyForIncomingUser,
|
|
464
429
|
redirectAfterDelete: redirectAfterDelete,
|
|
@@ -510,7 +475,7 @@ export function DefaultEditView({
|
|
|
510
475
|
globalSlug: globalSlug
|
|
511
476
|
})]
|
|
512
477
|
})]
|
|
513
|
-
}
|
|
478
|
+
})
|
|
514
479
|
})
|
|
515
480
|
});
|
|
516
481
|
}
|