@payloadcms/next 3.68.0-internal-debug.591ab42 → 3.68.0-internal-debug.e9b66ee
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/DocumentHeader/Tabs/Tab/TabLink.js +6 -21
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +20 -44
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +41 -73
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +1 -10
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.js +7 -45
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/FormHeader/index.js +4 -25
- package/dist/elements/FormHeader/index.js.map +1 -1
- package/dist/elements/Nav/NavHamburger/index.js +5 -21
- package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +10 -24
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SettingsMenuButton/index.js +4 -27
- package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
- package/dist/elements/Nav/index.client.js +43 -91
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.js +48 -100
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/layouts/Root/NestProviders.js +3 -12
- package/dist/layouts/Root/NestProviders.js.map +1 -1
- package/dist/layouts/Root/index.js +19 -84
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +5 -0
- package/dist/routes/rest/og/image.js +61 -97
- package/dist/routes/rest/og/image.js.map +1 -1
- package/dist/routes/rest/og/index.js +1 -15
- package/dist/routes/rest/og/index.js.map +1 -1
- package/dist/templates/Default/NavHamburger/index.js +1 -10
- package/dist/templates/Default/NavHamburger/index.js.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +9 -16
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.js +38 -106
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Minimal/index.js +3 -18
- package/dist/templates/Minimal/index.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js +5 -15
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/RenderJSON/index.js +59 -156
- package/dist/views/API/RenderJSON/index.js.map +1 -1
- package/dist/views/API/index.client.js +71 -215
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.js +1 -7
- package/dist/views/API/index.js.map +1 -1
- package/dist/views/Account/ResetPreferences/index.js +8 -35
- package/dist/views/Account/ResetPreferences/index.js.map +1 -1
- package/dist/views/Account/Settings/LanguageSelector.js +3 -15
- package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
- package/dist/views/Account/Settings/index.js +12 -58
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +19 -30
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.js +25 -83
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/BrowseByFolder/buildView.js +28 -38
- package/dist/views/BrowseByFolder/buildView.js.map +1 -1
- package/dist/views/CollectionFolders/buildView.js +35 -45
- package/dist/views/CollectionFolders/buildView.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +20 -75
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.js +5 -36
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.js +94 -169
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/index.js +24 -43
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/index.js +14 -76
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/index.js +1 -9
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +57 -104
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.js +23 -75
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/index.js +31 -53
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.js +9 -21
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Login/LoginField/index.js +23 -49
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js +20 -68
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/index.js +33 -66
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +7 -36
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.js +4 -26
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.client.js +15 -55
- package/dist/views/NotFound/index.client.js.map +1 -1
- package/dist/views/NotFound/index.js +5 -33
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/ResetPassword/ResetPasswordForm/index.js +12 -57
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.js +23 -86
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Root/index.js +12 -52
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Unauthorized/index.js +15 -50
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Verify/index.js +10 -47
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js +1 -1
- package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
- package/dist/views/Version/Default/index.js +52 -258
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +16 -65
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +24 -66
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +5 -34
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +10 -55
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +43 -128
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +23 -151
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +3 -16
- package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +51 -122
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +4 -17
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +27 -176
- package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +1 -9
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/Restore/index.js +21 -61
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +16 -24
- package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +6 -37
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +10 -40
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.js +17 -33
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +17 -84
- package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
- package/dist/views/Version/index.js +21 -63
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.js +9 -58
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +4 -31
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +7 -15
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/cells/ID/index.js +2 -9
- package/dist/views/Versions/cells/ID/index.js.map +1 -1
- package/dist/views/Versions/index.client.js +20 -98
- package/dist/views/Versions/index.client.js.map +1 -1
- package/dist/views/Versions/index.js +13 -59
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +10 -9
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
1
|
import { getTranslation } from '@payloadcms/translations';
|
|
3
2
|
import { Button, Card, Gutter, Locked } from '@payloadcms/ui';
|
|
4
3
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
5
4
|
import { EntityType } from '@payloadcms/ui/shared';
|
|
6
5
|
import { formatAdminURL } from 'payload/shared';
|
|
7
|
-
import
|
|
6
|
+
import { Fragment } from 'react';
|
|
8
7
|
import './index.scss';
|
|
9
8
|
const baseClass = 'dashboard';
|
|
10
9
|
/**
|
|
@@ -13,174 +12,100 @@ const baseClass = 'dashboard';
|
|
|
13
12
|
* Components now import their own `Link` directly from `next/link`.
|
|
14
13
|
*/ export function DefaultDashboard(props) {
|
|
15
14
|
const { globalData, i18n, i18n: { t }, locale, navGroups, params, payload: { config: { admin: { components: { afterDashboard, beforeDashboard } }, routes: { admin: adminRoute } } }, payload, permissions, searchParams, user } = props;
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
});
|
|
83
|
-
href = formatAdminURL({
|
|
84
|
-
adminRoute,
|
|
85
|
-
path: `/globals/${slug}`
|
|
86
|
-
});
|
|
87
|
-
// Find the lock status for the global
|
|
88
|
-
const globalLockData = globalData.find((global)=>global.slug === slug);
|
|
89
|
-
if (globalLockData) {
|
|
90
|
-
isLocked = globalLockData.data._isLocked;
|
|
91
|
-
userEditing = globalLockData.data._userEditing;
|
|
92
|
-
// Check if the lock is expired
|
|
93
|
-
const lockDuration = globalLockData?.lockDuration;
|
|
94
|
-
const lastEditedAt = new Date(globalLockData.data?._lastEditedAt).getTime();
|
|
95
|
-
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
96
|
-
const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds;
|
|
97
|
-
if (new Date().getTime() > lockExpirationTime) {
|
|
98
|
-
isLocked = false;
|
|
99
|
-
userEditing = null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return /*#__PURE__*/ _jsxDEV("li", {
|
|
104
|
-
children: /*#__PURE__*/ _jsxDEV(Card, {
|
|
105
|
-
actions: isLocked && user?.id !== userEditing?.id ? /*#__PURE__*/ _jsxDEV(Locked, {
|
|
106
|
-
className: `${baseClass}__locked`,
|
|
107
|
-
user: userEditing
|
|
108
|
-
}, void 0, false, {
|
|
109
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
110
|
-
lineNumber: 148,
|
|
111
|
-
columnNumber: 33
|
|
112
|
-
}, void 0) : hasCreatePermission && type === EntityType.collection ? /*#__PURE__*/ _jsxDEV(Button, {
|
|
113
|
-
"aria-label": t('general:createNewLabel', {
|
|
114
|
-
label
|
|
115
|
-
}),
|
|
116
|
-
buttonStyle: "icon-label",
|
|
117
|
-
el: "link",
|
|
118
|
-
icon: "plus",
|
|
119
|
-
iconStyle: "with-border",
|
|
120
|
-
round: true,
|
|
121
|
-
to: createHREF
|
|
122
|
-
}, void 0, false, {
|
|
123
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
124
|
-
lineNumber: 150,
|
|
125
|
-
columnNumber: 33
|
|
126
|
-
}, void 0) : undefined,
|
|
127
|
-
buttonAriaLabel: buttonAriaLabel,
|
|
128
|
-
href: href,
|
|
129
|
-
id: `card-${slug}`,
|
|
130
|
-
title: getTranslation(label, i18n),
|
|
131
|
-
titleAs: "h3"
|
|
132
|
-
}, void 0, false, {
|
|
133
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
134
|
-
lineNumber: 145,
|
|
135
|
-
columnNumber: 27
|
|
136
|
-
}, this)
|
|
137
|
-
}, entityIndex, false, {
|
|
138
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
139
|
-
lineNumber: 144,
|
|
140
|
-
columnNumber: 25
|
|
141
|
-
}, this);
|
|
142
|
-
})
|
|
143
|
-
}, void 0, false, {
|
|
144
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
145
|
-
lineNumber: 84,
|
|
146
|
-
columnNumber: 19
|
|
147
|
-
}, this)
|
|
148
|
-
]
|
|
149
|
-
}, groupIndex, true, {
|
|
150
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
151
|
-
lineNumber: 82,
|
|
152
|
-
columnNumber: 17
|
|
153
|
-
}, this);
|
|
154
|
-
})
|
|
155
|
-
}, void 0, false, {
|
|
156
|
-
fileName: "src/views/Dashboard/Default/index.tsx",
|
|
157
|
-
lineNumber: 76,
|
|
158
|
-
columnNumber: 9
|
|
159
|
-
}, this),
|
|
160
|
-
afterDashboard && RenderServerComponent({
|
|
161
|
-
Component: afterDashboard,
|
|
162
|
-
importMap: payload.importMap,
|
|
163
|
-
serverProps: {
|
|
164
|
-
i18n,
|
|
165
|
-
locale,
|
|
166
|
-
params,
|
|
167
|
-
payload,
|
|
168
|
-
permissions,
|
|
169
|
-
searchParams,
|
|
170
|
-
user
|
|
15
|
+
return <div className={baseClass}>
|
|
16
|
+
<Gutter className={`${baseClass}__wrap`}>
|
|
17
|
+
{beforeDashboard && RenderServerComponent({
|
|
18
|
+
Component: beforeDashboard,
|
|
19
|
+
importMap: payload.importMap,
|
|
20
|
+
serverProps: {
|
|
21
|
+
i18n,
|
|
22
|
+
locale,
|
|
23
|
+
params,
|
|
24
|
+
payload,
|
|
25
|
+
permissions,
|
|
26
|
+
searchParams,
|
|
27
|
+
user
|
|
28
|
+
}
|
|
29
|
+
})}
|
|
30
|
+
|
|
31
|
+
<Fragment>
|
|
32
|
+
{!navGroups || navGroups?.length === 0 ? <p>no nav groups....</p> : navGroups.map(({ entities, label }, groupIndex)=>{
|
|
33
|
+
return <div className={`${baseClass}__group`} key={groupIndex}>
|
|
34
|
+
<h2 className={`${baseClass}__label`}>{label}</h2>
|
|
35
|
+
<ul className={`${baseClass}__card-list`}>
|
|
36
|
+
{entities.map(({ slug, type, label }, entityIndex)=>{
|
|
37
|
+
let title;
|
|
38
|
+
let buttonAriaLabel;
|
|
39
|
+
let createHREF;
|
|
40
|
+
let href;
|
|
41
|
+
let hasCreatePermission;
|
|
42
|
+
let isLocked = null;
|
|
43
|
+
let userEditing = null;
|
|
44
|
+
if (type === EntityType.collection) {
|
|
45
|
+
title = getTranslation(label, i18n);
|
|
46
|
+
buttonAriaLabel = t('general:showAllLabel', {
|
|
47
|
+
label: title
|
|
48
|
+
});
|
|
49
|
+
href = formatAdminURL({
|
|
50
|
+
adminRoute,
|
|
51
|
+
path: `/collections/${slug}`
|
|
52
|
+
});
|
|
53
|
+
createHREF = formatAdminURL({
|
|
54
|
+
adminRoute,
|
|
55
|
+
path: `/collections/${slug}/create`
|
|
56
|
+
});
|
|
57
|
+
hasCreatePermission = permissions?.collections?.[slug]?.create;
|
|
58
|
+
}
|
|
59
|
+
if (type === EntityType.global) {
|
|
60
|
+
title = getTranslation(label, i18n);
|
|
61
|
+
buttonAriaLabel = t('general:editLabel', {
|
|
62
|
+
label: getTranslation(label, i18n)
|
|
63
|
+
});
|
|
64
|
+
href = formatAdminURL({
|
|
65
|
+
adminRoute,
|
|
66
|
+
path: `/globals/${slug}`
|
|
67
|
+
});
|
|
68
|
+
// Find the lock status for the global
|
|
69
|
+
const globalLockData = globalData.find((global)=>global.slug === slug);
|
|
70
|
+
if (globalLockData) {
|
|
71
|
+
isLocked = globalLockData.data._isLocked;
|
|
72
|
+
userEditing = globalLockData.data._userEditing;
|
|
73
|
+
// Check if the lock is expired
|
|
74
|
+
const lockDuration = globalLockData?.lockDuration;
|
|
75
|
+
const lastEditedAt = new Date(globalLockData.data?._lastEditedAt).getTime();
|
|
76
|
+
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
77
|
+
const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds;
|
|
78
|
+
if (new Date().getTime() > lockExpirationTime) {
|
|
79
|
+
isLocked = false;
|
|
80
|
+
userEditing = null;
|
|
171
81
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return <li key={entityIndex}>
|
|
85
|
+
<Card actions={isLocked && user?.id !== userEditing?.id ? <Locked className={`${baseClass}__locked`} user={userEditing}/> : hasCreatePermission && type === EntityType.collection ? <Button aria-label={t('general:createNewLabel', {
|
|
86
|
+
label
|
|
87
|
+
})} buttonStyle="icon-label" el="link" icon="plus" iconStyle="with-border" round to={createHREF}/> : undefined} buttonAriaLabel={buttonAriaLabel} href={href} id={`card-${slug}`} title={getTranslation(label, i18n)} titleAs="h3"/>
|
|
88
|
+
</li>;
|
|
89
|
+
})}
|
|
90
|
+
</ul>
|
|
91
|
+
</div>;
|
|
92
|
+
})}
|
|
93
|
+
</Fragment>
|
|
94
|
+
{afterDashboard && RenderServerComponent({
|
|
95
|
+
Component: afterDashboard,
|
|
96
|
+
importMap: payload.importMap,
|
|
97
|
+
serverProps: {
|
|
98
|
+
i18n,
|
|
99
|
+
locale,
|
|
100
|
+
params,
|
|
101
|
+
payload,
|
|
102
|
+
permissions,
|
|
103
|
+
searchParams,
|
|
104
|
+
user
|
|
105
|
+
}
|
|
106
|
+
})}
|
|
107
|
+
</Gutter>
|
|
108
|
+
</div>;
|
|
184
109
|
}
|
|
185
110
|
|
|
186
111
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { AdminViewServerPropsOnly, ClientUser, Locale, ServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n navGroups?: ReturnType<typeof groupNavItems>\n} & AdminViewServerPropsOnly\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const {\n globalData,\n i18n,\n i18n: { t },\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n </Gutter>\n </div>\n )\n}\n"],"names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","React","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","div","className","Component","importMap","serverProps","length","p","map","entities","label","groupIndex","h2","ul","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","li","actions","id","aria-label","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Dashboard/Default/index.tsx"],"sourcesContent":["import type { groupNavItems } from '@payloadcms/ui/shared'\nimport type { AdminViewServerPropsOnly, ClientUser, Locale, ServerProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, Card, Gutter, Locked } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType } from '@payloadcms/ui/shared'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment } from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dashboard'\n\nexport type DashboardViewClientProps = {\n locale: Locale\n}\n\nexport type DashboardViewServerPropsOnly = {\n globalData: Array<{\n data: { _isLocked: boolean; _lastEditedAt: string; _userEditing: ClientUser | number | string }\n lockDuration?: number\n slug: string\n }>\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n navGroups?: ReturnType<typeof groupNavItems>\n} & AdminViewServerPropsOnly\n\nexport type DashboardViewServerProps = DashboardViewClientProps & DashboardViewServerPropsOnly\n\nexport function DefaultDashboard(props: DashboardViewServerProps) {\n const {\n globalData,\n i18n,\n i18n: { t },\n locale,\n navGroups,\n params,\n payload: {\n config: {\n admin: {\n components: { afterDashboard, beforeDashboard },\n },\n routes: { admin: adminRoute },\n },\n },\n payload,\n permissions,\n searchParams,\n user,\n } = props\n\n return (\n <div className={baseClass}>\n <Gutter className={`${baseClass}__wrap`}>\n {beforeDashboard &&\n RenderServerComponent({\n Component: beforeDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n\n <Fragment>\n {!navGroups || navGroups?.length === 0 ? (\n <p>no nav groups....</p>\n ) : (\n navGroups.map(({ entities, label }, groupIndex) => {\n return (\n <div className={`${baseClass}__group`} key={groupIndex}>\n <h2 className={`${baseClass}__label`}>{label}</h2>\n <ul className={`${baseClass}__card-list`}>\n {entities.map(({ slug, type, label }, entityIndex) => {\n let title: string\n let buttonAriaLabel: string\n let createHREF: string\n let href: string\n let hasCreatePermission: boolean\n let isLocked = null\n let userEditing = null\n\n if (type === EntityType.collection) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:showAllLabel', { label: title })\n\n href = formatAdminURL({ adminRoute, path: `/collections/${slug}` })\n\n createHREF = formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/create`,\n })\n\n hasCreatePermission = permissions?.collections?.[slug]?.create\n }\n\n if (type === EntityType.global) {\n title = getTranslation(label, i18n)\n\n buttonAriaLabel = t('general:editLabel', {\n label: getTranslation(label, i18n),\n })\n\n href = formatAdminURL({\n adminRoute,\n path: `/globals/${slug}`,\n })\n\n // Find the lock status for the global\n const globalLockData = globalData.find((global) => global.slug === slug)\n if (globalLockData) {\n isLocked = globalLockData.data._isLocked\n userEditing = globalLockData.data._userEditing\n\n // Check if the lock is expired\n const lockDuration = globalLockData?.lockDuration\n const lastEditedAt = new Date(\n globalLockData.data?._lastEditedAt,\n ).getTime()\n\n const lockDurationInMilliseconds = lockDuration * 1000\n const lockExpirationTime = lastEditedAt + lockDurationInMilliseconds\n\n if (new Date().getTime() > lockExpirationTime) {\n isLocked = false\n userEditing = null\n }\n }\n }\n\n return (\n <li key={entityIndex}>\n <Card\n actions={\n isLocked && user?.id !== userEditing?.id ? (\n <Locked className={`${baseClass}__locked`} user={userEditing} />\n ) : hasCreatePermission && type === EntityType.collection ? (\n <Button\n aria-label={t('general:createNewLabel', {\n label,\n })}\n buttonStyle=\"icon-label\"\n el=\"link\"\n icon=\"plus\"\n iconStyle=\"with-border\"\n round\n to={createHREF}\n />\n ) : undefined\n }\n buttonAriaLabel={buttonAriaLabel}\n href={href}\n id={`card-${slug}`}\n title={getTranslation(label, i18n)}\n titleAs=\"h3\"\n />\n </li>\n )\n })}\n </ul>\n </div>\n )\n })\n )}\n </Fragment>\n {afterDashboard &&\n RenderServerComponent({\n Component: afterDashboard,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user,\n } satisfies ServerProps,\n })}\n </Gutter>\n </div>\n )\n}\n"],"names":["getTranslation","Button","Card","Gutter","Locked","RenderServerComponent","EntityType","formatAdminURL","Fragment","baseClass","DefaultDashboard","props","globalData","i18n","t","locale","navGroups","params","payload","config","admin","components","afterDashboard","beforeDashboard","routes","adminRoute","permissions","searchParams","user","div","className","Component","importMap","serverProps","length","p","map","entities","label","groupIndex","key","h2","ul","slug","type","entityIndex","title","buttonAriaLabel","createHREF","href","hasCreatePermission","isLocked","userEditing","collection","path","collections","create","global","globalLockData","find","data","_isLocked","_userEditing","lockDuration","lastEditedAt","Date","_lastEditedAt","getTime","lockDurationInMilliseconds","lockExpirationTime","li","actions","id","aria-label","buttonStyle","el","icon","iconStyle","round","to","undefined","titleAs"],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
1
|
import { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui';
|
|
3
2
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
4
3
|
import { EntityType, groupNavItems } from '@payloadcms/ui/shared';
|
|
5
|
-
import
|
|
4
|
+
import { Fragment } from 'react';
|
|
6
5
|
import { DefaultDashboard } from './Default/index.js';
|
|
7
6
|
const globalLockDurationDefault = 300;
|
|
8
7
|
export async function DashboardView(props) {
|
|
@@ -60,47 +59,29 @@ export async function DashboardView(props) {
|
|
|
60
59
|
return entityToGroup;
|
|
61
60
|
}) ?? []
|
|
62
61
|
], permissions, i18n);
|
|
63
|
-
return
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
serverProps: {
|
|
87
|
-
...props,
|
|
88
|
-
globalData,
|
|
89
|
-
i18n,
|
|
90
|
-
locale,
|
|
91
|
-
navGroups,
|
|
92
|
-
payload,
|
|
93
|
-
permissions,
|
|
94
|
-
user,
|
|
95
|
-
visibleEntities
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
|
-
]
|
|
99
|
-
}, void 0, true, {
|
|
100
|
-
fileName: "src/views/Dashboard/index.tsx",
|
|
101
|
-
lineNumber: 106,
|
|
102
|
-
columnNumber: 5
|
|
103
|
-
}, this);
|
|
62
|
+
return <Fragment>
|
|
63
|
+
<HydrateAuthProvider permissions={permissions}/>
|
|
64
|
+
<SetStepNav nav={[]}/>
|
|
65
|
+
{RenderServerComponent({
|
|
66
|
+
clientProps: {
|
|
67
|
+
locale
|
|
68
|
+
},
|
|
69
|
+
Component: config.admin?.components?.views?.dashboard?.Component,
|
|
70
|
+
Fallback: DefaultDashboard,
|
|
71
|
+
importMap: payload.importMap,
|
|
72
|
+
serverProps: {
|
|
73
|
+
...props,
|
|
74
|
+
globalData,
|
|
75
|
+
i18n,
|
|
76
|
+
locale,
|
|
77
|
+
navGroups,
|
|
78
|
+
payload,
|
|
79
|
+
permissions,
|
|
80
|
+
user,
|
|
81
|
+
visibleEntities
|
|
82
|
+
}
|
|
83
|
+
})}
|
|
84
|
+
</Fragment>;
|
|
104
85
|
}
|
|
105
86
|
|
|
106
87
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewServerProps, TypedUser } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, groupNavItems } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DashboardViewClientProps, DashboardViewServerPropsOnly } from './Default/index.js'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nconst globalLockDurationDefault = 300\n\nexport async function DashboardView(props: AdminViewServerProps) {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = props.initPageResult\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData: DashboardViewServerPropsOnly['globalData'] = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n select: {\n globalSlug: true,\n updatedAt: true,\n user: true,\n },\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : globalLockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: (lockedDoc?.updatedAt as string) ?? null,\n _userEditing: (lockedDoc?.user as { value?: TypedUser })?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n {RenderServerComponent({\n clientProps: {\n locale,\n } satisfies DashboardViewClientProps,\n Component: config.admin?.components?.views?.dashboard?.Component,\n Fallback: DefaultDashboard,\n importMap: payload.importMap,\n serverProps: {\n ...props,\n globalData,\n i18n,\n locale,\n navGroups,\n payload,\n permissions,\n user,\n visibleEntities,\n } satisfies DashboardViewServerPropsOnly,\n })}\n </Fragment>\n )\n}\n"],"names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Dashboard/index.tsx"],"sourcesContent":["import type { EntityToGroup } from '@payloadcms/ui/shared'\nimport type { AdminViewServerProps, TypedUser } from 'payload'\n\nimport { HydrateAuthProvider, SetStepNav } from '@payloadcms/ui'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { EntityType, groupNavItems } from '@payloadcms/ui/shared'\nimport React, { Fragment } from 'react'\n\nimport type { DashboardViewClientProps, DashboardViewServerPropsOnly } from './Default/index.js'\n\nimport { DefaultDashboard } from './Default/index.js'\n\nconst globalLockDurationDefault = 300\n\nexport async function DashboardView(props: AdminViewServerProps) {\n const {\n locale,\n permissions,\n req: {\n i18n,\n payload: { config },\n payload,\n user,\n },\n req,\n visibleEntities,\n } = props.initPageResult\n const collections = config.collections.filter(\n (collection) =>\n permissions?.collections?.[collection.slug]?.read &&\n visibleEntities.collections.includes(collection.slug),\n )\n\n const globals = config.globals.filter(\n (global) =>\n permissions?.globals?.[global.slug]?.read && visibleEntities.globals.includes(global.slug),\n )\n\n // Query locked global documents only if there are globals in the config\n let globalData: DashboardViewServerPropsOnly['globalData'] = []\n\n if (config.globals.length > 0) {\n const lockedDocuments = await payload.find({\n collection: 'payload-locked-documents',\n depth: 1,\n overrideAccess: false,\n pagination: false,\n req,\n select: {\n globalSlug: true,\n updatedAt: true,\n user: true,\n },\n where: {\n globalSlug: {\n exists: true,\n },\n },\n })\n\n // Map over globals to include `lockDuration` and lock data for each global slug\n globalData = config.globals.map((global) => {\n const lockDuration =\n typeof global.lockDocuments === 'object'\n ? global.lockDocuments.duration\n : globalLockDurationDefault\n\n const lockedDoc = lockedDocuments.docs.find((doc) => doc.globalSlug === global.slug)\n\n return {\n slug: global.slug,\n data: {\n _isLocked: !!lockedDoc,\n _lastEditedAt: (lockedDoc?.updatedAt as string) ?? null,\n _userEditing: (lockedDoc?.user as { value?: TypedUser })?.value ?? null,\n },\n lockDuration,\n }\n })\n }\n\n const navGroups = groupNavItems(\n [\n ...(collections.map((collection) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.collection,\n entity: collection,\n }\n\n return entityToGroup\n }) ?? []),\n ...(globals.map((global) => {\n const entityToGroup: EntityToGroup = {\n type: EntityType.global,\n entity: global,\n }\n\n return entityToGroup\n }) ?? []),\n ],\n permissions,\n i18n,\n )\n\n return (\n <Fragment>\n <HydrateAuthProvider permissions={permissions} />\n <SetStepNav nav={[]} />\n {RenderServerComponent({\n clientProps: {\n locale,\n } satisfies DashboardViewClientProps,\n Component: config.admin?.components?.views?.dashboard?.Component,\n Fallback: DefaultDashboard,\n importMap: payload.importMap,\n serverProps: {\n ...props,\n globalData,\n i18n,\n locale,\n navGroups,\n payload,\n permissions,\n user,\n visibleEntities,\n } satisfies DashboardViewServerPropsOnly,\n })}\n </Fragment>\n )\n}\n"],"names":["HydrateAuthProvider","SetStepNav","RenderServerComponent","EntityType","groupNavItems","Fragment","DefaultDashboard","globalLockDurationDefault","DashboardView","props","locale","permissions","req","i18n","payload","config","user","visibleEntities","initPageResult","collections","filter","collection","slug","read","includes","globals","global","globalData","length","lockedDocuments","find","depth","overrideAccess","pagination","select","globalSlug","updatedAt","where","exists","map","lockDuration","lockDocuments","duration","lockedDoc","docs","doc","data","_isLocked","_lastEditedAt","_userEditing","value","navGroups","entityToGroup","type","entity","nav","clientProps","Component","admin","components","views","dashboard","Fallback","importMap","serverProps"],"mappings":"AAGA,SAASA,mBAAmB,EAAEC,UAAU,QAAQ,iBAAgB;AAChE,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,UAAU,EAAEC,aAAa,QAAQ,wBAAuB;AACjE,SAAgBC,QAAQ,QAAQ,QAAO;AAIvC,SAASC,gBAAgB,QAAQ,qBAAoB;AAErD,MAAMC,4BAA4B;AAElC,OAAO,eAAeC,cAAcC,KAA2B;IAC7D,MAAM,EACJC,MAAM,EACNC,WAAW,EACXC,KAAK,EACHC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,EACDJ,GAAG,EACHK,eAAe,EAChB,GAAGR,MAAMS,cAAc;IACxB,MAAMC,cAAcJ,OAAOI,WAAW,CAACC,MAAM,CAC3C,CAACC,aACCV,aAAaQ,aAAa,CAACE,WAAWC,IAAI,CAAC,EAAEC,QAC7CN,gBAAgBE,WAAW,CAACK,QAAQ,CAACH,WAAWC,IAAI;IAGxD,MAAMG,UAAUV,OAAOU,OAAO,CAACL,MAAM,CACnC,CAACM,SACCf,aAAac,SAAS,CAACC,OAAOJ,IAAI,CAAC,EAAEC,QAAQN,gBAAgBQ,OAAO,CAACD,QAAQ,CAACE,OAAOJ,IAAI;IAG7F,wEAAwE;IACxE,IAAIK,aAAyD,EAAE;IAE/D,IAAIZ,OAAOU,OAAO,CAACG,MAAM,GAAG,GAAG;QAC7B,MAAMC,kBAAkB,MAAMf,QAAQgB,IAAI,CAAC;YACzCT,YAAY;YACZU,OAAO;YACPC,gBAAgB;YAChBC,YAAY;YACZrB;YACAsB,QAAQ;gBACNC,YAAY;gBACZC,WAAW;gBACXpB,MAAM;YACR;YACAqB,OAAO;gBACLF,YAAY;oBACVG,QAAQ;gBACV;YACF;QACF;QAEA,gFAAgF;QAChFX,aAAaZ,OAAOU,OAAO,CAACc,GAAG,CAAC,CAACb;YAC/B,MAAMc,eACJ,OAAOd,OAAOe,aAAa,KAAK,WAC5Bf,OAAOe,aAAa,CAACC,QAAQ,GAC7BnC;YAEN,MAAMoC,YAAYd,gBAAgBe,IAAI,CAACd,IAAI,CAAC,CAACe,MAAQA,IAAIV,UAAU,KAAKT,OAAOJ,IAAI;YAEnF,OAAO;gBACLA,MAAMI,OAAOJ,IAAI;gBACjBwB,MAAM;oBACJC,WAAW,CAAC,CAACJ;oBACbK,eAAe,AAACL,WAAWP,aAAwB;oBACnDa,cAAc,AAACN,WAAW3B,MAAgCkC,SAAS;gBACrE;gBACAV;YACF;QACF;IACF;IAEA,MAAMW,YAAY/C,cAChB;WACMe,YAAYoB,GAAG,CAAC,CAAClB;YACnB,MAAM+B,gBAA+B;gBACnCC,MAAMlD,WAAWkB,UAAU;gBAC3BiC,QAAQjC;YACV;YAEA,OAAO+B;QACT,MAAM,EAAE;WACJ3B,QAAQc,GAAG,CAAC,CAACb;YACf,MAAM0B,gBAA+B;gBACnCC,MAAMlD,WAAWuB,MAAM;gBACvB4B,QAAQ5B;YACV;YAEA,OAAO0B;QACT,MAAM,EAAE;KACT,EACDzC,aACAE;IAGF,QACGR,SAAS;MACR,CAACL,oBAAoBW,aAAaA,cAAe;MACjD,CAACV,WAAWsD,KAAK,EAAE,GAAI;MACvB,CAACrD,sBAAsB;QACrBsD,aAAa;YACX9C;QACF;QACA+C,WAAW1C,OAAO2C,KAAK,EAAEC,YAAYC,OAAOC,WAAWJ;QACvDK,UAAUxD;QACVyD,WAAWjD,QAAQiD,SAAS;QAC5BC,aAAa;YACX,GAAGvD,KAAK;YACRkB;YACAd;YACAH;YACAyC;YACArC;YACAH;YACAK;YACAC;QACF;IACF,GAAG;IACL,EAAEZ;AAEN"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
1
|
import { DocumentInfoProvider, EditDepthProvider, HydrateAuthProvider, LivePreviewProvider } from '@payloadcms/ui';
|
|
3
2
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
4
3
|
import { handleLivePreview, handlePreview } from '@payloadcms/ui/rsc';
|
|
@@ -7,7 +6,6 @@ import { buildFormState } from '@payloadcms/ui/utilities/buildFormState';
|
|
|
7
6
|
import { notFound, redirect } from 'next/navigation.js';
|
|
8
7
|
import { isolateObjectProperty, logError } from 'payload';
|
|
9
8
|
import { formatAdminURL, hasAutosaveEnabled, hasDraftsEnabled } from 'payload/shared';
|
|
10
|
-
import React from 'react';
|
|
11
9
|
import { DocumentHeader } from '../../elements/DocumentHeader/index.js';
|
|
12
10
|
import { getPreferences } from '../../utilities/getPreferences.js';
|
|
13
11
|
import { NotFoundView } from '../NotFound/index.js';
|
|
@@ -253,80 +251,20 @@ export const generateMetadata = async (args)=>getMetaBySegment(args);
|
|
|
253
251
|
});
|
|
254
252
|
return {
|
|
255
253
|
data: doc,
|
|
256
|
-
Document:
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
isLocked: isLocked,
|
|
271
|
-
isTrashed: isTrashedDoc,
|
|
272
|
-
lastUpdateTime: lastUpdateTime,
|
|
273
|
-
mostRecentVersionIsAutosaved: mostRecentVersionIsAutosaved,
|
|
274
|
-
redirectAfterCreate: redirectAfterCreate,
|
|
275
|
-
redirectAfterDelete: redirectAfterDelete,
|
|
276
|
-
redirectAfterDuplicate: redirectAfterDuplicate,
|
|
277
|
-
redirectAfterRestore: redirectAfterRestore,
|
|
278
|
-
unpublishedVersionCount: unpublishedVersionCount,
|
|
279
|
-
versionCount: versionCount,
|
|
280
|
-
children: /*#__PURE__*/ _jsxDEV(LivePreviewProvider, {
|
|
281
|
-
breakpoints: livePreviewConfig?.breakpoints,
|
|
282
|
-
isLivePreviewEnabled: isLivePreviewEnabled && operation !== 'create',
|
|
283
|
-
isLivePreviewing: Boolean(entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL),
|
|
284
|
-
isPreviewEnabled: Boolean(isPreviewEnabled),
|
|
285
|
-
previewURL: previewURL,
|
|
286
|
-
typeofLivePreviewURL: typeof livePreviewConfig?.url,
|
|
287
|
-
url: livePreviewURL,
|
|
288
|
-
children: [
|
|
289
|
-
showHeader && !drawerSlug && /*#__PURE__*/ _jsxDEV(DocumentHeader, {
|
|
290
|
-
AfterHeader: Description,
|
|
291
|
-
collectionConfig: collectionConfig,
|
|
292
|
-
globalConfig: globalConfig,
|
|
293
|
-
permissions: permissions,
|
|
294
|
-
req: req
|
|
295
|
-
}, void 0, false, {
|
|
296
|
-
fileName: "src/views/Document/index.tsx",
|
|
297
|
-
lineNumber: 432,
|
|
298
|
-
columnNumber: 13
|
|
299
|
-
}, this),
|
|
300
|
-
/*#__PURE__*/ _jsxDEV(HydrateAuthProvider, {
|
|
301
|
-
permissions: permissions
|
|
302
|
-
}, void 0, false, {
|
|
303
|
-
fileName: "src/views/Document/index.tsx",
|
|
304
|
-
lineNumber: 440,
|
|
305
|
-
columnNumber: 11
|
|
306
|
-
}, this),
|
|
307
|
-
/*#__PURE__*/ _jsxDEV(EditDepthProvider, {
|
|
308
|
-
children: RenderServerComponent({
|
|
309
|
-
clientProps,
|
|
310
|
-
Component: View,
|
|
311
|
-
importMap,
|
|
312
|
-
serverProps: documentViewServerProps
|
|
313
|
-
})
|
|
314
|
-
}, void 0, false, {
|
|
315
|
-
fileName: "src/views/Document/index.tsx",
|
|
316
|
-
lineNumber: 441,
|
|
317
|
-
columnNumber: 11
|
|
318
|
-
}, this)
|
|
319
|
-
]
|
|
320
|
-
}, void 0, true, {
|
|
321
|
-
fileName: "src/views/Document/index.tsx",
|
|
322
|
-
lineNumber: 420,
|
|
323
|
-
columnNumber: 9
|
|
324
|
-
}, this)
|
|
325
|
-
}, locale?.code, false, {
|
|
326
|
-
fileName: "src/views/Document/index.tsx",
|
|
327
|
-
lineNumber: 394,
|
|
328
|
-
columnNumber: 7
|
|
329
|
-
}, this)
|
|
254
|
+
Document: <DocumentInfoProvider apiURL={apiURL} collectionSlug={collectionConfig?.slug} currentEditor={currentEditor} disableActions={disableActions ?? false} docPermissions={docPermissions} globalSlug={globalConfig?.slug} hasPublishedDoc={hasPublishedDoc} hasPublishPermission={hasPublishPermission} hasSavePermission={hasSavePermission} id={id} initialData={doc} initialState={formState} isEditing={isEditing} isLocked={isLocked} isTrashed={isTrashedDoc} key={locale?.code} lastUpdateTime={lastUpdateTime} mostRecentVersionIsAutosaved={mostRecentVersionIsAutosaved} redirectAfterCreate={redirectAfterCreate} redirectAfterDelete={redirectAfterDelete} redirectAfterDuplicate={redirectAfterDuplicate} redirectAfterRestore={redirectAfterRestore} unpublishedVersionCount={unpublishedVersionCount} versionCount={versionCount}>
|
|
255
|
+
<LivePreviewProvider breakpoints={livePreviewConfig?.breakpoints} isLivePreviewEnabled={isLivePreviewEnabled && operation !== 'create'} isLivePreviewing={Boolean(entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL)} isPreviewEnabled={Boolean(isPreviewEnabled)} previewURL={previewURL} typeofLivePreviewURL={typeof livePreviewConfig?.url} url={livePreviewURL}>
|
|
256
|
+
{showHeader && !drawerSlug && <DocumentHeader AfterHeader={Description} collectionConfig={collectionConfig} globalConfig={globalConfig} permissions={permissions} req={req}/>}
|
|
257
|
+
<HydrateAuthProvider permissions={permissions}/>
|
|
258
|
+
<EditDepthProvider>
|
|
259
|
+
{RenderServerComponent({
|
|
260
|
+
clientProps,
|
|
261
|
+
Component: View,
|
|
262
|
+
importMap,
|
|
263
|
+
serverProps: documentViewServerProps
|
|
264
|
+
})}
|
|
265
|
+
</EditDepthProvider>
|
|
266
|
+
</LivePreviewProvider>
|
|
267
|
+
</DocumentInfoProvider>
|
|
330
268
|
};
|
|
331
269
|
};
|
|
332
270
|
export async function DocumentView(props) {
|