@payloadcms/next 3.0.0-canary.a5aaf21 → 3.0.0-canary.a6e7305
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 +156 -0
- package/dist/cjs/withPayload.cjs.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
- package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
- package/dist/elements/DocumentHeader/index.scss +44 -42
- package/dist/elements/DocumentLocked/index.d.ts +1 -1
- package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
- package/dist/elements/DocumentLocked/index.js +24 -14
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.scss +29 -26
- package/dist/elements/DocumentTakeOver/index.scss +28 -26
- package/dist/elements/FormHeader/index.d.ts +9 -0
- package/dist/elements/FormHeader/index.d.ts.map +1 -0
- package/dist/elements/FormHeader/index.js +20 -0
- package/dist/elements/FormHeader/index.js.map +1 -0
- package/dist/elements/FormHeader/index.scss +8 -0
- package/dist/elements/LeaveWithoutSaving/index.scss +28 -26
- package/dist/elements/Nav/NavWrapper/index.scss +20 -18
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +1 -0
- package/dist/elements/Nav/index.client.js.map +1 -1
- package/dist/elements/Nav/index.scss +127 -125
- package/dist/exports/routes.d.ts +1 -1
- package/dist/exports/routes.d.ts.map +1 -1
- package/dist/exports/routes.js +1 -1
- package/dist/exports/routes.js.map +1 -1
- package/dist/exports/utilities.d.ts +1 -0
- 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/layouts/Root/index.js +6 -6
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +23 -11
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/routes/rest/auth/login.js +2 -2
- package/dist/routes/rest/auth/login.js.map +1 -1
- package/dist/routes/rest/auth/logout.d.ts.map +1 -1
- package/dist/routes/rest/auth/logout.js +3 -2
- package/dist/routes/rest/auth/logout.js.map +1 -1
- package/dist/routes/rest/auth/refresh.js +2 -2
- package/dist/routes/rest/auth/refresh.js.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.js +2 -2
- package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
- package/dist/routes/rest/auth/resetPassword.js +2 -2
- package/dist/routes/rest/auth/resetPassword.js.map +1 -1
- package/dist/routes/rest/collections/create.d.ts.map +1 -1
- package/dist/routes/rest/collections/create.js +5 -1
- package/dist/routes/rest/collections/create.js.map +1 -1
- package/dist/routes/rest/collections/delete.d.ts.map +1 -1
- package/dist/routes/rest/collections/delete.js +8 -0
- package/dist/routes/rest/collections/delete.js.map +1 -1
- package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/deleteByID.js +7 -1
- package/dist/routes/rest/collections/deleteByID.js.map +1 -1
- package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
- package/dist/routes/rest/collections/duplicate.js +5 -1
- package/dist/routes/rest/collections/duplicate.js.map +1 -1
- package/dist/routes/rest/collections/find.d.ts.map +1 -1
- package/dist/routes/rest/collections/find.js +7 -1
- package/dist/routes/rest/collections/find.js.map +1 -1
- package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/findByID.js +5 -1
- package/dist/routes/rest/collections/findByID.js.map +1 -1
- package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/findVersionByID.js +5 -1
- package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
- package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
- package/dist/routes/rest/collections/findVersions.js +7 -1
- package/dist/routes/rest/collections/findVersions.js.map +1 -1
- package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
- package/dist/routes/rest/collections/restoreVersion.js +2 -0
- package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
- package/dist/routes/rest/collections/update.d.ts.map +1 -1
- package/dist/routes/rest/collections/update.js +10 -0
- package/dist/routes/rest/collections/update.js.map +1 -1
- package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/updateByID.js +7 -1
- package/dist/routes/rest/collections/updateByID.js.map +1 -1
- package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
- package/dist/routes/rest/globals/findOne.js +5 -1
- package/dist/routes/rest/globals/findOne.js.map +1 -1
- package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
- package/dist/routes/rest/globals/findVersionByID.js +5 -1
- package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
- package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
- package/dist/routes/rest/globals/findVersions.js +7 -1
- package/dist/routes/rest/globals/findVersions.js.map +1 -1
- package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
- package/dist/routes/rest/globals/restoreVersion.js +2 -0
- package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
- package/dist/routes/rest/globals/update.d.ts.map +1 -1
- package/dist/routes/rest/globals/update.js +5 -1
- package/dist/routes/rest/globals/update.js.map +1 -1
- package/dist/routes/rest/index.d.ts +17 -12
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +90 -15
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/routes/rest/og/index.js +2 -4
- package/dist/routes/rest/og/index.js.map +1 -1
- package/dist/routes/rest/routeError.d.ts +2 -7
- package/dist/routes/rest/routeError.d.ts.map +1 -1
- package/dist/routes/rest/routeError.js +33 -19
- package/dist/routes/rest/routeError.js.map +1 -1
- package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +1 -1
- package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -1
- package/dist/routes/rest/utilities/sanitizeJoinParams.js +9 -5
- package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -1
- package/dist/routes/rest/utilities/sanitizePopulate.d.ts +3 -0
- package/dist/routes/rest/utilities/sanitizePopulate.d.ts.map +1 -0
- package/dist/routes/rest/utilities/sanitizePopulate.js +11 -0
- package/dist/routes/rest/utilities/sanitizePopulate.js.map +1 -0
- package/dist/routes/rest/utilities/sanitizeSelect.d.ts +6 -0
- package/dist/routes/rest/utilities/sanitizeSelect.d.ts.map +1 -0
- package/dist/routes/rest/utilities/sanitizeSelect.js +17 -0
- package/dist/routes/rest/utilities/sanitizeSelect.js.map +1 -0
- package/dist/scss/app.scss +166 -162
- package/dist/scss/colors.scss +256 -254
- package/dist/scss/resets.scss +9 -7
- package/dist/scss/toastify.scss +42 -40
- package/dist/scss/toasts.scss +105 -103
- package/dist/scss/type.scss +80 -79
- package/dist/templates/Default/Wrapper/index.scss +38 -36
- package/dist/templates/Default/index.scss +60 -58
- package/dist/templates/Minimal/index.scss +22 -20
- package/dist/utilities/getNextRequestI18n.js +2 -2
- package/dist/utilities/getNextRequestI18n.js.map +1 -1
- package/dist/utilities/getRequestTheme.d.ts.map +1 -1
- package/dist/utilities/getRequestTheme.js +3 -0
- package/dist/utilities/getRequestTheme.js.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.d.ts +12 -11
- package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.js +9 -21
- package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
- package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
- package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAuthRedirect.js +23 -36
- package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
- package/dist/utilities/initPage/index.d.ts +1 -1
- package/dist/utilities/initPage/index.d.ts.map +1 -1
- package/dist/utilities/initPage/index.js +27 -10
- package/dist/utilities/initPage/index.js.map +1 -1
- package/dist/utilities/initPage/isCustomAdminView.d.ts +10 -0
- package/dist/utilities/initPage/isCustomAdminView.d.ts.map +1 -0
- package/dist/utilities/initPage/isCustomAdminView.js +31 -0
- package/dist/utilities/initPage/isCustomAdminView.js.map +1 -0
- package/dist/utilities/initPage/shared.d.ts +2 -2
- package/dist/utilities/initPage/shared.d.ts.map +1 -1
- package/dist/utilities/initPage/shared.js +19 -13
- package/dist/utilities/initPage/shared.js.map +1 -1
- package/dist/utilities/initReq.js +1 -1
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/views/API/RenderJSON/index.scss +68 -66
- package/dist/views/API/index.scss +98 -96
- package/dist/views/Account/Settings/index.d.ts +2 -1
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +3 -2
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/Settings/index.scss +37 -35
- package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
- package/dist/views/Account/ToggleTheme/index.js +1 -0
- package/dist/views/Account/ToggleTheme/index.js.map +1 -1
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +4 -2
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +31 -15
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.scss +13 -11
- package/dist/views/Dashboard/Default/index.d.ts +3 -1
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +12 -3
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.scss +51 -49
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +31 -13
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getDocumentData.js +4 -2
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +6 -5
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js +6 -0
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +2 -8
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +37 -26
- package/dist/views/Edit/Default/Auth/index.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.scss +56 -54
- package/dist/views/Edit/Default/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/index.js +45 -73
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/Edit/Default/index.scss +15 -13
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +9 -11
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/index.js +10 -8
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/Default/index.scss +136 -134
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +1 -1
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/LivePreview/IFrame/index.scss +8 -6
- package/dist/views/LivePreview/Preview/index.scss +32 -30
- package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
- package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
- package/dist/views/LivePreview/Toolbar/index.scss +33 -31
- package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +221 -203
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/LivePreview/index.scss +48 -46
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +2 -1
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.scss +8 -6
- package/dist/views/Login/index.scss +8 -6
- package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
- package/dist/views/Logout/LogoutClient.js +77 -55
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.scss +17 -15
- package/dist/views/NotFound/index.d.ts +5 -5
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +7 -2
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/NotFound/index.scss +38 -36
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
- package/dist/views/ResetPassword/{index.client.js → ResetPasswordForm/index.js} +16 -19
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
- package/dist/views/ResetPassword/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.js +19 -10
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/ResetPassword/index.scss +6 -26
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +1 -7
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/index.d.ts +5 -5
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +23 -10
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/meta.d.ts +5 -5
- package/dist/views/Root/meta.d.ts.map +1 -1
- package/dist/views/Root/meta.js +3 -2
- package/dist/views/Root/meta.js.map +1 -1
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +14 -7
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Unauthorized/index.scss +4 -31
- package/dist/views/Verify/index.client.d.ts +7 -0
- package/dist/views/Verify/index.client.d.ts.map +1 -0
- package/dist/views/Verify/index.client.js +46 -0
- package/dist/views/Verify/index.client.js.map +1 -0
- package/dist/views/Verify/index.d.ts.map +1 -1
- package/dist/views/Verify/index.js +12 -11
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Verify/index.scss +13 -11
- package/dist/views/Version/Default/index.scss +52 -50
- package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
- package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +8 -14
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/Restore/index.scss +57 -55
- package/dist/views/Version/SelectComparison/index.scss +12 -10
- package/dist/views/Version/SelectLocales/index.scss +6 -4
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +2 -0
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/cells/CreatedAt/index.js +1 -0
- package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
- package/dist/views/Versions/getLatestVersion.d.ts +1 -0
- package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
- package/dist/views/Versions/getLatestVersion.js +15 -4
- package/dist/views/Versions/getLatestVersion.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +4 -4
- package/dist/views/Versions/index.js.map +1 -1
- package/dist/views/Versions/index.scss +78 -76
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +9 -1
- package/dist/withPayload.js.map +1 -1
- package/package.json +10 -10
- package/dist/cjs/withPayload.js +0 -111
- package/dist/cjs/withPayload.js.map +0 -1
- package/dist/views/ResetPassword/index.client.d.ts +0 -7
- package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
- package/dist/views/ResetPassword/index.client.js.map +0 -1
|
@@ -1,41 +1,43 @@
|
|
|
1
1
|
@import '../../../scss/styles.scss';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.live-preview-toolbar {
|
|
5
|
+
display: flex;
|
|
6
|
+
background-color: var(--theme-bg);
|
|
7
|
+
color: var(--theme-text);
|
|
8
|
+
height: calc(var(--base) * 1.75);
|
|
9
|
+
align-items: center;
|
|
10
|
+
flex-shrink: 0;
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
&--static {
|
|
13
|
+
position: relative;
|
|
14
|
+
width: 100%;
|
|
15
|
+
justify-content: center;
|
|
16
|
+
border-bottom: 1px solid var(--theme-elevation-100);
|
|
17
|
+
}
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
&--draggable {
|
|
20
|
+
@include shadow-lg;
|
|
21
|
+
position: absolute;
|
|
22
|
+
top: 0;
|
|
23
|
+
left: 0;
|
|
24
|
+
margin: 0;
|
|
25
|
+
border-radius: 4px;
|
|
26
|
+
}
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
&__drag-handle {
|
|
29
|
+
background: transparent;
|
|
30
|
+
border: 0;
|
|
31
|
+
padding: 0;
|
|
32
|
+
cursor: grab;
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
.icon--drag-handle .fill {
|
|
35
|
+
fill: var(--theme-elevation-300);
|
|
36
|
+
}
|
|
36
37
|
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
&:active {
|
|
39
|
+
cursor: grabbing;
|
|
40
|
+
}
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/LivePreview/index.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
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;AAqBhB,OAAO,KAA6D,MAAM,OAAO,CAAA;AASjF,OAAO,cAAc,CAAA;AA4YrB,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,CAmDA,CAAA"}
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { DocumentControls, DocumentFields, Form, OperationProvider, SetViewActions, useAuth, useConfig, useDocumentEvents, useDocumentInfo, useTranslation } from '@payloadcms/ui';
|
|
6
|
-
import { getFormState } from '@payloadcms/ui/shared';
|
|
7
|
-
import
|
|
6
|
+
import { getFormState, handleBackToDashboard, handleGoBack, handleTakeOver } from '@payloadcms/ui/shared';
|
|
7
|
+
import { useRouter } from 'next/navigation.js';
|
|
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';
|
|
8
11
|
import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js';
|
|
9
12
|
import { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js';
|
|
10
13
|
import { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js';
|
|
@@ -13,17 +16,15 @@ import { LivePreviewProvider } from './Context/index.js';
|
|
|
13
16
|
import { LivePreview } from './Preview/index.js';
|
|
14
17
|
import { usePopupWindow } from './usePopupWindow.js';
|
|
15
18
|
const baseClass = 'live-preview';
|
|
16
|
-
const PreviewView =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
serverURL
|
|
26
|
-
} = t0;
|
|
19
|
+
const PreviewView = ({
|
|
20
|
+
apiRoute,
|
|
21
|
+
collectionConfig,
|
|
22
|
+
config,
|
|
23
|
+
fields,
|
|
24
|
+
globalConfig,
|
|
25
|
+
schemaPath,
|
|
26
|
+
serverURL
|
|
27
|
+
}) => {
|
|
27
28
|
const {
|
|
28
29
|
id,
|
|
29
30
|
action,
|
|
@@ -33,9 +34,11 @@ const PreviewView = t0 => {
|
|
|
33
34
|
BeforeDocument,
|
|
34
35
|
BeforeFields,
|
|
35
36
|
collectionSlug,
|
|
37
|
+
currentEditor,
|
|
36
38
|
disableActions,
|
|
37
39
|
disableLeaveWithoutSaving,
|
|
38
40
|
docPermissions,
|
|
41
|
+
documentIsLocked,
|
|
39
42
|
getDocPreferences,
|
|
40
43
|
globalSlug,
|
|
41
44
|
hasPublishPermission,
|
|
@@ -44,18 +47,25 @@ const PreviewView = t0 => {
|
|
|
44
47
|
initialState,
|
|
45
48
|
isEditing,
|
|
46
49
|
isInitializing,
|
|
47
|
-
|
|
50
|
+
lastUpdateTime,
|
|
51
|
+
onSave: onSaveFromProps,
|
|
52
|
+
setCurrentEditor,
|
|
53
|
+
setDocumentIsLocked,
|
|
54
|
+
unlockDocument,
|
|
55
|
+
updateDocumentEditor
|
|
48
56
|
} = useDocumentInfo();
|
|
49
|
-
const operation = id ?
|
|
57
|
+
const operation = id ? 'update' : 'create';
|
|
50
58
|
const {
|
|
51
|
-
config:
|
|
59
|
+
config: {
|
|
60
|
+
admin: {
|
|
61
|
+
user: userSlug
|
|
62
|
+
},
|
|
63
|
+
routes: {
|
|
64
|
+
admin: adminRoute
|
|
65
|
+
}
|
|
66
|
+
}
|
|
52
67
|
} = useConfig();
|
|
53
|
-
const
|
|
54
|
-
admin: t2
|
|
55
|
-
} = t1;
|
|
56
|
-
const {
|
|
57
|
-
user: userSlug
|
|
58
|
-
} = t2;
|
|
68
|
+
const router = useRouter();
|
|
59
69
|
const {
|
|
60
70
|
t
|
|
61
71
|
} = useTranslation();
|
|
@@ -69,193 +79,201 @@ const PreviewView = t0 => {
|
|
|
69
79
|
const {
|
|
70
80
|
reportUpdate
|
|
71
81
|
} = useDocumentEvents();
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
const docConfig = collectionConfig || globalConfig;
|
|
83
|
+
const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true;
|
|
84
|
+
const isLockingEnabled = lockDocumentsProp !== false;
|
|
85
|
+
const lockDurationDefault = 300 // Default 5 minutes in seconds
|
|
86
|
+
;
|
|
87
|
+
const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
|
|
88
|
+
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
89
|
+
const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
|
|
90
|
+
const [showTakeOverModal, setShowTakeOverModal] = useState(false);
|
|
91
|
+
const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
|
|
92
|
+
const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
|
|
93
|
+
const isLockExpired = Date.now() > lockExpiryTime;
|
|
94
|
+
const documentLockStateRef = useRef({
|
|
95
|
+
hasShownLockedModal: false,
|
|
96
|
+
isLocked: false,
|
|
97
|
+
user: null
|
|
98
|
+
});
|
|
99
|
+
const onSave = useCallback(json => {
|
|
100
|
+
reportUpdate({
|
|
101
|
+
id,
|
|
102
|
+
entitySlug: collectionSlug,
|
|
103
|
+
updatedAt: json?.result?.updatedAt || new Date().toISOString()
|
|
104
|
+
});
|
|
105
|
+
// If we're editing the doc of the logged-in user,
|
|
106
|
+
// Refresh the cookie to get new permissions
|
|
107
|
+
if (user && collectionSlug === userSlug && id === user.id) {
|
|
108
|
+
void refreshCookieAsync();
|
|
109
|
+
}
|
|
110
|
+
// Unlock the document after save
|
|
111
|
+
if ((id || globalSlug) && isLockingEnabled) {
|
|
112
|
+
setDocumentIsLocked(false);
|
|
113
|
+
}
|
|
114
|
+
if (typeof onSaveFromProps === 'function') {
|
|
115
|
+
void onSaveFromProps({
|
|
116
|
+
...json,
|
|
117
|
+
operation: id ? 'update' : 'create'
|
|
79
118
|
});
|
|
80
|
-
|
|
81
|
-
|
|
119
|
+
}
|
|
120
|
+
}, [collectionSlug, globalSlug, id, isLockingEnabled, onSaveFromProps, refreshCookieAsync, reportUpdate, setDocumentIsLocked, user, userSlug]);
|
|
121
|
+
const onChange = useCallback(async ({
|
|
122
|
+
formState: prevFormState
|
|
123
|
+
}) => {
|
|
124
|
+
const currentTime = Date.now();
|
|
125
|
+
const timeSinceLastUpdate = currentTime - editSessionStartTime;
|
|
126
|
+
const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
|
|
127
|
+
;
|
|
128
|
+
if (updateLastEdited) {
|
|
129
|
+
setEditSessionStartTime(currentTime);
|
|
130
|
+
}
|
|
131
|
+
const docPreferences = await getDocPreferences();
|
|
132
|
+
const {
|
|
133
|
+
lockedState,
|
|
134
|
+
state
|
|
135
|
+
} = await getFormState({
|
|
136
|
+
apiRoute,
|
|
137
|
+
body: {
|
|
138
|
+
id,
|
|
139
|
+
collectionSlug,
|
|
140
|
+
docPreferences,
|
|
141
|
+
formState: prevFormState,
|
|
142
|
+
globalSlug,
|
|
143
|
+
operation,
|
|
144
|
+
returnLockStatus: isLockingEnabled ? true : false,
|
|
145
|
+
schemaPath,
|
|
146
|
+
updateLastEdited
|
|
147
|
+
},
|
|
148
|
+
serverURL
|
|
149
|
+
});
|
|
150
|
+
setDocumentIsLocked(true);
|
|
151
|
+
if (isLockingEnabled) {
|
|
152
|
+
const previousOwnerId = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
|
|
153
|
+
if (lockedState) {
|
|
154
|
+
if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {
|
|
155
|
+
if (previousOwnerId === user.id && lockedState.user.id !== user.id) {
|
|
156
|
+
setShowTakeOverModal(true);
|
|
157
|
+
documentLockStateRef.current.hasShownLockedModal = true;
|
|
158
|
+
}
|
|
159
|
+
documentLockStateRef.current = documentLockStateRef.current = {
|
|
160
|
+
hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,
|
|
161
|
+
isLocked: true,
|
|
162
|
+
user: lockedState.user
|
|
163
|
+
};
|
|
164
|
+
setCurrentEditor(lockedState.user);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return state;
|
|
169
|
+
}, [collectionSlug, editSessionStartTime, globalSlug, serverURL, apiRoute, id, isLockingEnabled, operation, schemaPath, getDocPreferences, setCurrentEditor, setDocumentIsLocked, user]);
|
|
170
|
+
// Clean up when the component unmounts or when the document is unlocked
|
|
171
|
+
useEffect(() => {
|
|
172
|
+
return () => {
|
|
173
|
+
if (!isLockingEnabled) {
|
|
174
|
+
return;
|
|
82
175
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
176
|
+
const currentPath = window.location.pathname;
|
|
177
|
+
const documentId = id || globalSlug;
|
|
178
|
+
// Routes where we do NOT want to unlock the document
|
|
179
|
+
const stayWithinDocumentPaths = ['preview', 'api', 'versions'];
|
|
180
|
+
const isStayingWithinDocument = stayWithinDocumentPaths.some(path => currentPath.includes(path));
|
|
181
|
+
// Unlock the document only if we're actually navigating away from the document
|
|
182
|
+
if (documentId && documentIsLocked && !isStayingWithinDocument) {
|
|
183
|
+
// Check if this user is still the current editor
|
|
184
|
+
if (typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id === user?.id : documentLockStateRef.current?.user === user?.id) {
|
|
185
|
+
void unlockDocument(id, collectionSlug ?? globalSlug);
|
|
186
|
+
setDocumentIsLocked(false);
|
|
187
|
+
setCurrentEditor(null);
|
|
188
|
+
}
|
|
88
189
|
}
|
|
190
|
+
setShowTakeOverModal(false);
|
|
89
191
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
docPreferences,
|
|
116
|
-
formState: prevFormState,
|
|
117
|
-
operation,
|
|
118
|
-
schemaPath
|
|
192
|
+
}, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
|
|
193
|
+
const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal &&
|
|
194
|
+
// eslint-disable-next-line react-compiler/react-compiler
|
|
195
|
+
!documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
|
|
196
|
+
return /*#__PURE__*/_jsx(OperationProvider, {
|
|
197
|
+
operation: operation,
|
|
198
|
+
children: /*#__PURE__*/_jsxs(Form, {
|
|
199
|
+
action: action,
|
|
200
|
+
className: `${baseClass}__form`,
|
|
201
|
+
disabled: isReadOnlyForIncomingUser || !hasSavePermission,
|
|
202
|
+
initialState: initialState,
|
|
203
|
+
isInitializing: isInitializing,
|
|
204
|
+
method: id ? 'PATCH' : 'POST',
|
|
205
|
+
onChange: [onChange],
|
|
206
|
+
onSuccess: onSave,
|
|
207
|
+
children: [isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(DocumentLocked, {
|
|
208
|
+
handleGoBack: () => handleGoBack({
|
|
209
|
+
adminRoute,
|
|
210
|
+
collectionSlug,
|
|
211
|
+
router
|
|
212
|
+
}),
|
|
213
|
+
isActive: shouldShowDocumentLockedModal,
|
|
214
|
+
onReadOnly: () => {
|
|
215
|
+
setIsReadOnlyForIncomingUser(true);
|
|
216
|
+
setShowTakeOverModal(false);
|
|
119
217
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
const t12 = previewWindowType === "popup" && `${baseClass}--detached`;
|
|
176
|
-
let t13;
|
|
177
|
-
if ($[49] !== t12) {
|
|
178
|
-
t13 = [baseClass, t12].filter(Boolean);
|
|
179
|
-
$[49] = t12;
|
|
180
|
-
$[50] = t13;
|
|
181
|
-
} else {
|
|
182
|
-
t13 = $[50];
|
|
183
|
-
}
|
|
184
|
-
const t14 = t13.join(" ");
|
|
185
|
-
const t15 = previewWindowType === "popup" && `${baseClass}__main--popup-open`;
|
|
186
|
-
let t16;
|
|
187
|
-
if ($[51] !== t15) {
|
|
188
|
-
t16 = [`${baseClass}__main`, t15].filter(Boolean);
|
|
189
|
-
$[51] = t15;
|
|
190
|
-
$[52] = t16;
|
|
191
|
-
} else {
|
|
192
|
-
t16 = $[52];
|
|
193
|
-
}
|
|
194
|
-
t7 = _jsx(OperationProvider, {
|
|
195
|
-
operation,
|
|
196
|
-
children: _jsxs(Form, {
|
|
197
|
-
action,
|
|
198
|
-
className: `${baseClass}__form`,
|
|
199
|
-
disabled: t5,
|
|
200
|
-
initialState,
|
|
201
|
-
isInitializing,
|
|
202
|
-
method: t6,
|
|
203
|
-
onChange: [onChange],
|
|
204
|
-
onSuccess: onSave,
|
|
205
|
-
children: [t8, t9, t10, t11, _jsxs("div", {
|
|
206
|
-
className: t14,
|
|
207
|
-
children: [_jsxs("div", {
|
|
208
|
-
className: t16.join(" "),
|
|
209
|
-
children: [BeforeDocument, _jsx(DocumentFields, {
|
|
210
|
-
AfterFields,
|
|
211
|
-
BeforeFields,
|
|
212
|
-
docPermissions,
|
|
213
|
-
fields,
|
|
214
|
-
forceSidebarWrap: true,
|
|
215
|
-
readOnly: !hasSavePermission,
|
|
216
|
-
schemaPath: collectionSlug || globalSlug
|
|
217
|
-
}), AfterDocument]
|
|
218
|
-
}), _jsx(LivePreview, {
|
|
219
|
-
collectionSlug,
|
|
220
|
-
globalSlug
|
|
221
|
-
})]
|
|
218
|
+
onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, false, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled),
|
|
219
|
+
updatedAt: lastUpdateTime,
|
|
220
|
+
user: currentEditor
|
|
221
|
+
}), isLockingEnabled && showTakeOverModal && /*#__PURE__*/_jsx(DocumentTakeOver, {
|
|
222
|
+
handleBackToDashboard: () => handleBackToDashboard({
|
|
223
|
+
adminRoute,
|
|
224
|
+
router
|
|
225
|
+
}),
|
|
226
|
+
isActive: showTakeOverModal,
|
|
227
|
+
onReadOnly: () => {
|
|
228
|
+
setIsReadOnlyForIncomingUser(true);
|
|
229
|
+
setShowTakeOverModal(false);
|
|
230
|
+
}
|
|
231
|
+
}), (collectionConfig && !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave) || globalConfig && !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave)) && !disableLeaveWithoutSaving && !isReadOnlyForIncomingUser && /*#__PURE__*/_jsx(LeaveWithoutSaving, {}), /*#__PURE__*/_jsx(SetDocumentStepNav, {
|
|
232
|
+
collectionSlug: collectionSlug,
|
|
233
|
+
globalLabel: globalConfig?.label,
|
|
234
|
+
globalSlug: globalSlug,
|
|
235
|
+
id: id,
|
|
236
|
+
pluralLabel: collectionConfig ? collectionConfig?.labels?.plural : undefined,
|
|
237
|
+
useAsTitle: collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined,
|
|
238
|
+
view: t('general:livePreview')
|
|
239
|
+
}), /*#__PURE__*/_jsx(SetDocumentTitle, {
|
|
240
|
+
collectionConfig: collectionConfig,
|
|
241
|
+
config: config,
|
|
242
|
+
fallback: id?.toString() || '',
|
|
243
|
+
globalConfig: globalConfig
|
|
244
|
+
}), /*#__PURE__*/_jsx(DocumentControls, {
|
|
245
|
+
apiURL: apiURL,
|
|
246
|
+
data: initialData,
|
|
247
|
+
disableActions: disableActions,
|
|
248
|
+
hasPublishPermission: hasPublishPermission,
|
|
249
|
+
hasSavePermission: hasSavePermission,
|
|
250
|
+
id: id,
|
|
251
|
+
isEditing: isEditing,
|
|
252
|
+
onTakeOver: () => handleTakeOver(id, collectionSlug, globalSlug, user, true, updateDocumentEditor, setCurrentEditor, documentLockStateRef, isLockingEnabled, setIsReadOnlyForIncomingUser),
|
|
253
|
+
permissions: docPermissions,
|
|
254
|
+
readOnlyForIncomingUser: isReadOnlyForIncomingUser,
|
|
255
|
+
slug: collectionConfig?.slug || globalConfig?.slug,
|
|
256
|
+
user: currentEditor
|
|
257
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
258
|
+
className: [baseClass, previewWindowType === 'popup' && `${baseClass}--detached`].filter(Boolean).join(' '),
|
|
259
|
+
children: [/*#__PURE__*/_jsxs("div", {
|
|
260
|
+
className: [`${baseClass}__main`, previewWindowType === 'popup' && `${baseClass}__main--popup-open`].filter(Boolean).join(' '),
|
|
261
|
+
children: [BeforeDocument, /*#__PURE__*/_jsx(DocumentFields, {
|
|
262
|
+
AfterFields: AfterFields,
|
|
263
|
+
BeforeFields: BeforeFields,
|
|
264
|
+
docPermissions: docPermissions,
|
|
265
|
+
fields: fields,
|
|
266
|
+
forceSidebarWrap: true,
|
|
267
|
+
readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
|
|
268
|
+
schemaPath: collectionSlug || globalSlug
|
|
269
|
+
}), AfterDocument]
|
|
270
|
+
}), /*#__PURE__*/_jsx(LivePreview, {
|
|
271
|
+
collectionSlug: collectionSlug,
|
|
272
|
+
globalSlug: globalSlug
|
|
222
273
|
})]
|
|
223
|
-
})
|
|
224
|
-
})
|
|
225
|
-
|
|
226
|
-
$[16] = collectionConfig;
|
|
227
|
-
$[17] = globalConfig;
|
|
228
|
-
$[18] = disableLeaveWithoutSaving;
|
|
229
|
-
$[19] = t;
|
|
230
|
-
$[20] = collectionSlug;
|
|
231
|
-
$[21] = globalSlug;
|
|
232
|
-
$[22] = id;
|
|
233
|
-
$[23] = config;
|
|
234
|
-
$[24] = apiURL;
|
|
235
|
-
$[25] = initialData;
|
|
236
|
-
$[26] = disableActions;
|
|
237
|
-
$[27] = hasPublishPermission;
|
|
238
|
-
$[28] = hasSavePermission;
|
|
239
|
-
$[29] = isEditing;
|
|
240
|
-
$[30] = docPermissions;
|
|
241
|
-
$[31] = previewWindowType;
|
|
242
|
-
$[32] = AfterFields;
|
|
243
|
-
$[33] = BeforeFields;
|
|
244
|
-
$[34] = fields;
|
|
245
|
-
$[35] = BeforeDocument;
|
|
246
|
-
$[36] = AfterDocument;
|
|
247
|
-
$[37] = action;
|
|
248
|
-
$[38] = t5;
|
|
249
|
-
$[39] = initialState;
|
|
250
|
-
$[40] = isInitializing;
|
|
251
|
-
$[41] = t6;
|
|
252
|
-
$[42] = onSave;
|
|
253
|
-
$[43] = operation;
|
|
254
|
-
$[44] = t7;
|
|
255
|
-
} else {
|
|
256
|
-
t7 = $[44];
|
|
257
|
-
}
|
|
258
|
-
return t7;
|
|
274
|
+
})]
|
|
275
|
+
})
|
|
276
|
+
});
|
|
259
277
|
};
|
|
260
278
|
export const LivePreviewClient = props => {
|
|
261
279
|
const $ = _c(14);
|