@payloadcms/ui 3.18.0-canary.df484f6 → 3.18.0
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/AddNewRelation/useRelatedCollections.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/useRelatedCollections.js +6 -4
- package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +4 -2
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +4 -4
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +6 -6
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +21 -21
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +79 -100
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SortColumn/index.scss +0 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -0
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +33 -40
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -1
- package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +30 -11
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/index.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +72 -33
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -11
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/validateWhereQuery.js +2 -2
- package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
- package/dist/exports/client/{CodeEditor-W7RSWONH.js → CodeEditor-BMYVMDNZ.js} +2 -2
- package/dist/exports/client/chunk-CQQHQHCB.js +26 -0
- package/dist/exports/client/{chunk-3MXUY6XL.js.map → chunk-CQQHQHCB.js.map} +3 -3
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +32 -47
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/index.js +3 -2
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +5 -5
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +14 -8
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.d.ts +4 -0
- package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.js +15 -12
- package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +26 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/providers/Config/index.d.ts +22 -13
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +45 -61
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +62 -54
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/scss/toasts.scss +2 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +3 -3
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/isURLAllowed.d.ts +3 -0
- package/dist/utilities/isURLAllowed.d.ts.map +1 -0
- package/dist/utilities/isURLAllowed.js +31 -0
- package/dist/utilities/isURLAllowed.js.map +1 -0
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +4 -3
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +5 -4
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/exports/client/chunk-3MXUY6XL.js +0 -26
- /package/dist/exports/client/{CodeEditor-W7RSWONH.js.map → CodeEditor-BMYVMDNZ.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleFormStateLocking.d.ts","sourceRoot":"","sources":["../../src/utilities/handleFormStateLocking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExD,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;
|
|
1
|
+
{"version":3,"file":"handleFormStateLocking.d.ts","sourceRoot":"","sources":["../../src/utilities/handleFormStateLocking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExD,KAAK,IAAI,GAAG;IACV,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAID,eAAO,MAAM,sBAAsB,+DAMhC,IAAI,KAAG,OAAO,CAAC,MAAM,CAiIvB,CAAA"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const lockDurationDefault = 300 // Default 5 minutes in seconds
|
|
2
|
+
;
|
|
1
3
|
export const handleFormStateLocking = async ({
|
|
2
4
|
id,
|
|
3
5
|
collectionSlug,
|
|
@@ -29,9 +31,7 @@ export const handleFormStateLocking = async ({
|
|
|
29
31
|
}]
|
|
30
32
|
};
|
|
31
33
|
}
|
|
32
|
-
const
|
|
33
|
-
;
|
|
34
|
-
const lockDocumentsProp = collectionSlug ? req.payload.config.collections.find(c => c.slug === collectionSlug)?.lockDocuments : req.payload.config.globals.find(g => g.slug === globalSlug)?.lockDocuments;
|
|
34
|
+
const lockDocumentsProp = collectionSlug ? req.payload.collections?.[collectionSlug]?.config.lockDocuments : req.payload.config.globals.find(g => g.slug === globalSlug)?.lockDocuments;
|
|
35
35
|
const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
|
|
36
36
|
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
37
37
|
const now = new Date().getTime();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleFormStateLocking.js","names":["handleFormStateLocking","id","collectionSlug","globalSlug","req","updateLastEdited","result","lockedDocumentQuery","and","equals","
|
|
1
|
+
{"version":3,"file":"handleFormStateLocking.js","names":["lockDurationDefault","handleFormStateLocking","id","collectionSlug","globalSlug","req","updateLastEdited","result","lockedDocumentQuery","and","equals","lockDocumentsProp","payload","collections","config","lockDocuments","globals","find","g","slug","lockDuration","duration","lockDurationInMilliseconds","now","Date","getTime","push","updatedAt","greater_than","toISOString","lockedDocument","collection","depth","limit","overrideAccess","pagination","where","docs","length","isLocked","lastEditedAt","user","value","lockOwnerID","db","updateOne","data","deleteExpiredLocksQuery","less_than","deleteMany","create","document","relationTo","undefined"],"sources":["../../src/utilities/handleFormStateLocking.ts"],"sourcesContent":["import type { PayloadRequest, TypedUser } from 'payload'\n\ntype Args = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n req: PayloadRequest\n updateLastEdited?: boolean\n}\n\ntype Result = {\n isLocked: boolean\n lastEditedAt: string\n user: TypedUser\n}\n\nconst lockDurationDefault = 300 // Default 5 minutes in seconds\n\nexport const handleFormStateLocking = async ({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n}: Args): Promise<Result> => {\n let result: Result\n\n if (id || globalSlug) {\n let lockedDocumentQuery\n\n if (collectionSlug) {\n lockedDocumentQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n { 'document.value': { equals: id } },\n ],\n }\n } else if (globalSlug) {\n lockedDocumentQuery = {\n and: [{ globalSlug: { equals: globalSlug } }],\n }\n }\n\n const lockDocumentsProp = collectionSlug\n ? req.payload.collections?.[collectionSlug]?.config.lockDocuments\n : req.payload.config.globals.find((g) => g.slug === globalSlug)?.lockDocuments\n\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n const now = new Date().getTime()\n\n if (lockedDocumentQuery) {\n // Query where the lock is newer than the current time minus the lock duration\n lockedDocumentQuery.and.push({\n updatedAt: {\n greater_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n })\n\n const lockedDocument = await req.payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n limit: 1,\n overrideAccess: false,\n pagination: false,\n req,\n where: lockedDocumentQuery,\n })\n\n if (lockedDocument.docs && lockedDocument.docs.length > 0) {\n result = {\n isLocked: true,\n lastEditedAt: lockedDocument.docs[0]?.updatedAt,\n user: lockedDocument.docs[0]?.user?.value,\n }\n\n const lockOwnerID =\n typeof lockedDocument.docs[0]?.user?.value === 'object'\n ? lockedDocument.docs[0]?.user?.value?.id\n : lockedDocument.docs[0]?.user?.value\n // Should only update doc if the incoming / current user is also the owner of the locked doc\n if (updateLastEdited && req.user && lockOwnerID === req.user.id) {\n await req.payload.db.updateOne({\n id: lockedDocument.docs[0].id,\n collection: 'payload-locked-documents',\n data: {},\n req,\n })\n }\n } else {\n // If NO ACTIVE lock document exists, first delete any expired locks and then create a fresh lock\n // Where updatedAt is older than the duration that is specified in the config\n let deleteExpiredLocksQuery\n\n if (collectionSlug) {\n deleteExpiredLocksQuery = {\n and: [\n { 'document.relationTo': { equals: collectionSlug } },\n {\n updatedAt: {\n less_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n },\n ],\n }\n } else if (globalSlug) {\n deleteExpiredLocksQuery = {\n and: [\n { globalSlug: { equals: globalSlug } },\n {\n updatedAt: {\n less_than: new Date(now - lockDurationInMilliseconds).toISOString(),\n },\n },\n ],\n }\n }\n\n await req.payload.db.deleteMany({\n collection: 'payload-locked-documents',\n req,\n where: deleteExpiredLocksQuery,\n })\n\n await req.payload.db.create({\n collection: 'payload-locked-documents',\n data: {\n document: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: id,\n }\n : undefined,\n globalSlug: globalSlug ? globalSlug : undefined,\n user: {\n relationTo: req.user.collection,\n value: req.user.id,\n },\n },\n req,\n })\n\n result = {\n isLocked: true,\n lastEditedAt: new Date().toISOString(),\n user: req.user,\n }\n }\n }\n }\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isURLAllowed.d.ts","sourceRoot":"","sources":["../../src/utilities/isURLAllowed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,eAAO,MAAM,YAAY,QAAS,MAAM,aAAa,SAAS,KAAG,OA+BhE,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export const isURLAllowed = (url, allowList) => {
|
|
2
|
+
try {
|
|
3
|
+
const parsedUrl = new URL(url);
|
|
4
|
+
return allowList.some(allowItem => {
|
|
5
|
+
return Object.entries(allowItem).every(([key, value]) => {
|
|
6
|
+
// Skip undefined or null values
|
|
7
|
+
if (!value) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
// Compare protocol with colon
|
|
11
|
+
if (key === 'protocol') {
|
|
12
|
+
return typeof value === 'string' && parsedUrl.protocol === `${value}:`;
|
|
13
|
+
}
|
|
14
|
+
if (key === 'pathname') {
|
|
15
|
+
// Convert wildcards to a regex
|
|
16
|
+
const regexPattern = value.replace(/\*\*/g, '.*') // Match any path
|
|
17
|
+
.replace(/\*/g, '[^/]*') // Match any part of a path segment
|
|
18
|
+
;
|
|
19
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
20
|
+
return regex.test(parsedUrl.pathname);
|
|
21
|
+
}
|
|
22
|
+
// Default comparison for all other properties (hostname, port, search)
|
|
23
|
+
return parsedUrl[key] === value;
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
} catch {
|
|
27
|
+
return false // If the URL is invalid, deny by default
|
|
28
|
+
;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=isURLAllowed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isURLAllowed.js","names":["isURLAllowed","url","allowList","parsedUrl","URL","some","allowItem","Object","entries","every","key","value","protocol","regexPattern","replace","regex","RegExp","test","pathname"],"sources":["../../src/utilities/isURLAllowed.ts"],"sourcesContent":["import type { AllowList } from 'payload'\n\nexport const isURLAllowed = (url: string, allowList: AllowList): boolean => {\n try {\n const parsedUrl = new URL(url)\n\n return allowList.some((allowItem) => {\n return Object.entries(allowItem).every(([key, value]) => {\n // Skip undefined or null values\n if (!value) {\n return true\n }\n // Compare protocol with colon\n if (key === 'protocol') {\n return typeof value === 'string' && parsedUrl.protocol === `${value}:`\n }\n\n if (key === 'pathname') {\n // Convert wildcards to a regex\n const regexPattern = value\n .replace(/\\*\\*/g, '.*') // Match any path\n .replace(/\\*/g, '[^/]*') // Match any part of a path segment\n const regex = new RegExp(`^${regexPattern}$`)\n return regex.test(parsedUrl.pathname)\n }\n\n // Default comparison for all other properties (hostname, port, search)\n return parsedUrl[key as keyof URL] === value\n })\n })\n } catch {\n return false // If the URL is invalid, deny by default\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,YAAA,GAAeA,CAACC,GAAA,EAAaC,SAAA;EACxC,IAAI;IACF,MAAMC,SAAA,GAAY,IAAIC,GAAA,CAAIH,GAAA;IAE1B,OAAOC,SAAA,CAAUG,IAAI,CAAEC,SAAA;MACrB,OAAOC,MAAA,CAAOC,OAAO,CAACF,SAAA,EAAWG,KAAK,CAAC,CAAC,CAACC,GAAA,EAAKC,KAAA,CAAM;QAClD;QACA,IAAI,CAACA,KAAA,EAAO;UACV,OAAO;QACT;QACA;QACA,IAAID,GAAA,KAAQ,YAAY;UACtB,OAAO,OAAOC,KAAA,KAAU,YAAYR,SAAA,CAAUS,QAAQ,KAAK,GAAGD,KAAA,GAAQ;QACxE;QAEA,IAAID,GAAA,KAAQ,YAAY;UACtB;UACA,MAAMG,YAAA,GAAeF,KAAA,CAClBG,OAAO,CAAC,SAAS,MAAM;UAAA,CACvBA,OAAO,CAAC,OAAO,SAAS;UAAA;UAC3B,MAAMC,KAAA,GAAQ,IAAIC,MAAA,CAAO,IAAIH,YAAA,GAAe;UAC5C,OAAOE,KAAA,CAAME,IAAI,CAACd,SAAA,CAAUe,QAAQ;QACtC;QAEA;QACA,OAAOf,SAAS,CAACO,GAAA,CAAiB,KAAKC,KAAA;MACzC;IACF;EACF,EAAE,MAAM;IACN,OAAO,MAAM;IAAA;EACf;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/APIKey.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"APIKey.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/APIKey.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuC,MAAM,OAAO,CAAA;AAe3D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CA+GvF,CAAA"}
|
|
@@ -26,14 +26,15 @@ export const APIKey = ({
|
|
|
26
26
|
t
|
|
27
27
|
} = useTranslation();
|
|
28
28
|
const {
|
|
29
|
-
config
|
|
29
|
+
config,
|
|
30
|
+
getEntityConfig
|
|
30
31
|
} = useConfig();
|
|
31
32
|
const {
|
|
32
33
|
collectionSlug
|
|
33
34
|
} = useDocumentInfo();
|
|
34
35
|
const apiKey = useFormFields(([fields]) => fields && fields[path] || null);
|
|
35
|
-
const apiKeyField =
|
|
36
|
-
|
|
36
|
+
const apiKeyField = getEntityConfig({
|
|
37
|
+
collectionSlug
|
|
37
38
|
})?.fields?.find(field => 'name' in field && field.name === 'apiKey');
|
|
38
39
|
const validate = val => text(val, {
|
|
39
40
|
name: 'apiKey',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIKey.js","names":["getTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","CopyToClipboard","GenerateConfirmation","useFormFields","useField","useConfig","useDocumentInfo","useTranslation","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","collectionSlug","apiKey","fields","apiKeyField","
|
|
1
|
+
{"version":3,"file":"APIKey.js","names":["getTranslation","text","React","useEffect","useMemo","useState","v4","uuidv4","CopyToClipboard","GenerateConfirmation","useFormFields","useField","useConfig","useDocumentInfo","useTranslation","path","baseClass","fieldBaseClass","APIKey","enabled","readOnly","initialAPIKey","highlightedField","setHighlightedField","i18n","t","config","getEntityConfig","collectionSlug","apiKey","fields","apiKeyField","find","field","name","validate","val","type","data","maxLength","minLength","preferences","req","payload","siblingData","apiKeyValue","value","apiKeyLabel","label","APIKeyLabel","_jsxs","className","_jsx","fieldType","highlightField","setTimeout","setValue","Fragment","filter","Boolean","join","undefined","disabled","id","setKey"],"sources":["../../../../src/views/Edit/Auth/APIKey.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest, TextFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { text } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { CopyToClipboard } from '../../../elements/CopyToClipboard/index.js'\nimport { GenerateConfirmation } from '../../../elements/GenerateConfirmation/index.js'\nimport { useFormFields } from '../../../forms/Form/context.js'\nimport { useField } from '../../../forms/useField/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nconst path = 'apiKey'\nconst baseClass = 'api-key'\nconst fieldBaseClass = 'field-type'\n\nexport const APIKey: React.FC<{ readonly enabled: boolean; readonly readOnly?: boolean }> = ({\n enabled,\n readOnly,\n}) => {\n const [initialAPIKey] = useState(uuidv4())\n const [highlightedField, setHighlightedField] = useState(false)\n const { i18n, t } = useTranslation()\n const { config, getEntityConfig } = useConfig()\n const { collectionSlug } = useDocumentInfo()\n\n const apiKey = useFormFields(([fields]) => (fields && fields[path]) || null)\n\n const apiKeyField: TextFieldClient = getEntityConfig({ collectionSlug })?.fields?.find(\n (field) => 'name' in field && field.name === 'apiKey',\n ) as TextFieldClient\n\n const validate = (val) =>\n text(val, {\n name: 'apiKey',\n type: 'text',\n data: {},\n maxLength: 48,\n minLength: 24,\n preferences: { fields: {} },\n req: {\n payload: {\n config,\n },\n t,\n } as unknown as PayloadRequest,\n siblingData: {},\n })\n\n const apiKeyValue = apiKey?.value\n\n const apiKeyLabel = useMemo(() => {\n let label: Record<string, string> | string = 'API Key'\n\n if (apiKeyField?.label) {\n label = apiKeyField.label\n }\n\n return getTranslation(label, i18n)\n }, [apiKeyField, i18n])\n\n const APIKeyLabel = useMemo(\n () => (\n <div className={`${baseClass}__label`}>\n <span>{apiKeyLabel}</span>\n <CopyToClipboard value={apiKeyValue as string} />\n </div>\n ),\n [apiKeyLabel, apiKeyValue],\n )\n\n const fieldType = useField({\n path: 'apiKey',\n validate,\n })\n\n const highlightField = () => {\n if (highlightedField) {\n setHighlightedField(false)\n }\n setTimeout(() => {\n setHighlightedField(true)\n }, 1)\n }\n\n const { setValue, value } = fieldType\n\n useEffect(() => {\n if (!apiKeyValue && enabled) {\n setValue(initialAPIKey)\n }\n if (!enabled && apiKeyValue) {\n setValue(null)\n }\n }, [apiKeyValue, enabled, setValue, initialAPIKey])\n\n useEffect(() => {\n if (highlightedField) {\n setTimeout(() => {\n setHighlightedField(false)\n }, 10000)\n }\n }, [highlightedField])\n\n if (!enabled) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={[fieldBaseClass, 'api-key', 'read-only'].filter(Boolean).join(' ')}>\n {APIKeyLabel}\n <input\n aria-label={apiKeyLabel}\n className={highlightedField ? 'highlight' : undefined}\n disabled\n id=\"apiKey\"\n name=\"apiKey\"\n type=\"text\"\n value={(value as string) || ''}\n />\n </div>\n {!readOnly && (\n <GenerateConfirmation highlightField={highlightField} setKey={() => setValue(uuidv4())} />\n )}\n </React.Fragment>\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":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAyB,MAAM,SAAS,CAAA;AAG7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgiB7D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","formatAdminURL","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","onChange","formState","prevFormState","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientSideEditViewProps,\n ClientUser,\n FormState,\n} from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC<ClientSideEditViewProps> = ({\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","formatAdminURL","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","onChange","formState","prevFormState","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientSideEditViewProps, ClientUser, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport const DefaultEditView: React.FC<ClientSideEditViewProps> = ({\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,UAAU,EAAE,OAAO,CAAA;IACnB,CAAC,EAAE,SAAS,CAAA;CACb,CAAA;AA8HD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAQhD,CAAA"}
|
|
@@ -63,7 +63,8 @@ const ListDrawerHeader = ({
|
|
|
63
63
|
const {
|
|
64
64
|
config: {
|
|
65
65
|
collections
|
|
66
|
-
}
|
|
66
|
+
},
|
|
67
|
+
getEntityConfig
|
|
67
68
|
} = useConfig();
|
|
68
69
|
const {
|
|
69
70
|
closeModal
|
|
@@ -75,9 +76,9 @@ const ListDrawerHeader = ({
|
|
|
75
76
|
selectedOption,
|
|
76
77
|
setSelectedOption
|
|
77
78
|
} = useListDrawerContext();
|
|
78
|
-
const collectionConfig =
|
|
79
|
-
|
|
80
|
-
})
|
|
79
|
+
const collectionConfig = getEntityConfig({
|
|
80
|
+
collectionSlug: selectedOption.value
|
|
81
|
+
});
|
|
81
82
|
const enabledCollectionConfigs = collections.filter(({
|
|
82
83
|
slug
|
|
83
84
|
}) => enabledCollections.includes(slug));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","LinkImport","Link","default","useModal","React","Button","useListDrawerContext","ListSelection","Pill","ReactSelect","FieldLabel","XIcon","useConfig","baseClass","drawerBaseClass","DefaultListHeader","className","collectionConfig","Description","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","openBulkUpload","smallBreak","t","_jsxs","filter","Boolean","join","_jsx","labels","plural","_Fragment","label","singular","buttonStyle","el","size","to","onClick","ListDrawerHeader","config","collections","closeModal","DocumentDrawerToggler","drawerSlug","enabledCollections","selectedOption","setSelectedOption","
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","LinkImport","Link","default","useModal","React","Button","useListDrawerContext","ListSelection","Pill","ReactSelect","FieldLabel","XIcon","useConfig","baseClass","drawerBaseClass","DefaultListHeader","className","collectionConfig","Description","hasCreatePermission","i18n","isBulkUploadEnabled","newDocumentURL","openBulkUpload","smallBreak","t","_jsxs","filter","Boolean","join","_jsx","labels","plural","_Fragment","label","singular","buttonStyle","el","size","to","onClick","ListDrawerHeader","config","collections","getEntityConfig","closeModal","DocumentDrawerToggler","drawerSlug","enabledCollections","selectedOption","setSelectedOption","collectionSlug","value","enabledCollectionConfigs","slug","includes","moreThanOneAvailableCollection","length","type","onChange","options","map","coll","ListHeader","props","isInDrawer"],"sources":["../../../../src/views/List/ListHeader/index.tsx"],"sourcesContent":["import type { I18nClient, TFunction } from '@payloadcms/translations'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport LinkImport from 'next/link.js'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { ListSelection } from '../../../elements/ListSelection/index.js'\nimport { Pill } from '../../../elements/Pill/index.js'\nimport { ReactSelect } from '../../../elements/ReactSelect/index.js'\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport './index.scss'\n\nconst baseClass = 'list-header'\nconst drawerBaseClass = 'list-drawer'\n\nexport type ListHeaderProps = {\n className?: string\n collectionConfig: ClientCollectionConfig\n Description?: React.ReactNode\n hasCreatePermission: boolean\n i18n: I18nClient\n isBulkUploadEnabled: boolean\n newDocumentURL: string\n openBulkUpload: () => void\n smallBreak: boolean\n t: TFunction\n}\n\nconst DefaultListHeader: React.FC<ListHeaderProps> = ({\n className,\n collectionConfig,\n Description,\n hasCreatePermission,\n i18n,\n isBulkUploadEnabled,\n newDocumentURL,\n openBulkUpload,\n smallBreak,\n t,\n}) => {\n return (\n <header className={[baseClass, className].filter(Boolean).join(' ')}>\n <h1>{getTranslation(collectionConfig?.labels?.plural, i18n)}</h1>\n {hasCreatePermission && (\n <>\n <Button\n aria-label={i18n.t('general:createNewLabel', {\n label: getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n buttonStyle=\"pill\"\n el={'link'}\n Link={Link}\n size=\"small\"\n to={newDocumentURL}\n >\n {i18n.t('general:createNew')}\n </Button>\n {isBulkUploadEnabled && (\n <Button\n aria-label={t('upload:bulkUpload')}\n buttonStyle=\"pill\"\n onClick={openBulkUpload}\n size=\"small\"\n >\n {t('upload:bulkUpload')}\n </Button>\n )}\n </>\n )}\n {!smallBreak && (\n <ListSelection label={getTranslation(collectionConfig?.labels?.plural, i18n)} />\n )}\n {Description}\n </header>\n )\n}\n\nconst ListDrawerHeader: React.FC<ListHeaderProps> = ({\n Description,\n hasCreatePermission,\n i18n,\n t,\n}) => {\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const { closeModal } = useModal()\n\n const {\n DocumentDrawerToggler,\n drawerSlug,\n enabledCollections,\n selectedOption,\n setSelectedOption,\n } = useListDrawerContext()\n\n const collectionConfig = getEntityConfig({ collectionSlug: selectedOption.value })\n\n const enabledCollectionConfigs = collections.filter(({ slug }) =>\n enabledCollections.includes(slug),\n )\n\n const moreThanOneAvailableCollection = enabledCollections.length > 1\n\n return (\n <header className={`${drawerBaseClass}__header`}>\n <div className={`${drawerBaseClass}__header-wrap`}>\n <div className={`${drawerBaseClass}__header-content`}>\n <h2 className={`${drawerBaseClass}__header-text`}>\n {getTranslation(collectionConfig?.labels?.plural, i18n)}\n </h2>\n {hasCreatePermission && (\n <DocumentDrawerToggler className={`${drawerBaseClass}__create-new-button`}>\n <Pill>{t('general:createNew')}</Pill>\n </DocumentDrawerToggler>\n )}\n </div>\n <button\n aria-label={t('general:close')}\n className={`${drawerBaseClass}__header-close`}\n onClick={() => {\n closeModal(drawerSlug)\n }}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n {Description}\n {moreThanOneAvailableCollection && (\n <div className={`${drawerBaseClass}__select-collection-wrap`}>\n <FieldLabel label={t('upload:selectCollectionToBrowse')} />\n <ReactSelect\n className={`${baseClass}__select-collection`}\n onChange={setSelectedOption}\n options={enabledCollectionConfigs.map((coll) => ({\n label: getTranslation(coll.labels.singular, i18n),\n value: coll.slug,\n }))}\n value={{\n label: getTranslation(collectionConfig?.labels.singular, i18n),\n value: collectionConfig?.slug,\n }}\n />\n </div>\n )}\n </header>\n )\n}\n\nexport const ListHeader: React.FC<ListHeaderProps> = (props) => {\n const { isInDrawer } = useListDrawerContext()\n\n if (isInDrawer) {\n return <ListDrawerHeader {...props} />\n }\n\n return <DefaultListHeader {...props} />\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,OAAO,KAAwC,MAAM,OAAO,CAAA;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA6B3D,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CAC/C,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsPzD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","LinkImport","useRouter","formatFilesize","isNumber","React","Fragment","useEffect","useState","useBulkUpload","Button","DeleteMany","EditMany","Gutter","ListControls","useListDrawerContext","ListSelection","useModal","Pagination","PerPage","PublishMany","RenderCustomComponent","SelectMany","useStepNav","RelationshipProvider","TableColumnsProvider","UnpublishMany","ViewDescription","useAuth","useConfig","useEditDepth","useListQuery","SelectionProvider","useTranslation","useWindowInfo","ListHeader","baseClass","Link","default","DefaultListView","props","$","AfterList","AfterListTable","beforeActions","BeforeList","BeforeListTable","collectionSlug","columnState","Description","disableBulkDelete","disableBulkEdit","enableRowSelections","hasCreatePermission","listPreferences","newDocumentURL","preferenceKey","renderedFilters","Table","InitialTable","setTable","createNewDrawerSlug","drawerSlug","listDrawerSlug","onBulkSelect","t0","t1","user","getEntityConfig","router","data","defaultLimit","initialLimit","handlePageChange","handlePerPageChange","query","openModal","setCollectionSlug","setCurrentActivePath","setOnSuccess","bulkUploadDrawerSlug","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","isInDrawer","i18n","t","drawerDepth","setStepNav","breakpoints","t2","s","smallBreak","t3","t4","docs","map","_temp","refresh","openBulkUpload","label","plural","t5","_jsx","onClick","children","className","_jsxs","totalDocs","CustomComponent","Fallback","description","admin","length","el","singular","to","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection","doc","filesize"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ListPreferences } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport LinkImport from 'next/link.js'\nimport { useRouter } from 'next/navigation.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DeleteMany } from '../../elements/DeleteMany/index.js'\nimport { EditMany } from '../../elements/EditMany/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListControls } from '../../elements/ListControls/index.js'\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { ListSelection } from '../../elements/ListSelection/index.js'\nimport { useModal } from '../../elements/Modal/index.js'\nimport { Pagination } from '../../elements/Pagination/index.js'\nimport { PerPage } from '../../elements/PerPage/index.js'\nimport { PublishMany } from '../../elements/PublishMany/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { SelectMany } from '../../elements/SelectMany/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../../elements/TableColumns/index.js'\nimport { UnpublishMany } from '../../elements/UnpublishMany/index.js'\nimport { ViewDescription } from '../../elements/ViewDescription/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { SelectionProvider } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListHeader } from './ListHeader/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport type ListViewSlots = {\n AfterList?: React.ReactNode\n AfterListTable?: React.ReactNode\n BeforeList?: React.ReactNode\n BeforeListTable?: React.ReactNode\n Description?: React.ReactNode\n Table: React.ReactNode\n}\n\nexport type ListViewClientProps = {\n beforeActions?: React.ReactNode[]\n collectionSlug: string\n columnState: Column[]\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections?: boolean\n hasCreatePermission: boolean\n listPreferences?: ListPreferences\n newDocumentURL: string\n preferenceKey?: string\n renderedFilters?: Map<string, React.ReactNode>\n} & ListViewSlots\n\nexport const DefaultListView: React.FC<ListViewClientProps> = (props) => {\n const {\n AfterList,\n AfterListTable,\n beforeActions,\n BeforeList,\n BeforeListTable,\n collectionSlug,\n columnState,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\n preferenceKey,\n renderedFilters,\n Table: InitialTable,\n } = props\n\n const [Table, setTable] = useState(InitialTable)\n\n const { createNewDrawerSlug, drawerSlug: listDrawerSlug, onBulkSelect } = useListDrawerContext()\n\n useEffect(() => {\n if (InitialTable) {\n setTable(InitialTable)\n }\n }, [InitialTable])\n\n const { user } = useAuth()\n\n const { getEntityConfig } = useConfig()\n const router = useRouter()\n\n const {\n data,\n defaultLimit: initialLimit,\n handlePageChange,\n handlePerPageChange,\n query,\n } = useListQuery()\n\n const { openModal } = useModal()\n const { setCollectionSlug, setCurrentActivePath, setOnSuccess } = useBulkUpload()\n const { drawerSlug: bulkUploadDrawerSlug } = useBulkUpload()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const { labels, upload } = collectionConfig\n\n const isUploadCollection = Boolean(upload)\n\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n const isInDrawer = Boolean(listDrawerSlug)\n\n const { i18n, t } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const docs = React.useMemo(() => {\n if (isUploadCollection) {\n return data.docs.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n } else {\n return data.docs\n }\n }, [data.docs, isUploadCollection])\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n setCurrentActivePath(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(collectionSlug, () => router.refresh())\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setCollectionSlug,\n setCurrentActivePath,\n setOnSuccess,\n ])\n\n useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <Fragment>\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n columnState={columnState}\n docs={docs}\n enableRowSelections={enableRowSelections}\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n setTable={setTable}\n >\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SelectionProvider docs={docs} totalDocs={data.totalDocs} user={user}>\n {BeforeList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n collectionConfig={collectionConfig}\n Description={\n <div className={`${baseClass}__sub-header`}>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <ViewDescription description={collectionConfig?.admin?.description} />\n }\n />\n </div>\n }\n hasCreatePermission={hasCreatePermission}\n i18n={i18n}\n isBulkUploadEnabled={isBulkUploadEnabled}\n newDocumentURL={newDocumentURL}\n openBulkUpload={openBulkUpload}\n smallBreak={smallBreak}\n t={t}\n />\n <ListControls\n beforeActions={\n enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [...beforeActions, <SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions\n }\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n renderedFilters={renderedFilters}\n />\n {BeforeListTable}\n {docs.length > 0 && <RelationshipProvider>{Table}</RelationshipProvider>}\n {docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}\n </p>\n {hasCreatePermission && newDocumentURL && (\n <Fragment>\n {isInDrawer ? (\n <Button el=\"button\" onClick={() => openModal(createNewDrawerSlug)}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n ) : (\n <Button el=\"link\" Link={Link} to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </Fragment>\n )}\n </div>\n )}\n {AfterListTable}\n {docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={isNumber(query?.limit) ? Number(query.limit) : initialLimit}\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection\n label={getTranslation(collectionConfig.labels.plural, i18n)}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n {enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [\n ...beforeActions,\n <SelectMany key=\"select-many\" onClick={onBulkSelect} />,\n ]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n {AfterList}\n </SelectionProvider>\n </div>\n </TableColumnsProvider>\n </Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,UAAA,MAAgB;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,EAAEC,QAAQ,QAAQ;AACzC,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAIrD,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AACvB,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,YAAY,QAAQ;AAC7B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,WAAW,QAAQ;AAC5B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAClB,MAAMC,IAAA,GAAQpC,UAAA,CAAWqC,OAAO,IAAIrC,UAAA;AAyBpC,OAAO,MAAMsC,eAAA,GAAiDC,KAAA;EAAA,MAAAC,CAAA,GAAA1C,EAAA;EAC5D;IAAA2C,SAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,UAAA;IAAAC,eAAA;IAAAC,cAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,eAAA;IAAAC,mBAAA;IAAAC,mBAAA;IAAAC,eAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,eAAA;IAAAC,KAAA,EAAAC;EAAA,IAkBInB,KAAA;EAEJ,OAAAkB,KAAA,EAAAE,QAAA,IAA0BpD,QAAA,CAASmD,YAAA;EAEnC;IAAAE,mBAAA;IAAAC,UAAA,EAAAC,cAAA;IAAAC;EAAA,IAA0EjD,oBAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAzB,CAAA,QAAAkB,YAAA;IAEhEM,EAAA,GAAAA,CAAA;MAAA,IACJN,YAAA;QACFC,QAAA,CAASD,YAAA;MAAA;IAAA;IAEVO,EAAA,IAACP,YAAA;IAAalB,CAAA,MAAAkB,YAAA;IAAAlB,CAAA,MAAAwB,EAAA;IAAAxB,CAAA,MAAAyB,EAAA;EAAA;IAAAD,EAAA,GAAAxB,CAAA;IAAAyB,EAAA,GAAAzB,CAAA;EAAA;EAJjBlC,SAAA,CAAU0D,EAIV,EAAGC,EAAc;EAEjB;IAAAC;EAAA,IAAiBvC,OAAA;EAEjB;IAAAwC;EAAA,IAA4BvC,SAAA;EAC5B,MAAAwC,MAAA,GAAenE,SAAA;EAEf;IAAAoE,IAAA;IAAAC,YAAA,EAAAC,YAAA;IAAAC,gBAAA;IAAAC,mBAAA;IAAAC;EAAA,IAMI5C,YAAA;EAEJ;IAAA6C;EAAA,IAAsB3D,QAAA;EACtB;IAAA4D,iBAAA;IAAAC,oBAAA;IAAAC;EAAA,IAAkEtE,aAAA;EAClE;IAAAqD,UAAA,EAAAkB;EAAA,IAA6CvE,aAAA;EAE7C,MAAAwE,gBAAA,GAAyBb,eAAA;IAAArB;EAAA,CAAiC;EAE1D;IAAAmC,MAAA;IAAAC;EAAA,IAA2BF,gBAAA;EAE3B,MAAAG,kBAAA,GAA2BC,OAAA,CAAQF,MAAA;EAEnC,MAAAG,mBAAA,GAA4BF,kBAAA,IAAsBH,gBAAA,CAAAE,MAAA,CAAAI,UAAkC;EAEpF,MAAAC,UAAA,GAAmBH,OAAA,CAAQtB,cAAA;EAE3B;IAAA0B,IAAA;IAAAC;EAAA,IAAoBzD,cAAA;EAEpB,MAAA0D,WAAA,GAAoB7D,YAAA;EAEpB;IAAA8D;EAAA,IAAuBrE,UAAA;EAEvB;IAAAsE,WAAA,EAAAC;EAAA,IAEI5D,aAAA;EADW;IAAA6D,CAAA,EAAAC;EAAA,IAAAF,EAAiB;EAAA,IAAAG,EAAA;EAAA,IAI1Bb,kBAAA;IAAA,IAAAc,EAAA;IAAA,IAAAzD,CAAA,QAAA6B,IAAA,CAAA6B,IAAA;MACKD,EAAA,GAAA5B,IAAA,CAAA6B,IAAA,CAAAC,GAAA,CAAAC,KAKP;MAAA5D,CAAA,MAAA6B,IAAA,CAAA6B,IAAA;MAAA1D,CAAA,MAAAyD,EAAA;IAAA;MAAAA,EAAA,GAAAzD,CAAA;IAAA;IALAwD,EAAA,GAAOC,EAKP;EAAA;IAEAD,EAAA,GAAO3B,IAAA,CAAA6B,IAAA;EAAS;EATpB,MAAAA,IAAA,GAAaF,EAWqB;EAAA,IAAAC,EAAA;EAAA,IAAAzD,CAAA,QAAAuC,oBAAA,IAAAvC,CAAA,QAAAM,cAAA,IAAAN,CAAA,QAAAmC,SAAA,IAAAnC,CAAA,QAAA4B,MAAA,IAAA5B,CAAA,QAAAoC,iBAAA,IAAApC,CAAA,SAAAqC,oBAAA,IAAArC,CAAA,SAAAsC,YAAA;IAEOmB,EAAA,GAAAA,CAAA;MACvCrB,iBAAA,CAAkB9B,cAAA;MAClB+B,oBAAA,CAAqB/B,cAAA;MACrB6B,SAAA,CAAUI,oBAAA;MACVD,YAAA,CAAahC,cAAA,QAAsBsB,MAAA,CAAAiC,OAAA,CAAc;IAAA;IACnD7D,CAAA,MAAAuC,oBAAA;IAAAvC,CAAA,MAAAM,cAAA;IAAAN,CAAA,MAAAmC,SAAA;IAAAnC,CAAA,MAAA4B,MAAA;IAAA5B,CAAA,MAAAoC,iBAAA;IAAApC,CAAA,OAAAqC,oBAAA;IAAArC,CAAA,OAAAsC,YAAA;IAAAtC,CAAA,OAAAyD,EAAA;EAAA;IAAAA,EAAA,GAAAzD,CAAA;EAAA;EALA,MAAA8D,cAAA,GAAuBL,EAatB;EAED3F,SAAA;IAAA,KACOoF,WAAA;MACHC,UAAA;QAAAY,KAAA,EAEWtB,MAAA,EAAAuB;MAAA,EAEV;IAAA;EAAA,IAEDb,UAAA,EAAYV,MAAA,EAAQS,WAAA,CAAY;EAAA,IAAAe,EAAA;EAAA,IAAAjE,CAAA,SAAAG,aAAA,IAAAH,CAAA,SAAAW,mBAAA,IAAAX,CAAA,SAAAuB,YAAA;IAuCpB0C,EAAA,GAAAtD,mBAAA,IAAuB,OAAOY,YAAA,KAAiB,aAC3CpB,aAAA,OACMA,aAAA,EAAe+D,IAAA,CAAArF,UAAA;MAAAsF,OAAA,EAAuC5C;IAAA,GAAvB,mBAClC2C,IAAA,CAAArF,UAAA;MAAAsF,OAAA,EAAuC5C;IAAA,GAAvB,eAAwC,GAC3DpB,aAAA;IAAAH,CAAA,OAAAG,aAAA;IAAAH,CAAA,OAAAW,mBAAA;IAAAX,CAAA,OAAAuB,YAAA;IAAAvB,CAAA,OAAAiE,EAAA;EAAA;IAAAA,EAAA,GAAAjE,CAAA;EAAA;EAAA,OAxClBkE,IAAA,CAAArG,QAAA;IAAAuG,QAAA,EACEF,IAAA,CAAAlF,oBAAA;MAAAsB,cAAA;MAAAC,WAAA;MAAAmD,IAAA;MAAA/C,mBAAA;MAAAE,eAAA;MAAAE,aAAA;MAAAI,QAAA;MAAAiD,QAAA,EASEF,IAAA,CAAC;QAAAG,SAAA,EAAe,GAAA1E,SAAA,IAAAA,SAAA,KAA8BW,cAAA,EAAgB;QAAA8D,QAAA,EAC5DE,KAAA,CAAA/E,iBAAA;UAAAmE,IAAA;UAAAa,SAAA,EAA0C1C,IAAA,CAAA0C,SAAA;UAAA7C,IAAA;UAAA0C,QAAA,GACvChE,UAAA,EACDkE,KAAA,CAAAlG,MAAA;YAAAiG,SAAA,EAAmB,GAAA1E,SAAA,QAAoB;YAAAyE,QAAA,GACrCF,IAAA,CAAAxE,UAAA;cAAA8C,gBAAA;cAAAhC,WAAA,EAGI0D,IAAA,CAAC;gBAAAG,SAAA,EAAe,GAAA1E,SAAA,cAA0B;gBAAAyE,QAAA,EACxCF,IAAA,CAAAtF,qBAAA;kBAAA4F,eAAA,EACmBhE,WAAA;kBAAAiE,QAAA,EAEfP,IAAA,CAAAhF,eAAA;oBAAAwF,WAAA,EAA8BlC,gBAAA,EAAAmC,KAAA,EAAAD;kBAAA,C;;;;;;;;;;gBAaxCR,IAAA,CAAA7F,YAAA;cAAA8B,aAAA,EAEI8D,EAII;cAAAzB,gBAAA;cAAAlC,cAAA;cAAAG,iBAAA;cAAAC,eAAA;cAAAM;YAAA,C,GAQPX,eAAA,EACAqD,IAAA,CAAAkB,MAAA,IAAc,IAAKV,IAAA,CAAAnF,oBAAA;cAAAqF,QAAA,EAAuBnD;YAAA,C,GAC1CyC,IAAA,CAAAkB,MAAA,MAAgB,IACfN,KAAA,CAAC;cAAAD,SAAA,EAAe,GAAA1E,SAAA,cAA0B;cAAAyE,QAAA,GACxCF,IAAA,CAAC;gBAAAE,QAAA,EACEpB,IAAA,CAAAC,CAAA,CAAO;kBAAAc,KAAA,EAA8BxG,cAAA,CAAekF,MAAA,EAAAuB,MAAA,EAAgBhB,IAAA;gBAAA,CAAM;cAAA,C,GAE5EpC,mBAAA,IAAuBE,cAAA,IACtBoD,IAAA,CAAArG,QAAA;gBAAAuG,QAAA,EACGrB,UAAA,GACCmB,IAAA,CAAAjG,MAAA;kBAAA4G,EAAA,EAAW;kBAAAV,OAAA,EAAAA,CAAA,KAAwBhC,SAAA,CAAUf,mBAAA;kBAAAgD,QAAA,EAC1CpB,IAAA,CAAAC,CAAA,CAAO;oBAAAc,KAAA,EACCxG,cAAA,CAAekF,MAAA,EAAAqC,QAAA,EAAkB9B,IAAA;kBAAA,CAC1C;gBAAA,C,IAGFkB,IAAA,CAAAjG,MAAA;kBAAA4G,EAAA,EAAW;kBAAAjF,IAAA;kBAAAmF,EAAA,EAAuBjE,cAAA;kBAAAsD,QAAA,EAC/BpB,IAAA,CAAAC,CAAA,CAAO;oBAAAc,KAAA,EACCxG,cAAA,CAAekF,MAAA,EAAAqC,QAAA,EAAkB9B,IAAA;kBAAA,CAC1C;gBAAA,C;;gBAOX9C,cAAA,EACAwD,IAAA,CAAAkB,MAAA,IAAc,IACbN,KAAA,CAAC;cAAAD,SAAA,EAAe,GAAA1E,SAAA,iBAA6B;cAAAyE,QAAA,GAC3CF,IAAA,CAAAzF,UAAA;gBAAAuG,WAAA,EACenD,IAAA,CAAAmD,WAAA;gBAAAC,WAAA,EACApD,IAAA,CAAAoD,WAAA;gBAAAC,KAAA,EACNrD,IAAA,CAAAqD,KAAA;gBAAAC,QAAA,EACGtD,IAAA,CAAAsD,QAAA;gBAAAC,iBAAA;gBAAAC,QAAA,EAAAC,IAAA,SAEetD,gBAAA,CAAiBsD,IAAA;gBAAAA,IAAA,EACpCzD,IAAA,CAAAyD,IAAA;gBAAAC,QAAA,EACI1D,IAAA,CAAA0D,QAAA;gBAAAC,UAAA,EACE3D,IAAA,CAAA2D;cAAA,C,GAEb3D,IAAA,CAAA0C,SAAA,IAAiB,IAChBD,KAAA,CAAAzG,QAAA;gBAAAuG,QAAA,GACEE,KAAA,CAAC;kBAAAD,SAAA,EAAe,GAAA1E,SAAA,aAAyB;kBAAAyE,QAAA,GACtCvC,IAAA,CAAAyD,IAAA,GAAYzD,IAAA,CAAAqD,KAAU,IAAIrD,IAAA,CAAAqD,KAAA,IAAa,GAAG,KAC1CrD,IAAA,CAAA2D,UAAA,IAAkB,IAAK3D,IAAA,CAAA2D,UAAA,KAAoB3D,IAAA,CAAAyD,IAAS,GACjDzD,IAAA,CAAAqD,KAAA,GAAarD,IAAA,CAAAyD,IAAS,GACtBzD,IAAA,CAAA0C,SAAc,EAAE,KACnBvB,IAAA,CAAAC,CAAA,CAAO,eAAc,KAAEpB,IAAA,CAAA0C,SAAA;gBAAA,C,GAE1BL,IAAA,CAAAxF,OAAA;kBAAA+G,YAAA,EAAAP,KAAA,SACgCjD,mBAAA,CAAoBiD,KAAA;kBAAAA,KAAA,EAC3CvH,QAAA,CAASuE,KAAA,EAAAgD,KAAO,IAASQ,MAAA,CAAOxD,KAAA,CAAAgD,KAAW,IAAInD,YAAA;kBAAA4D,MAAA,EAC9CnD,gBAAA,EAAAmC,KAAA,EAAAiB,UAAA,EAAAD,MAAA;kBAAAE,SAAA,EACGhE,IAAA,CAAA0C,SAAA,IAAkB1C,IAAA,CAAAiE;gBAAkB,C,GAEhDvC,UAAA,IACCe,KAAA,CAAC;kBAAAD,SAAA,EAAe,GAAA1E,SAAA,kBAA8B;kBAAAyE,QAAA,GAC5CF,IAAA,CAAA3F,aAAA;oBAAAwF,KAAA,EACSxG,cAAA,CAAeiF,gBAAA,CAAAC,MAAA,CAAAuB,MAAA,EAAgChB,IAAA;kBAAA,C,GAExDsB,KAAA,CAAC;oBAAAD,SAAA,EAAe,GAAA1E,SAAA,0BAAsC;oBAAAyE,QAAA,GACnDzD,mBAAA,IAAuB,OAAOY,YAAA,KAAiB,aAC5CpB,aAAA,OAEOA,aAAA,EACH+D,IAAA,CAAArF,UAAA;sBAAAsF,OAAA,EAAuC5C;oBAAA,GAAvB,mBAEjB2C,IAAA,CAAArF,UAAA;sBAAAsF,OAAA,EAAuC5C;oBAAA,GAAvB,eAAwC,GAC3DpB,aAAA,EACH,CAACO,eAAA,IACA4D,KAAA,CAAAzG,QAAA;sBAAAuG,QAAA,GACEF,IAAA,CAAA/F,QAAA;wBAAA4H,UAAA,EAAsBvD;sBAAA,C,GACtB0B,IAAA,CAAAvF,WAAA;wBAAAoH,UAAA,EAAyBvD;sBAAA,C,GACzB0B,IAAA,CAAAjF,aAAA;wBAAA8G,UAAA,EAA2BvD;sBAAA,C;wBAG9B,CAAC/B,iBAAA,IAAqByD,IAAA,CAAAhG,UAAA;sBAAA6H,UAAA,EAAwBvD;oBAAA,C;;;;;cAS9DvC,SAAA;QAAA,C;;;;CAMb;AAtP8D,SAAA2D,MAAAoC,GAAA;EAAA;IAAA,GAwEjDA,GAAG;IAAAC,QAAA,EACIvI,cAAA,CAAesI,GAAA,CAAAC,QAAY;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","LinkImport","useRouter","formatFilesize","isNumber","React","Fragment","useEffect","useState","useBulkUpload","Button","DeleteMany","EditMany","Gutter","ListControls","useListDrawerContext","ListSelection","useModal","Pagination","PerPage","PublishMany","RenderCustomComponent","SelectMany","useStepNav","RelationshipProvider","TableColumnsProvider","UnpublishMany","ViewDescription","useAuth","useConfig","useEditDepth","useListQuery","SelectionProvider","useTranslation","useWindowInfo","ListHeader","baseClass","Link","default","DefaultListView","props","$","AfterList","AfterListTable","beforeActions","BeforeList","BeforeListTable","collectionSlug","columnState","Description","disableBulkDelete","disableBulkEdit","enableRowSelections","hasCreatePermission","listPreferences","newDocumentURL","preferenceKey","renderedFilters","Table","InitialTable","setTable","createNewDrawerSlug","drawerSlug","listDrawerSlug","onBulkSelect","t0","t1","user","getEntityConfig","router","data","defaultLimit","initialLimit","handlePageChange","handlePerPageChange","query","openModal","setCollectionSlug","setCurrentActivePath","setOnSuccess","bulkUploadDrawerSlug","collectionConfig","labels","upload","isUploadCollection","Boolean","isBulkUploadEnabled","bulkUpload","isInDrawer","i18n","t","drawerDepth","setStepNav","breakpoints","t2","s","smallBreak","t3","t4","docs","map","_temp","refresh","openBulkUpload","label","plural","t5","_jsx","onClick","children","className","_jsxs","totalDocs","CustomComponent","Fallback","description","admin","length","el","singular","to","hasNextPage","hasPrevPage","limit","nextPage","numberOfNeighbors","onChange","page","prevPage","totalPages","handleChange","Number","limits","pagination","resetPage","pagingCounter","collection","doc","filesize"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ListPreferences } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport LinkImport from 'next/link.js'\nimport { useRouter } from 'next/navigation.js'\nimport { formatFilesize, isNumber } from 'payload/shared'\nimport React, { Fragment, useEffect, useState } from 'react'\n\nimport type { Column } from '../../elements/Table/index.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DeleteMany } from '../../elements/DeleteMany/index.js'\nimport { EditMany } from '../../elements/EditMany/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListControls } from '../../elements/ListControls/index.js'\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { ListSelection } from '../../elements/ListSelection/index.js'\nimport { useModal } from '../../elements/Modal/index.js'\nimport { Pagination } from '../../elements/Pagination/index.js'\nimport { PerPage } from '../../elements/PerPage/index.js'\nimport { PublishMany } from '../../elements/PublishMany/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { SelectMany } from '../../elements/SelectMany/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js'\nimport { TableColumnsProvider } from '../../elements/TableColumns/index.js'\nimport { UnpublishMany } from '../../elements/UnpublishMany/index.js'\nimport { ViewDescription } from '../../elements/ViewDescription/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { SelectionProvider } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListHeader } from './ListHeader/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-list'\nconst Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default\n\nexport type ListViewSlots = {\n AfterList?: React.ReactNode\n AfterListTable?: React.ReactNode\n BeforeList?: React.ReactNode\n BeforeListTable?: React.ReactNode\n Description?: React.ReactNode\n Table: React.ReactNode\n}\n\nexport type ListViewClientProps = {\n beforeActions?: React.ReactNode[]\n collectionSlug: string\n columnState: Column[]\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections?: boolean\n hasCreatePermission: boolean\n listPreferences?: ListPreferences\n newDocumentURL: string\n preferenceKey?: string\n renderedFilters?: Map<string, React.ReactNode>\n} & ListViewSlots\n\nexport const DefaultListView: React.FC<ListViewClientProps> = (props) => {\n const {\n AfterList,\n AfterListTable,\n beforeActions,\n BeforeList,\n BeforeListTable,\n collectionSlug,\n columnState,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission,\n listPreferences,\n newDocumentURL,\n preferenceKey,\n renderedFilters,\n Table: InitialTable,\n } = props\n\n const [Table, setTable] = useState(InitialTable)\n\n const { createNewDrawerSlug, drawerSlug: listDrawerSlug, onBulkSelect } = useListDrawerContext()\n\n useEffect(() => {\n if (InitialTable) {\n setTable(InitialTable)\n }\n }, [InitialTable])\n\n const { user } = useAuth()\n\n const { getEntityConfig } = useConfig()\n const router = useRouter()\n\n const {\n data,\n defaultLimit: initialLimit,\n handlePageChange,\n handlePerPageChange,\n query,\n } = useListQuery()\n\n const { openModal } = useModal()\n const { setCollectionSlug, setCurrentActivePath, setOnSuccess } = useBulkUpload()\n const { drawerSlug: bulkUploadDrawerSlug } = useBulkUpload()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { labels, upload } = collectionConfig\n\n const isUploadCollection = Boolean(upload)\n\n const isBulkUploadEnabled = isUploadCollection && collectionConfig.upload.bulkUpload\n\n const isInDrawer = Boolean(listDrawerSlug)\n\n const { i18n, t } = useTranslation()\n\n const drawerDepth = useEditDepth()\n\n const { setStepNav } = useStepNav()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const docs = React.useMemo(() => {\n if (isUploadCollection) {\n return data.docs.map((doc) => {\n return {\n ...doc,\n filesize: formatFilesize(doc.filesize),\n }\n })\n } else {\n return data.docs\n }\n }, [data.docs, isUploadCollection])\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n setCurrentActivePath(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(collectionSlug, () => router.refresh())\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setCollectionSlug,\n setCurrentActivePath,\n setOnSuccess,\n ])\n\n useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n {\n label: labels?.plural,\n },\n ])\n }\n }, [setStepNav, labels, drawerDepth])\n\n return (\n <Fragment>\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n columnState={columnState}\n docs={docs}\n enableRowSelections={enableRowSelections}\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n setTable={setTable}\n >\n <div className={`${baseClass} ${baseClass}--${collectionSlug}`}>\n <SelectionProvider docs={docs} totalDocs={data.totalDocs} user={user}>\n {BeforeList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n collectionConfig={collectionConfig}\n Description={\n <div className={`${baseClass}__sub-header`}>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <ViewDescription description={collectionConfig?.admin?.description} />\n }\n />\n </div>\n }\n hasCreatePermission={hasCreatePermission}\n i18n={i18n}\n isBulkUploadEnabled={isBulkUploadEnabled}\n newDocumentURL={newDocumentURL}\n openBulkUpload={openBulkUpload}\n smallBreak={smallBreak}\n t={t}\n />\n <ListControls\n beforeActions={\n enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [...beforeActions, <SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions\n }\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n renderedFilters={renderedFilters}\n />\n {BeforeListTable}\n {docs.length > 0 && <RelationshipProvider>{Table}</RelationshipProvider>}\n {docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })}\n </p>\n {hasCreatePermission && newDocumentURL && (\n <Fragment>\n {isInDrawer ? (\n <Button el=\"button\" onClick={() => openModal(createNewDrawerSlug)}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n ) : (\n <Button el=\"link\" Link={Link} to={newDocumentURL}>\n {i18n.t('general:createNewLabel', {\n label: getTranslation(labels?.singular, i18n),\n })}\n </Button>\n )}\n </Fragment>\n )}\n </div>\n )}\n {AfterListTable}\n {docs.length > 0 && (\n <div className={`${baseClass}__page-controls`}>\n <Pagination\n hasNextPage={data.hasNextPage}\n hasPrevPage={data.hasPrevPage}\n limit={data.limit}\n nextPage={data.nextPage}\n numberOfNeighbors={1}\n onChange={(page) => void handlePageChange(page)}\n page={data.page}\n prevPage={data.prevPage}\n totalPages={data.totalPages}\n />\n {data.totalDocs > 0 && (\n <Fragment>\n <div className={`${baseClass}__page-info`}>\n {data.page * data.limit - (data.limit - 1)}-\n {data.totalPages > 1 && data.totalPages !== data.page\n ? data.limit * data.page\n : data.totalDocs}{' '}\n {i18n.t('general:of')} {data.totalDocs}\n </div>\n <PerPage\n handleChange={(limit) => void handlePerPageChange(limit)}\n limit={isNumber(query?.limit) ? Number(query.limit) : initialLimit}\n limits={collectionConfig?.admin?.pagination?.limits}\n resetPage={data.totalDocs <= data.pagingCounter}\n />\n {smallBreak && (\n <div className={`${baseClass}__list-selection`}>\n <ListSelection\n label={getTranslation(collectionConfig.labels.plural, i18n)}\n />\n <div className={`${baseClass}__list-selection-actions`}>\n {enableRowSelections && typeof onBulkSelect === 'function'\n ? beforeActions\n ? [\n ...beforeActions,\n <SelectMany key=\"select-many\" onClick={onBulkSelect} />,\n ]\n : [<SelectMany key=\"select-many\" onClick={onBulkSelect} />]\n : beforeActions}\n {!disableBulkEdit && (\n <Fragment>\n <EditMany collection={collectionConfig} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n </Fragment>\n )}\n {!disableBulkDelete && <DeleteMany collection={collectionConfig} />}\n </div>\n </div>\n )}\n </Fragment>\n )}\n </div>\n )}\n </Gutter>\n {AfterList}\n </SelectionProvider>\n </div>\n </TableColumnsProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|