@payloadcms/next 3.0.0-beta.127 → 3.0.0-beta.129
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/withPayload.cjs +10 -0
- package/dist/cjs/withPayload.cjs.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +13 -15
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +9 -14
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +13 -28
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.d.ts +0 -1
- package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/index.js +9 -12
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/Logo/index.d.ts.map +1 -1
- package/dist/elements/Logo/index.js +5 -6
- package/dist/elements/Logo/index.js.map +1 -1
- package/dist/elements/Nav/index.client.d.ts +4 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +40 -95
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +60 -23
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/exports/layouts.d.ts +1 -0
- package/dist/exports/layouts.d.ts.map +1 -1
- package/dist/exports/layouts.js +1 -0
- package/dist/exports/layouts.js.map +1 -1
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +1 -0
- package/dist/exports/utilities.js.map +1 -1
- package/dist/exports/views.d.ts +0 -2
- package/dist/exports/views.d.ts.map +1 -1
- package/dist/exports/views.js +0 -2
- package/dist/exports/views.js.map +1 -1
- package/dist/fetchAPI-multipart/isEligibleRequest.js +1 -1
- package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
- package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
- package/dist/fetchAPI-multipart/processMultipart.js +9 -11
- package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
- package/dist/layouts/Root/NestProviders.d.ts +11 -0
- package/dist/layouts/Root/NestProviders.d.ts.map +1 -0
- package/dist/layouts/Root/NestProviders.js +21 -0
- package/dist/layouts/Root/NestProviders.js.map +1 -0
- package/dist/layouts/Root/index.d.ts +3 -2
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +14 -18
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +0 -10
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/routes/rest/og/image.d.ts +4 -2
- package/dist/routes/rest/og/image.d.ts.map +1 -1
- package/dist/routes/rest/og/image.js +7 -3
- package/dist/routes/rest/og/image.js.map +1 -1
- package/dist/routes/rest/og/index.d.ts.map +1 -1
- package/dist/routes/rest/og/index.js +5 -8
- package/dist/routes/rest/og/index.js.map +1 -1
- package/dist/routes/rest/routeError.d.ts.map +1 -1
- package/dist/routes/rest/routeError.js +1 -47
- package/dist/routes/rest/routeError.js.map +1 -1
- package/dist/templates/Default/index.d.ts +2 -1
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +97 -41
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/getClientConfig.d.ts +7 -0
- package/dist/utilities/getClientConfig.d.ts.map +1 -0
- package/dist/utilities/getClientConfig.js +14 -0
- package/dist/utilities/getClientConfig.js.map +1 -0
- package/dist/utilities/handleServerFunctions.d.ts +3 -0
- package/dist/utilities/handleServerFunctions.d.ts.map +1 -0
- package/dist/utilities/handleServerFunctions.js +35 -0
- package/dist/utilities/handleServerFunctions.js.map +1 -0
- package/dist/utilities/initPage/handleAdminPage.d.ts +2 -1
- package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.js +9 -1
- package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
- package/dist/utilities/initPage/index.d.ts.map +1 -1
- package/dist/utilities/initPage/index.js +2 -1
- package/dist/utilities/initPage/index.js.map +1 -1
- package/dist/utilities/initReq.d.ts +1 -1
- package/dist/utilities/initReq.d.ts.map +1 -1
- package/dist/utilities/initReq.js +3 -2
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.d.ts.map +1 -1
- package/dist/views/API/LocaleSelector/index.js +0 -1
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +10 -13
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/Account/Settings/index.js +0 -1
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +81 -24
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts +3 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +83 -109
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +36 -4
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +46 -44
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +22 -21
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getDocPreferences.d.ts +11 -0
- package/dist/views/Document/getDocPreferences.d.ts.map +1 -0
- package/dist/views/Document/getDocPreferences.js +44 -0
- package/dist/views/Document/getDocPreferences.js.map +1 -0
- package/dist/views/Document/getDocumentData.d.ts +10 -11
- package/dist/views/Document/getDocumentData.d.ts.map +1 -1
- package/dist/views/Document/getDocumentData.js +35 -47
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Document/getIsLocked.d.ts +16 -0
- package/dist/views/Document/getIsLocked.d.ts.map +1 -0
- package/dist/views/Document/getIsLocked.js +55 -0
- package/dist/views/Document/getIsLocked.js.map +1 -0
- package/dist/views/Document/getVersions.d.ts +19 -0
- package/dist/views/Document/getVersions.d.ts.map +1 -0
- package/dist/views/Document/getVersions.js +181 -0
- package/dist/views/Document/getVersions.js.map +1 -0
- package/dist/views/Document/getViewsFromConfig.d.ts +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js +18 -19
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Document/handleServerFunction.d.ts +24 -0
- package/dist/views/Document/handleServerFunction.d.ts.map +1 -0
- package/dist/views/Document/handleServerFunction.js +156 -0
- package/dist/views/Document/handleServerFunction.js.map +1 -0
- package/dist/views/Document/index.d.ts +5 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +181 -72
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Document/renderDocumentSlots.d.ts +12 -0
- package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -0
- package/dist/views/Document/renderDocumentSlots.js +92 -0
- package/dist/views/Document/renderDocumentSlots.js.map +1 -0
- package/dist/views/Edit/index.d.ts +3 -2
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +7 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/List/handleServerFunction.d.ts +26 -0
- package/dist/views/List/handleServerFunction.d.ts.map +1 -0
- package/dist/views/List/handleServerFunction.js +155 -0
- package/dist/views/List/handleServerFunction.js.map +1 -0
- package/dist/views/List/index.d.ts +12 -2
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +121 -81
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts +8 -0
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -0
- package/dist/views/List/renderListViewSlots.js +44 -0
- package/dist/views/List/renderListViewSlots.js.map +1 -0
- package/dist/views/LivePreview/Context/sizeReducer.d.ts +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.d.ts.map +1 -1
- package/dist/views/LivePreview/Context/sizeReducer.js +4 -4
- package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +38 -35
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/Login/LoginField/index.d.ts.map +1 -1
- package/dist/views/Login/LoginField/index.js +3 -1
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/index.d.ts.map +1 -1
- package/dist/views/Login/index.js +25 -19
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +24 -10
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/Root/getViewFromConfig.d.ts +3 -1
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +128 -7
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +22 -11
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +2 -4
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts +3 -2
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +33 -61
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -0
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +48 -37
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.d.ts +4 -0
- package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +43 -45
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/ID/index.d.ts +3 -1
- package/dist/views/Versions/cells/ID/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/ID/index.js +7 -19
- package/dist/views/Versions/cells/ID/index.js.map +1 -1
- package/dist/views/Versions/index.client.d.ts.map +1 -1
- package/dist/views/Versions/index.client.js +53 -51
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +3 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +10 -0
- package/dist/withPayload.js.map +1 -1
- package/license.md +22 -0
- package/package.json +16 -7
- package/dist/elements/DocumentLocked/index.d.ts +0 -12
- package/dist/elements/DocumentLocked/index.d.ts.map +0 -1
- package/dist/elements/DocumentLocked/index.js +0 -152
- package/dist/elements/DocumentLocked/index.js.map +0 -1
- package/dist/elements/DocumentLocked/index.scss +0 -40
- package/dist/elements/DocumentTakeOver/index.d.ts +0 -8
- package/dist/elements/DocumentTakeOver/index.d.ts.map +0 -1
- package/dist/elements/DocumentTakeOver/index.js +0 -98
- package/dist/elements/DocumentTakeOver/index.js.map +0 -1
- package/dist/elements/DocumentTakeOver/index.scss +0 -39
- package/dist/elements/EmailAndUsername/index.d.ts +0 -14
- package/dist/elements/EmailAndUsername/index.d.ts.map +0 -1
- package/dist/elements/EmailAndUsername/index.js +0 -121
- package/dist/elements/EmailAndUsername/index.js.map +0 -1
- package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -4
- package/dist/elements/LeaveWithoutSaving/index.d.ts.map +0 -1
- package/dist/elements/LeaveWithoutSaving/index.js +0 -162
- package/dist/elements/LeaveWithoutSaving/index.js.map +0 -1
- package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts +0 -9
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +0 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +0 -136
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +0 -1
- package/dist/routes/rest/buildFormState.d.ts +0 -5
- package/dist/routes/rest/buildFormState.d.ts.map +0 -1
- package/dist/routes/rest/buildFormState.js +0 -46
- package/dist/routes/rest/buildFormState.js.map +0 -1
- package/dist/views/Edit/Default/Auth/APIKey.d.ts +0 -6
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +0 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +0 -125
- package/dist/views/Edit/Default/Auth/APIKey.js.map +0 -1
- package/dist/views/Edit/Default/Auth/index.d.ts +0 -5
- package/dist/views/Edit/Default/Auth/index.d.ts.map +0 -1
- package/dist/views/Edit/Default/Auth/index.js +0 -318
- package/dist/views/Edit/Default/Auth/index.js.map +0 -1
- package/dist/views/Edit/Default/Auth/index.scss +0 -78
- package/dist/views/Edit/Default/Auth/types.d.ts +0 -17
- package/dist/views/Edit/Default/Auth/types.d.ts.map +0 -1
- package/dist/views/Edit/Default/Auth/types.js +0 -2
- package/dist/views/Edit/Default/Auth/types.js.map +0 -1
- package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts +0 -11
- package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +0 -1
- package/dist/views/Edit/Default/SetDocumentStepNav/index.js +0 -130
- package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +0 -1
- package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts +0 -8
- package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts.map +0 -1
- package/dist/views/Edit/Default/SetDocumentTitle/index.js +0 -81
- package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +0 -1
- package/dist/views/Edit/Default/index.d.ts +0 -4
- package/dist/views/Edit/Default/index.d.ts.map +0 -1
- package/dist/views/Edit/Default/index.js +0 -349
- package/dist/views/Edit/Default/index.js.map +0 -1
- package/dist/views/Edit/Default/index.scss +0 -23
- package/dist/views/Edit/Default/types.d.ts +0 -6
- package/dist/views/Edit/Default/types.d.ts.map +0 -1
- package/dist/views/Edit/Default/types.js +0 -2
- package/dist/views/Edit/Default/types.js.map +0 -1
- package/dist/views/Edit/index.client.d.ts +0 -3
- package/dist/views/Edit/index.client.d.ts.map +0 -1
- package/dist/views/Edit/index.client.js +0 -54
- package/dist/views/Edit/index.client.js.map +0 -1
- package/dist/views/List/Default/index.d.ts +0 -4
- package/dist/views/List/Default/index.d.ts.map +0 -1
- package/dist/views/List/Default/index.js +0 -387
- package/dist/views/List/Default/index.js.map +0 -1
- package/dist/views/List/Default/index.scss +0 -179
- package/dist/views/List/Default/types.d.ts +0 -15
- package/dist/views/List/Default/types.d.ts.map +0 -1
- package/dist/views/List/Default/types.js +0 -2
- package/dist/views/List/Default/types.js.map +0 -1
package/dist/views/List/index.js
CHANGED
|
@@ -1,21 +1,36 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui';
|
|
3
|
+
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
4
|
+
import { renderFilters, renderTable } from '@payloadcms/ui/rsc';
|
|
5
|
+
import { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared';
|
|
5
6
|
import { notFound } from 'next/navigation.js';
|
|
6
|
-
import { deepCopyObjectSimple, mergeListSearchAndWhere } from 'payload';
|
|
7
7
|
import { isNumber } from 'payload/shared';
|
|
8
8
|
import React, { Fragment } from 'react';
|
|
9
|
-
import {
|
|
10
|
-
import { DefaultListView } from './Default/index.js';
|
|
9
|
+
import { renderListViewSlots } from './renderListViewSlots.js';
|
|
11
10
|
export { generateListMetadata } from './meta.js';
|
|
12
|
-
export const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
export const renderListView = async args => {
|
|
12
|
+
const {
|
|
13
|
+
clientConfig,
|
|
14
|
+
customCellProps,
|
|
15
|
+
disableBulkDelete,
|
|
16
|
+
disableBulkEdit,
|
|
17
|
+
drawerSlug,
|
|
18
|
+
enableRowSelections,
|
|
19
|
+
initPageResult,
|
|
20
|
+
params,
|
|
21
|
+
query: queryFromArgs,
|
|
22
|
+
searchParams
|
|
23
|
+
} = args;
|
|
17
24
|
const {
|
|
18
25
|
collectionConfig,
|
|
26
|
+
collectionConfig: {
|
|
27
|
+
slug: collectionSlug,
|
|
28
|
+
admin: {
|
|
29
|
+
useAsTitle
|
|
30
|
+
},
|
|
31
|
+
defaultSort,
|
|
32
|
+
fields
|
|
33
|
+
},
|
|
19
34
|
locale: fullLocale,
|
|
20
35
|
permissions,
|
|
21
36
|
req,
|
|
@@ -26,15 +41,15 @@ export const ListView = async ({
|
|
|
26
41
|
payload: {
|
|
27
42
|
config
|
|
28
43
|
},
|
|
29
|
-
query,
|
|
44
|
+
query: queryFromReq,
|
|
30
45
|
user
|
|
31
46
|
},
|
|
32
47
|
visibleEntities
|
|
33
48
|
} = initPageResult;
|
|
34
|
-
const collectionSlug = collectionConfig?.slug;
|
|
35
49
|
if (!permissions?.collections?.[collectionSlug]?.read?.permission) {
|
|
36
|
-
|
|
50
|
+
throw new Error('not-found');
|
|
37
51
|
}
|
|
52
|
+
const query = queryFromArgs || queryFromReq;
|
|
38
53
|
let listPreferences;
|
|
39
54
|
const preferenceKey = `${collectionSlug}-list`;
|
|
40
55
|
try {
|
|
@@ -60,7 +75,7 @@ export const ListView = async ({
|
|
|
60
75
|
}]
|
|
61
76
|
}
|
|
62
77
|
})?.then(res => res?.docs?.[0]?.value);
|
|
63
|
-
} catch (
|
|
78
|
+
} catch (_err) {} // eslint-disable-line no-empty
|
|
64
79
|
const {
|
|
65
80
|
routes: {
|
|
66
81
|
admin: adminRoute
|
|
@@ -68,15 +83,13 @@ export const ListView = async ({
|
|
|
68
83
|
} = config;
|
|
69
84
|
if (collectionConfig) {
|
|
70
85
|
if (!visibleEntities.collections.includes(collectionSlug)) {
|
|
71
|
-
|
|
86
|
+
throw new Error('not-found');
|
|
72
87
|
}
|
|
73
88
|
const page = isNumber(query?.page) ? Number(query.page) : 0;
|
|
74
89
|
const whereQuery = mergeListSearchAndWhere({
|
|
75
90
|
collectionConfig,
|
|
76
|
-
query:
|
|
77
|
-
|
|
78
|
-
where: query?.where || undefined
|
|
79
|
-
}
|
|
91
|
+
search: typeof query?.search === 'string' ? query.search : undefined,
|
|
92
|
+
where: query?.where || undefined
|
|
80
93
|
});
|
|
81
94
|
const limit = isNumber(query?.limit) ? Number(query.limit) : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit;
|
|
82
95
|
const sort = query?.sort && typeof query.sort === 'string' ? query.sort : listPreferences?.sort || (typeof collectionConfig.defaultSort === 'string' ? collectionConfig.defaultSort : undefined);
|
|
@@ -95,75 +108,102 @@ export const ListView = async ({
|
|
|
95
108
|
user,
|
|
96
109
|
where: whereQuery || {}
|
|
97
110
|
});
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}),
|
|
114
|
-
params,
|
|
115
|
-
payload,
|
|
116
|
-
permissions,
|
|
117
|
-
searchParams,
|
|
118
|
-
user
|
|
119
|
-
}
|
|
111
|
+
const clientCollectionConfig = clientConfig.collections.find(c => c.slug === collectionSlug);
|
|
112
|
+
const {
|
|
113
|
+
columnState,
|
|
114
|
+
Table
|
|
115
|
+
} = renderTable({
|
|
116
|
+
collectionConfig: clientCollectionConfig,
|
|
117
|
+
columnPreferences: listPreferences?.columns,
|
|
118
|
+
customCellProps,
|
|
119
|
+
docs: data.docs,
|
|
120
|
+
drawerSlug,
|
|
121
|
+
enableRowSelections,
|
|
122
|
+
fields,
|
|
123
|
+
i18n: req.i18n,
|
|
124
|
+
payload,
|
|
125
|
+
useAsTitle
|
|
120
126
|
});
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
DefaultListView,
|
|
129
|
-
i18n,
|
|
130
|
-
importMap: payload.importMap,
|
|
127
|
+
const renderedFilters = renderFilters(fields, req.payload.importMap);
|
|
128
|
+
const staticDescription = typeof collectionConfig.admin.description === 'function' ? collectionConfig.admin.description({
|
|
129
|
+
t: i18n.t
|
|
130
|
+
}) : collectionConfig.admin.description;
|
|
131
|
+
const listViewSlots = renderListViewSlots({
|
|
132
|
+
collectionConfig,
|
|
133
|
+
description: staticDescription,
|
|
131
134
|
payload
|
|
132
135
|
});
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
const clientProps = {
|
|
137
|
+
...listViewSlots,
|
|
138
|
+
collectionSlug,
|
|
139
|
+
columnState,
|
|
140
|
+
disableBulkDelete,
|
|
141
|
+
disableBulkEdit,
|
|
142
|
+
enableRowSelections,
|
|
143
|
+
hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,
|
|
144
|
+
listPreferences,
|
|
145
|
+
newDocumentURL: formatAdminURL({
|
|
146
|
+
adminRoute,
|
|
147
|
+
path: `/collections/${collectionSlug}/create`
|
|
148
|
+
}),
|
|
149
|
+
renderedFilters,
|
|
150
|
+
Table
|
|
151
|
+
};
|
|
152
|
+
const isInDrawer = Boolean(drawerSlug);
|
|
153
|
+
return {
|
|
154
|
+
List: /*#__PURE__*/_jsxs(Fragment, {
|
|
155
|
+
children: [/*#__PURE__*/_jsx(HydrateAuthProvider, {
|
|
156
|
+
permissions: permissions
|
|
157
|
+
}), /*#__PURE__*/_jsx(ListQueryProvider, {
|
|
158
|
+
collectionSlug: collectionSlug,
|
|
145
159
|
data: data,
|
|
146
|
-
defaultLimit: limit
|
|
160
|
+
defaultLimit: limit,
|
|
147
161
|
defaultSort: sort,
|
|
148
|
-
modifySearchParams:
|
|
162
|
+
modifySearchParams: !isInDrawer,
|
|
149
163
|
preferenceKey: preferenceKey,
|
|
150
|
-
children: /*#__PURE__*/_jsx(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
164
|
+
children: /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
165
|
+
clientProps: clientProps,
|
|
166
|
+
Component: collectionConfig?.admin?.components?.views?.list?.Component,
|
|
167
|
+
Fallback: DefaultListView,
|
|
168
|
+
importMap: payload.importMap,
|
|
169
|
+
serverProps: {
|
|
170
|
+
collectionConfig,
|
|
171
|
+
collectionSlug,
|
|
172
|
+
data,
|
|
173
|
+
i18n,
|
|
174
|
+
limit,
|
|
175
|
+
listPreferences,
|
|
176
|
+
listSearchableFields: collectionConfig.admin.listSearchableFields,
|
|
177
|
+
locale: fullLocale,
|
|
178
|
+
params,
|
|
179
|
+
payload,
|
|
180
|
+
permissions,
|
|
181
|
+
searchParams,
|
|
182
|
+
user
|
|
183
|
+
}
|
|
162
184
|
})
|
|
163
|
-
})
|
|
164
|
-
})
|
|
185
|
+
})]
|
|
186
|
+
})
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
throw new Error('not-found');
|
|
190
|
+
};
|
|
191
|
+
export const ListView = async args => {
|
|
192
|
+
try {
|
|
193
|
+
const {
|
|
194
|
+
List: RenderedList
|
|
195
|
+
} = await renderListView({
|
|
196
|
+
...args,
|
|
197
|
+
enableRowSelections: true
|
|
165
198
|
});
|
|
199
|
+
return RenderedList;
|
|
200
|
+
} catch (error) {
|
|
201
|
+
if (error.message === 'not-found') {
|
|
202
|
+
notFound();
|
|
203
|
+
} else {
|
|
204
|
+
console.error(error) // eslint-disable-line no-console
|
|
205
|
+
;
|
|
206
|
+
}
|
|
166
207
|
}
|
|
167
|
-
return notFound();
|
|
168
208
|
};
|
|
169
209
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["HydrateAuthProvider","ListInfoProvider","ListQueryProvider","TableColumnsProvider","formatAdminURL","getCreateMappedComponent","RenderComponent","createClientCollectionConfig","notFound","deepCopyObjectSimple","mergeListSearchAndWhere","isNumber","React","Fragment","DefaultEditView","DefaultListView","generateListMetadata","ListView","initPageResult","params","searchParams","collectionConfig","locale","fullLocale","permissions","req","i18n","payload","config","query","user","visibleEntities","collectionSlug","slug","collections","read","permission","listPreferences","preferenceKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","error","routes","admin","adminRoute","includes","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","defaultSort","data","draft","fallbackLocale","includeLockStatus","overrideAccess","createMappedComponent","importMap","serverProps","hasCreatePermission","create","listSearchableFields","newDocumentURL","path","ListComponent","components","views","list","Component","clientCollectionConfig","clientCollection","_jsxs","_jsx","modifySearchParams","enableRowSelections","clientProps","mappedComponent"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { AdminViewProps, ClientCollectionConfig, Where } from 'payload'\n\nimport {\n HydrateAuthProvider,\n ListInfoProvider,\n ListQueryProvider,\n TableColumnsProvider,\n} from '@payloadcms/ui'\nimport { formatAdminURL, getCreateMappedComponent, RenderComponent } from '@payloadcms/ui/shared'\nimport { createClientCollectionConfig } from '@payloadcms/ui/utilities/createClientConfig'\nimport { notFound } from 'next/navigation.js'\nimport { deepCopyObjectSimple, mergeListSearchAndWhere } from 'payload'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport type { ListPreferences } from './Default/types.js'\n\nimport { DefaultEditView } from '../Edit/Default/index.js'\nimport { DefaultListView } from './Default/index.js'\n\nexport { generateListMetadata } from './meta.js'\n\nexport const ListView: React.FC<AdminViewProps> = async ({\n initPageResult,\n params,\n searchParams,\n}) => {\n const {\n collectionConfig,\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n const collectionSlug = collectionConfig?.slug\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n notFound()\n }\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n req,\n user,\n where: {\n and: [\n {\n key: {\n equals: preferenceKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user?.id,\n },\n },\n ],\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (error) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug)) {\n return notFound()\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n query: {\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n },\n })\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string'\n ? collectionConfig.defaultSort\n : undefined)\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const createMappedComponent = getCreateMappedComponent({\n importMap: payload.importMap,\n serverProps: {\n collectionConfig,\n collectionSlug,\n data,\n hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n params,\n payload,\n permissions,\n searchParams,\n user,\n },\n })\n\n const ListComponent = createMappedComponent(\n collectionConfig?.admin?.components?.views?.list?.Component,\n undefined,\n DefaultListView,\n 'collectionConfig?.admin?.components?.views?.list?.Component',\n )\n\n let clientCollectionConfig = deepCopyObjectSimple(\n collectionConfig,\n ) as unknown as ClientCollectionConfig\n clientCollectionConfig = createClientCollectionConfig({\n clientCollection: clientCollectionConfig,\n collection: collectionConfig,\n createMappedComponent,\n DefaultEditView,\n DefaultListView,\n i18n,\n importMap: payload.importMap,\n payload,\n })\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListInfoProvider\n collectionConfig={clientCollectionConfig}\n collectionSlug={collectionSlug}\n hasCreatePermission={permissions?.collections?.[collectionSlug]?.create?.permission}\n newDocumentURL={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n })}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || collectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n modifySearchParams\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n collectionSlug={collectionSlug}\n enableRowSelections\n listPreferences={listPreferences}\n preferenceKey={preferenceKey}\n >\n <RenderComponent\n clientProps={{\n collectionSlug,\n listSearchableFields: collectionConfig?.admin?.listSearchableFields,\n }}\n mappedComponent={ListComponent}\n />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n </Fragment>\n )\n }\n\n return notFound()\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["DefaultListView","HydrateAuthProvider","ListQueryProvider","RenderServerComponent","renderFilters","renderTable","formatAdminURL","mergeListSearchAndWhere","notFound","isNumber","React","Fragment","renderListViewSlots","generateListMetadata","renderListView","args","clientConfig","customCellProps","disableBulkDelete","disableBulkEdit","drawerSlug","enableRowSelections","initPageResult","params","query","queryFromArgs","searchParams","collectionConfig","slug","collectionSlug","admin","useAsTitle","defaultSort","fields","locale","fullLocale","permissions","req","i18n","payload","config","queryFromReq","user","visibleEntities","collections","read","permission","Error","listPreferences","preferenceKey","find","collection","depth","limit","where","and","key","equals","id","then","res","docs","value","_err","routes","adminRoute","includes","page","Number","whereQuery","search","undefined","pagination","defaultLimit","sort","data","draft","fallbackLocale","includeLockStatus","overrideAccess","clientCollectionConfig","c","columnState","Table","columnPreferences","columns","renderedFilters","importMap","staticDescription","description","t","listViewSlots","clientProps","hasCreatePermission","create","newDocumentURL","path","isInDrawer","Boolean","List","_jsxs","_jsx","modifySearchParams","Component","components","views","list","Fallback","serverProps","listSearchableFields","ListView","RenderedList","error","message","console"],"sources":["../../../src/views/List/index.tsx"],"sourcesContent":["import type { ListPreferences, ListViewClientProps } from '@payloadcms/ui'\nimport type { AdminViewProps, ListQuery, Where } from 'payload'\n\nimport { DefaultListView, HydrateAuthProvider, ListQueryProvider } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { renderFilters, renderTable } from '@payloadcms/ui/rsc'\nimport { formatAdminURL, mergeListSearchAndWhere } from '@payloadcms/ui/shared'\nimport { notFound } from 'next/navigation.js'\nimport { isNumber } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport { renderListViewSlots } from './renderListViewSlots.js'\n\nexport { generateListMetadata } from './meta.js'\n\ntype ListViewArgs = {\n customCellProps?: Record<string, any>\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n enableRowSelections: boolean\n query: ListQuery\n} & AdminViewProps\n\nexport const renderListView = async (\n args: ListViewArgs,\n): Promise<{\n List: React.ReactNode\n}> => {\n const {\n clientConfig,\n customCellProps,\n disableBulkDelete,\n disableBulkEdit,\n drawerSlug,\n enableRowSelections,\n initPageResult,\n params,\n query: queryFromArgs,\n searchParams,\n } = args\n\n const {\n collectionConfig,\n collectionConfig: {\n slug: collectionSlug,\n admin: { useAsTitle },\n defaultSort,\n fields,\n },\n locale: fullLocale,\n permissions,\n req,\n req: {\n i18n,\n locale,\n payload,\n payload: { config },\n query: queryFromReq,\n user,\n },\n visibleEntities,\n } = initPageResult\n\n if (!permissions?.collections?.[collectionSlug]?.read?.permission) {\n throw new Error('not-found')\n }\n\n const query = queryFromArgs || queryFromReq\n\n let listPreferences: ListPreferences\n const preferenceKey = `${collectionSlug}-list`\n\n try {\n listPreferences = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n req,\n user,\n where: {\n and: [\n {\n key: {\n equals: preferenceKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user?.id,\n },\n },\n ],\n },\n })\n ?.then((res) => res?.docs?.[0]?.value)) as ListPreferences\n } catch (_err) {} // eslint-disable-line no-empty\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n if (collectionConfig) {\n if (!visibleEntities.collections.includes(collectionSlug)) {\n throw new Error('not-found')\n }\n\n const page = isNumber(query?.page) ? Number(query.page) : 0\n\n const whereQuery = mergeListSearchAndWhere({\n collectionConfig,\n search: typeof query?.search === 'string' ? query.search : undefined,\n where: (query?.where as Where) || undefined,\n })\n\n const limit = isNumber(query?.limit)\n ? Number(query.limit)\n : listPreferences?.limit || collectionConfig.admin.pagination.defaultLimit\n\n const sort =\n query?.sort && typeof query.sort === 'string'\n ? query.sort\n : listPreferences?.sort ||\n (typeof collectionConfig.defaultSort === 'string'\n ? collectionConfig.defaultSort\n : undefined)\n\n const data = await payload.find({\n collection: collectionSlug,\n depth: 0,\n draft: true,\n fallbackLocale: null,\n includeLockStatus: true,\n limit,\n locale,\n overrideAccess: false,\n page,\n req,\n sort,\n user,\n where: whereQuery || {},\n })\n\n const clientCollectionConfig = clientConfig.collections.find((c) => c.slug === collectionSlug)\n\n const { columnState, Table } = renderTable({\n collectionConfig: clientCollectionConfig,\n columnPreferences: listPreferences?.columns,\n customCellProps,\n docs: data.docs,\n drawerSlug,\n enableRowSelections,\n fields,\n i18n: req.i18n,\n payload,\n useAsTitle,\n })\n\n const renderedFilters = renderFilters(fields, req.payload.importMap)\n\n const staticDescription =\n typeof collectionConfig.admin.description === 'function'\n ? collectionConfig.admin.description({ t: i18n.t })\n : collectionConfig.admin.description\n\n const listViewSlots = renderListViewSlots({\n collectionConfig,\n description: staticDescription,\n payload,\n })\n\n const clientProps: ListViewClientProps = {\n ...listViewSlots,\n collectionSlug,\n columnState,\n disableBulkDelete,\n disableBulkEdit,\n enableRowSelections,\n hasCreatePermission: permissions?.collections?.[collectionSlug]?.create?.permission,\n listPreferences,\n newDocumentURL: formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/create`,\n }),\n renderedFilters,\n Table,\n }\n\n const isInDrawer = Boolean(drawerSlug)\n\n return {\n List: (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <ListQueryProvider\n collectionSlug={collectionSlug}\n data={data}\n defaultLimit={limit}\n defaultSort={sort}\n modifySearchParams={!isInDrawer}\n preferenceKey={preferenceKey}\n >\n <RenderServerComponent\n clientProps={clientProps}\n Component={collectionConfig?.admin?.components?.views?.list?.Component}\n Fallback={DefaultListView}\n importMap={payload.importMap}\n serverProps={{\n collectionConfig,\n collectionSlug,\n data,\n i18n,\n limit,\n listPreferences,\n listSearchableFields: collectionConfig.admin.listSearchableFields,\n locale: fullLocale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n }}\n />\n </ListQueryProvider>\n </Fragment>\n ),\n }\n }\n\n throw new Error('not-found')\n}\n\nexport const ListView: React.FC<ListViewArgs> = async (args) => {\n try {\n const { List: RenderedList } = await renderListView({ ...args, enableRowSelections: true })\n return RenderedList\n } catch (error) {\n if (error.message === 'not-found') {\n notFound()\n } else {\n console.error(error) // eslint-disable-line no-console\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ListViewSlots } from '@payloadcms/ui';
|
|
2
|
+
import type { Payload, SanitizedCollectionConfig, StaticDescription } from 'payload';
|
|
3
|
+
export declare const renderListViewSlots: ({ collectionConfig, description, payload, }: {
|
|
4
|
+
collectionConfig: SanitizedCollectionConfig;
|
|
5
|
+
description?: StaticDescription;
|
|
6
|
+
payload: Payload;
|
|
7
|
+
}) => ListViewSlots;
|
|
8
|
+
//# sourceMappingURL=renderListViewSlots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderListViewSlots.d.ts","sourceRoot":"","sources":["../../../src/views/List/renderListViewSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAIpF,eAAO,MAAM,mBAAmB,gDAI7B;IACD,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,aAoDH,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
3
|
+
export const renderListViewSlots = ({
|
|
4
|
+
collectionConfig,
|
|
5
|
+
description,
|
|
6
|
+
payload
|
|
7
|
+
}) => {
|
|
8
|
+
const result = {};
|
|
9
|
+
if (collectionConfig.admin.components?.afterList) {
|
|
10
|
+
result.AfterList = /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
11
|
+
Component: collectionConfig.admin.components.afterList,
|
|
12
|
+
importMap: payload.importMap
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
if (collectionConfig.admin.components?.afterListTable) {
|
|
16
|
+
result.AfterListTable = /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
17
|
+
Component: collectionConfig.admin.components.afterListTable,
|
|
18
|
+
importMap: payload.importMap
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (collectionConfig.admin.components?.beforeList) {
|
|
22
|
+
result.BeforeList = /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
23
|
+
Component: collectionConfig.admin.components.beforeList,
|
|
24
|
+
importMap: payload.importMap
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (collectionConfig.admin.components?.beforeListTable) {
|
|
28
|
+
result.BeforeListTable = /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
29
|
+
Component: collectionConfig.admin.components.beforeListTable,
|
|
30
|
+
importMap: payload.importMap
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (collectionConfig.admin.components?.Description) {
|
|
34
|
+
result.Description = /*#__PURE__*/_jsx(RenderServerComponent, {
|
|
35
|
+
clientProps: {
|
|
36
|
+
description
|
|
37
|
+
},
|
|
38
|
+
Component: collectionConfig.admin.components.Description,
|
|
39
|
+
importMap: payload.importMap
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=renderListViewSlots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderListViewSlots.js","names":["RenderServerComponent","renderListViewSlots","collectionConfig","description","payload","result","admin","components","afterList","AfterList","_jsx","Component","importMap","afterListTable","AfterListTable","beforeList","BeforeList","beforeListTable","BeforeListTable","Description","clientProps"],"sources":["../../../src/views/List/renderListViewSlots.tsx"],"sourcesContent":["import type { ListViewSlots } from '@payloadcms/ui'\nimport type { Payload, SanitizedCollectionConfig, StaticDescription } from 'payload'\n\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\n\nexport const renderListViewSlots = ({\n collectionConfig,\n description,\n payload,\n}: {\n collectionConfig: SanitizedCollectionConfig\n description?: StaticDescription\n payload: Payload\n}): ListViewSlots => {\n const result: ListViewSlots = {} as ListViewSlots\n\n if (collectionConfig.admin.components?.afterList) {\n result.AfterList = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.afterList}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.afterListTable) {\n result.AfterListTable = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.afterListTable}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.beforeList) {\n result.BeforeList = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.beforeList}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.beforeListTable) {\n result.BeforeListTable = (\n <RenderServerComponent\n Component={collectionConfig.admin.components.beforeListTable}\n importMap={payload.importMap}\n />\n )\n }\n\n if (collectionConfig.admin.components?.Description) {\n result.Description = (\n <RenderServerComponent\n clientProps={{\n description,\n }}\n Component={collectionConfig.admin.components.Description}\n importMap={payload.importMap}\n />\n )\n }\n\n return result\n}\n"],"mappings":";AAGA,SAASA,qBAAqB,QAAQ;AAEtC,OAAO,MAAMC,mBAAA,GAAsBA,CAAC;EAClCC,gBAAgB;EAChBC,WAAW;EACXC;AAAO,CAKR;EACC,MAAMC,MAAA,GAAwB,CAAC;EAE/B,IAAIH,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEC,SAAA,EAAW;IAChDH,MAAA,CAAOI,SAAS,gBACdC,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACC,SAAS;MACtDI,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEM,cAAA,EAAgB;IACrDR,MAAA,CAAOS,cAAc,gBACnBJ,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACM,cAAc;MAC3DD,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEQ,UAAA,EAAY;IACjDV,MAAA,CAAOW,UAAU,gBACfN,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACQ,UAAU;MACvDH,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEU,eAAA,EAAiB;IACtDZ,MAAA,CAAOa,eAAe,gBACpBR,IAAA,CAACV,qBAAA;MACCW,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACU,eAAe;MAC5DL,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,IAAIV,gBAAA,CAAiBI,KAAK,CAACC,UAAU,EAAEY,WAAA,EAAa;IAClDd,MAAA,CAAOc,WAAW,gBAChBT,IAAA,CAACV,qBAAA;MACCoB,WAAA,EAAa;QACXjB;MACF;MACAQ,SAAA,EAAWT,gBAAA,CAAiBI,KAAK,CAACC,UAAU,CAACY,WAAW;MACxDP,SAAA,EAAWR,OAAA,CAAQQ;;EAGzB;EAEA,OAAOP,MAAA;AACT","ignoreList":[]}
|
|
@@ -13,8 +13,8 @@ export type SizeReducerAction = {
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
export declare const sizeReducer: (state: SizeReducerState, action: SizeReducerAction) => {
|
|
16
|
-
width: number;
|
|
17
16
|
height: number;
|
|
17
|
+
width: number;
|
|
18
18
|
};
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=sizeReducer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sizeReducer.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"names":[],"mappings":"AAWA,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAEL,eAAO,MAAM,WAAW,UAAW,gBAAgB,UAAU,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"sizeReducer.d.ts","sourceRoot":"","sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"names":[],"mappings":"AAWA,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAEL,eAAO,MAAM,WAAW,UAAW,gBAAgB,UAAU,iBAAiB;;WAhBrE,MAAM;CAyBd,CAAA"}
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
// },
|
|
11
11
|
export const sizeReducer = (state, action) => {
|
|
12
12
|
switch (action.type) {
|
|
13
|
-
case '
|
|
13
|
+
case 'height':
|
|
14
14
|
return {
|
|
15
15
|
...state,
|
|
16
|
-
|
|
16
|
+
height: action.value
|
|
17
17
|
};
|
|
18
|
-
case '
|
|
18
|
+
case 'width':
|
|
19
19
|
return {
|
|
20
20
|
...state,
|
|
21
|
-
|
|
21
|
+
width: action.value
|
|
22
22
|
};
|
|
23
23
|
default:
|
|
24
24
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","
|
|
1
|
+
{"version":3,"file":"sizeReducer.js","names":["sizeReducer","state","action","type","height","value","width"],"sources":["../../../../src/views/LivePreview/Context/sizeReducer.ts"],"sourcesContent":["// export const sizeReducer: (state, action) => {\n// switch (action.type) {\n// case 'width':\n// return { ...state, width: action.value }\n// case 'height':\n// return { ...state, height: action.value }\n// default:\n// return { ...state, ...(action?.value || {}) }\n// }\n// },\n\ntype SizeReducerState = {\n height: number\n width: number\n}\n\nexport type SizeReducerAction =\n | {\n type: 'height' | 'width'\n value: number\n }\n | {\n type: 'reset'\n value: {\n height: number\n width: number\n }\n }\n\nexport const sizeReducer = (state: SizeReducerState, action: SizeReducerAction) => {\n switch (action.type) {\n case 'height':\n return { ...state, height: action.value }\n case 'width':\n return { ...state, width: action.value }\n default:\n return { ...state, ...(action?.value || {}) }\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoBA,OAAO,MAAMA,WAAA,GAAcA,CAACC,KAAA,EAAyBC,MAAA;EACnD,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MACH,OAAO;QAAE,GAAGF,KAAK;QAAEG,MAAA,EAAQF,MAAA,CAAOG;MAAM;IAC1C,KAAK;MACH,OAAO;QAAE,GAAGJ,KAAK;QAAEK,KAAA,EAAOJ,MAAA,CAAOG;MAAM;IACzC;MACE,OAAO;QAAE,GAAGJ,KAAK;QAAE,IAAIC,MAAA,EAAQG,KAAA,IAAS,CAAC,CAAC;MAAE;EAChD;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAMV,IAAI,EACJ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AA2BhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAIjF,OAAO,cAAc,CAAA;AA4ZrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CA8CA,CAAA"}
|
|
@@ -2,28 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
-
import { DocumentControls, DocumentFields, Form, OperationProvider,
|
|
6
|
-
import {
|
|
5
|
+
import { DocumentControls, DocumentFields, DocumentLocked, DocumentTakeOver, Form, LeaveWithoutSaving, OperationProvider, SetDocumentStepNav, SetDocumentTitle, useAuth, useConfig, useDocumentDrawerContext, useDocumentEvents, useDocumentInfo, useServerFunctions, useTranslation } from '@payloadcms/ui';
|
|
6
|
+
import { abortAndIgnore, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
|
|
7
7
|
import { useRouter } from 'next/navigation.js';
|
|
8
8
|
import React, { Fragment, useCallback, useEffect, useRef, useState } from 'react';
|
|
9
|
-
import { DocumentLocked } from '../../elements/DocumentLocked/index.js';
|
|
10
|
-
import { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js';
|
|
11
|
-
import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
|
|
12
|
-
import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
|
|
13
|
-
import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
|
|
14
9
|
import { useLivePreviewContext } from './Context/context.js';
|
|
15
10
|
import { LivePreviewProvider } from './Context/index.js';
|
|
16
11
|
import { LivePreview } from './Preview/index.js';
|
|
17
12
|
import { usePopupWindow } from './usePopupWindow.js';
|
|
18
13
|
const baseClass = 'live-preview';
|
|
19
14
|
const PreviewView = ({
|
|
20
|
-
apiRoute,
|
|
21
15
|
collectionConfig,
|
|
22
16
|
config,
|
|
23
17
|
fields,
|
|
24
18
|
globalConfig,
|
|
25
|
-
schemaPath
|
|
26
|
-
serverURL
|
|
19
|
+
schemaPath
|
|
27
20
|
}) => {
|
|
28
21
|
const {
|
|
29
22
|
id,
|
|
@@ -31,7 +24,6 @@ const PreviewView = ({
|
|
|
31
24
|
AfterDocument,
|
|
32
25
|
AfterFields,
|
|
33
26
|
apiURL,
|
|
34
|
-
BeforeDocument,
|
|
35
27
|
BeforeFields,
|
|
36
28
|
collectionSlug,
|
|
37
29
|
currentEditor,
|
|
@@ -48,12 +40,17 @@ const PreviewView = ({
|
|
|
48
40
|
isEditing,
|
|
49
41
|
isInitializing,
|
|
50
42
|
lastUpdateTime,
|
|
51
|
-
onSave: onSaveFromProps,
|
|
52
43
|
setCurrentEditor,
|
|
53
44
|
setDocumentIsLocked,
|
|
54
45
|
unlockDocument,
|
|
55
46
|
updateDocumentEditor
|
|
56
47
|
} = useDocumentInfo();
|
|
48
|
+
const {
|
|
49
|
+
getFormState
|
|
50
|
+
} = useServerFunctions();
|
|
51
|
+
const {
|
|
52
|
+
onSave: onSaveFromProps
|
|
53
|
+
} = useDocumentDrawerContext();
|
|
57
54
|
const operation = id ? 'update' : 'create';
|
|
58
55
|
const {
|
|
59
56
|
config: {
|
|
@@ -88,6 +85,7 @@ const PreviewView = ({
|
|
|
88
85
|
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
89
86
|
const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
|
|
90
87
|
const [showTakeOverModal, setShowTakeOverModal] = useState(false);
|
|
88
|
+
const formStateAbortControllerRef = useRef(new AbortController());
|
|
91
89
|
const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
|
|
92
90
|
const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
|
|
93
91
|
const isLockExpired = Date.now() > lockExpiryTime;
|
|
@@ -121,6 +119,9 @@ const PreviewView = ({
|
|
|
121
119
|
const onChange = useCallback(async ({
|
|
122
120
|
formState: prevFormState
|
|
123
121
|
}) => {
|
|
122
|
+
abortAndIgnore(formStateAbortControllerRef.current);
|
|
123
|
+
const controller = new AbortController();
|
|
124
|
+
formStateAbortControllerRef.current = controller;
|
|
124
125
|
const currentTime = Date.now();
|
|
125
126
|
const timeSinceLastUpdate = currentTime - editSessionStartTime;
|
|
126
127
|
const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
|
|
@@ -133,26 +134,25 @@ const PreviewView = ({
|
|
|
133
134
|
lockedState,
|
|
134
135
|
state
|
|
135
136
|
} = await getFormState({
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
serverURL
|
|
137
|
+
id,
|
|
138
|
+
collectionSlug,
|
|
139
|
+
docPermissions,
|
|
140
|
+
docPreferences,
|
|
141
|
+
formState: prevFormState,
|
|
142
|
+
globalSlug,
|
|
143
|
+
operation,
|
|
144
|
+
returnLockStatus: isLockingEnabled ? true : false,
|
|
145
|
+
schemaPath,
|
|
146
|
+
signal: controller.signal,
|
|
147
|
+
updateLastEdited
|
|
149
148
|
});
|
|
150
149
|
setDocumentIsLocked(true);
|
|
151
150
|
if (isLockingEnabled) {
|
|
152
151
|
const previousOwnerId = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
|
|
153
152
|
if (lockedState) {
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
const lockedUserID = typeof lockedState.user === 'string' || typeof lockedState.user === 'number' ? lockedState.user : lockedState.user.id;
|
|
154
|
+
if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {
|
|
155
|
+
if (previousOwnerId === user.id && lockedUserID !== user.id) {
|
|
156
156
|
setShowTakeOverModal(true);
|
|
157
157
|
documentLockStateRef.current.hasShownLockedModal = true;
|
|
158
158
|
}
|
|
@@ -166,7 +166,7 @@ const PreviewView = ({
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
return state;
|
|
169
|
-
}, [
|
|
169
|
+
}, [editSessionStartTime, isLockingEnabled, getDocPreferences, getFormState, id, collectionSlug, docPermissions, globalSlug, operation, schemaPath, setDocumentIsLocked, user.id, setCurrentEditor]);
|
|
170
170
|
// Clean up when the component unmounts or when the document is unlocked
|
|
171
171
|
useEffect(() => {
|
|
172
172
|
return () => {
|
|
@@ -190,6 +190,11 @@ const PreviewView = ({
|
|
|
190
190
|
setShowTakeOverModal(false);
|
|
191
191
|
};
|
|
192
192
|
}, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
return () => {
|
|
195
|
+
abortAndIgnore(formStateAbortControllerRef.current);
|
|
196
|
+
};
|
|
197
|
+
});
|
|
193
198
|
const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal &&
|
|
194
199
|
// eslint-disable-next-line react-compiler/react-compiler
|
|
195
200
|
!documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
|
|
@@ -258,14 +263,14 @@ const PreviewView = ({
|
|
|
258
263
|
className: [baseClass, previewWindowType === 'popup' && `${baseClass}--detached`].filter(Boolean).join(' '),
|
|
259
264
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
260
265
|
className: [`${baseClass}__main`, previewWindowType === 'popup' && `${baseClass}__main--popup-open`].filter(Boolean).join(' '),
|
|
261
|
-
children: [
|
|
266
|
+
children: [/*#__PURE__*/_jsx(DocumentFields, {
|
|
262
267
|
AfterFields: AfterFields,
|
|
263
268
|
BeforeFields: BeforeFields,
|
|
264
269
|
docPermissions: docPermissions,
|
|
265
270
|
fields: fields,
|
|
266
271
|
forceSidebarWrap: true,
|
|
267
272
|
readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
|
|
268
|
-
|
|
273
|
+
schemaPathSegments: [collectionSlug || globalSlug]
|
|
269
274
|
}), AfterDocument]
|
|
270
275
|
}), /*#__PURE__*/_jsx(LivePreview, {
|
|
271
276
|
collectionSlug: collectionSlug,
|
|
@@ -322,10 +327,8 @@ export const LivePreviewClient = props => {
|
|
|
322
327
|
globalSlug
|
|
323
328
|
});
|
|
324
329
|
const schemaPath = collectionSlug || globalSlug;
|
|
325
|
-
t3 =
|
|
326
|
-
children:
|
|
327
|
-
actions: (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions
|
|
328
|
-
}), _jsx(LivePreviewProvider, {
|
|
330
|
+
t3 = _jsx(Fragment, {
|
|
331
|
+
children: _jsx(LivePreviewProvider, {
|
|
329
332
|
breakpoints,
|
|
330
333
|
fieldSchema: collectionConfig?.fields || globalConfig?.fields,
|
|
331
334
|
isPopupOpen,
|
|
@@ -341,7 +344,7 @@ export const LivePreviewClient = props => {
|
|
|
341
344
|
schemaPath,
|
|
342
345
|
serverURL
|
|
343
346
|
})
|
|
344
|
-
})
|
|
347
|
+
})
|
|
345
348
|
});
|
|
346
349
|
$[2] = collectionSlug;
|
|
347
350
|
$[3] = getEntityConfig;
|