@payloadcms/next 3.0.0-canary.96477cf → 3.0.0-canary.98e0119
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 +166 -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.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/Tab/index.scss +70 -68
- 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/index.scss +41 -39
- 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/DocumentHeader/index.scss +44 -42
- 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/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/NavWrapper/index.scss +20 -18
- package/dist/elements/Nav/getNavPrefs.d.ts +6 -0
- package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -0
- package/dist/elements/Nav/getNavPrefs.js +26 -0
- package/dist/elements/Nav/getNavPrefs.js.map +1 -0
- package/dist/elements/Nav/index.client.d.ts +6 -1
- package/dist/elements/Nav/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/index.client.js +44 -94
- 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 +66 -23
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/Nav/index.scss +127 -125
- 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/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 +2 -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 +30 -48
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +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 +5 -0
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +73 -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 +7 -12
- 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 +9 -48
- 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.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/templates/Default/index.scss +60 -58
- package/dist/templates/Minimal/index.scss +22 -20
- package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
- package/dist/utilities/addLocalesToRequest.js +18 -8
- package/dist/utilities/addLocalesToRequest.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +14 -11
- package/dist/utilities/createPayloadRequest.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/getRequestLocales.d.ts.map +1 -1
- package/dist/utilities/getRequestLocales.js +10 -6
- package/dist/utilities/getRequestLocales.js.map +1 -1
- 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 +13 -11
- package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.js +16 -20
- 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 +29 -11
- 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.d.ts +1 -1
- package/dist/utilities/initReq.d.ts.map +1 -1
- package/dist/utilities/initReq.js +3 -3
- package/dist/utilities/initReq.js.map +1 -1
- package/dist/views/API/LocaleSelector/index.js +2 -2
- package/dist/views/API/LocaleSelector/index.js.map +1 -1
- package/dist/views/API/RenderJSON/index.scss +68 -66
- package/dist/views/API/index.client.d.ts.map +1 -1
- package/dist/views/API/index.client.js +16 -16
- package/dist/views/API/index.client.js.map +1 -1
- package/dist/views/API/index.scss +98 -96
- package/dist/views/Account/Settings/index.js +0 -1
- 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 +2 -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 +82 -25
- 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 -108
- 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/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 +58 -47
- 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 +53 -34
- 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 -45
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +2 -4
- package/dist/views/Document/getDocumentPermissions.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 +22 -17
- 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 +183 -73
- 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 +14 -12
- 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 +8 -6
- package/dist/views/ForgotPassword/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 +144 -84
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts +12 -0
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -0
- package/dist/views/List/renderListViewSlots.js +56 -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/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 +52 -42
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/LivePreview/index.js +2 -2
- package/dist/views/LivePreview/index.js.map +1 -1
- package/dist/views/LivePreview/index.scss +48 -46
- package/dist/views/Login/LoginField/index.d.ts.map +1 -1
- package/dist/views/Login/LoginField/index.js +6 -1
- package/dist/views/Login/LoginField/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +4 -2
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.scss +8 -6
- package/dist/views/Login/index.d.ts.map +1 -1
- package/dist/views/Login/index.js +26 -20
- package/dist/views/Login/index.js.map +1 -1
- package/dist/views/Login/index.scss +8 -6
- package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
- package/dist/views/Logout/LogoutClient.js +79 -56
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.scss +17 -15
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +3 -0
- 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} +21 -16
- 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 +3 -1
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +128 -13
- 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 +39 -17
- package/dist/views/Root/index.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.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/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.js +1 -1
- 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/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 -44
- 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/getLatestVersion.js +1 -1
- package/dist/views/Versions/getLatestVersion.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 +5 -6
- 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 +19 -1
- package/dist/withPayload.js.map +1 -1
- package/license.md +22 -0
- package/package.json +21 -12
- package/dist/cjs/withPayload.js +0 -111
- package/dist/cjs/withPayload.js.map +0 -1
- 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 -142
- package/dist/elements/DocumentLocked/index.js.map +0 -1
- package/dist/elements/DocumentLocked/index.scss +0 -37
- 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 -37
- 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 -37
- 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 -131
- 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 -307
- package/dist/views/Edit/Default/Auth/index.js.map +0 -1
- package/dist/views/Edit/Default/Auth/index.scss +0 -76
- 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 -342
- package/dist/views/Edit/Default/index.js.map +0 -1
- package/dist/views/Edit/Default/index.scss +0 -21
- 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 -177
- 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/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,59 +1,61 @@
|
|
|
1
1
|
@import '../../../../scss/styles.scss';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
align-items: center;
|
|
6
|
-
gap: calc(var(--base) / 3);
|
|
7
|
-
|
|
8
|
-
&__breakpoint {
|
|
9
|
-
border: none;
|
|
10
|
-
background: transparent;
|
|
11
|
-
height: var(--base);
|
|
12
|
-
|
|
13
|
-
&:focus {
|
|
14
|
-
outline: none;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
&__device-size {
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.live-preview-toolbar-controls {
|
|
19
5
|
display: flex;
|
|
20
6
|
align-items: center;
|
|
21
|
-
|
|
7
|
+
gap: calc(var(--base) / 3);
|
|
22
8
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
align-items: center;
|
|
28
|
-
border: 1px solid var(--theme-elevation-200);
|
|
29
|
-
background: var(--theme-elevation-100);
|
|
30
|
-
border-radius: 2px;
|
|
31
|
-
font-size: small;
|
|
32
|
-
}
|
|
9
|
+
&__breakpoint {
|
|
10
|
+
border: none;
|
|
11
|
+
background: transparent;
|
|
12
|
+
height: var(--base);
|
|
33
13
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
height: var(--base);
|
|
14
|
+
&:focus {
|
|
15
|
+
outline: none;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
39
18
|
|
|
40
|
-
|
|
41
|
-
|
|
19
|
+
&__device-size {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
42
22
|
}
|
|
43
|
-
}
|
|
44
23
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
24
|
+
&__size {
|
|
25
|
+
width: 50px;
|
|
26
|
+
height: var(--base);
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
border: 1px solid var(--theme-elevation-200);
|
|
30
|
+
background: var(--theme-elevation-100);
|
|
31
|
+
border-radius: 2px;
|
|
32
|
+
font-size: small;
|
|
33
|
+
}
|
|
54
34
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
&__zoom {
|
|
36
|
+
width: 55px;
|
|
37
|
+
border: none;
|
|
38
|
+
background: transparent;
|
|
39
|
+
height: var(--base);
|
|
40
|
+
|
|
41
|
+
&:focus {
|
|
42
|
+
outline: none;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&__external {
|
|
47
|
+
flex-shrink: 0;
|
|
48
|
+
display: flex;
|
|
49
|
+
width: var(--base);
|
|
50
|
+
height: var(--base);
|
|
51
|
+
align-items: center;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
padding: 6px 0;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.popup-button {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
}
|
|
58
60
|
}
|
|
59
61
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
@layer payload-default {
|
|
2
|
+
.toolbar-input {
|
|
3
|
+
width: 50px;
|
|
4
|
+
height: var(--base);
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
border: 1px solid var(--theme-elevation-200);
|
|
8
|
+
background: var(--theme-elevation-100);
|
|
9
|
+
border-radius: 2px;
|
|
10
|
+
font-size: small;
|
|
11
|
+
}
|
|
10
12
|
}
|
|
@@ -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,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,
|
|
@@ -47,12 +39,18 @@ const PreviewView = ({
|
|
|
47
39
|
initialState,
|
|
48
40
|
isEditing,
|
|
49
41
|
isInitializing,
|
|
50
|
-
|
|
42
|
+
lastUpdateTime,
|
|
51
43
|
setCurrentEditor,
|
|
52
44
|
setDocumentIsLocked,
|
|
53
45
|
unlockDocument,
|
|
54
46
|
updateDocumentEditor
|
|
55
47
|
} = useDocumentInfo();
|
|
48
|
+
const {
|
|
49
|
+
getFormState
|
|
50
|
+
} = useServerFunctions();
|
|
51
|
+
const {
|
|
52
|
+
onSave: onSaveFromProps
|
|
53
|
+
} = useDocumentDrawerContext();
|
|
56
54
|
const operation = id ? 'update' : 'create';
|
|
57
55
|
const {
|
|
58
56
|
config: {
|
|
@@ -81,14 +79,21 @@ const PreviewView = ({
|
|
|
81
79
|
const docConfig = collectionConfig || globalConfig;
|
|
82
80
|
const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true;
|
|
83
81
|
const isLockingEnabled = lockDocumentsProp !== false;
|
|
82
|
+
const lockDurationDefault = 300 // Default 5 minutes in seconds
|
|
83
|
+
;
|
|
84
|
+
const lockDuration = typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault;
|
|
85
|
+
const lockDurationInMilliseconds = lockDuration * 1000;
|
|
84
86
|
const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false);
|
|
85
87
|
const [showTakeOverModal, setShowTakeOverModal] = useState(false);
|
|
88
|
+
const formStateAbortControllerRef = useRef(new AbortController());
|
|
89
|
+
const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now());
|
|
90
|
+
const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
|
|
91
|
+
const isLockExpired = Date.now() > lockExpiryTime;
|
|
86
92
|
const documentLockStateRef = useRef({
|
|
87
93
|
hasShownLockedModal: false,
|
|
88
94
|
isLocked: false,
|
|
89
95
|
user: null
|
|
90
96
|
});
|
|
91
|
-
const [lastUpdateTime, setLastUpdateTime] = useState(Date.now());
|
|
92
97
|
const onSave = useCallback(json => {
|
|
93
98
|
reportUpdate({
|
|
94
99
|
id,
|
|
@@ -114,38 +119,40 @@ const PreviewView = ({
|
|
|
114
119
|
const onChange = useCallback(async ({
|
|
115
120
|
formState: prevFormState
|
|
116
121
|
}) => {
|
|
122
|
+
abortAndIgnore(formStateAbortControllerRef.current);
|
|
123
|
+
const controller = new AbortController();
|
|
124
|
+
formStateAbortControllerRef.current = controller;
|
|
117
125
|
const currentTime = Date.now();
|
|
118
|
-
const timeSinceLastUpdate = currentTime -
|
|
126
|
+
const timeSinceLastUpdate = currentTime - editSessionStartTime;
|
|
119
127
|
const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds
|
|
120
128
|
;
|
|
121
129
|
if (updateLastEdited) {
|
|
122
|
-
|
|
130
|
+
setEditSessionStartTime(currentTime);
|
|
123
131
|
}
|
|
124
132
|
const docPreferences = await getDocPreferences();
|
|
125
133
|
const {
|
|
126
134
|
lockedState,
|
|
127
135
|
state
|
|
128
136
|
} = await getFormState({
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
},
|
|
141
|
-
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
|
|
142
148
|
});
|
|
143
149
|
setDocumentIsLocked(true);
|
|
144
150
|
if (isLockingEnabled) {
|
|
145
|
-
const previousOwnerId = documentLockStateRef.current?.user?.id;
|
|
151
|
+
const previousOwnerId = typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id : documentLockStateRef.current?.user;
|
|
146
152
|
if (lockedState) {
|
|
147
|
-
|
|
148
|
-
|
|
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) {
|
|
149
156
|
setShowTakeOverModal(true);
|
|
150
157
|
documentLockStateRef.current.hasShownLockedModal = true;
|
|
151
158
|
}
|
|
@@ -159,7 +166,7 @@ const PreviewView = ({
|
|
|
159
166
|
}
|
|
160
167
|
}
|
|
161
168
|
return state;
|
|
162
|
-
}, [
|
|
169
|
+
}, [editSessionStartTime, isLockingEnabled, getDocPreferences, getFormState, id, collectionSlug, docPermissions, globalSlug, operation, schemaPath, setDocumentIsLocked, user.id, setCurrentEditor]);
|
|
163
170
|
// Clean up when the component unmounts or when the document is unlocked
|
|
164
171
|
useEffect(() => {
|
|
165
172
|
return () => {
|
|
@@ -174,7 +181,7 @@ const PreviewView = ({
|
|
|
174
181
|
// Unlock the document only if we're actually navigating away from the document
|
|
175
182
|
if (documentId && documentIsLocked && !isStayingWithinDocument) {
|
|
176
183
|
// Check if this user is still the current editor
|
|
177
|
-
if (documentLockStateRef.current?.user?.id === user?.id) {
|
|
184
|
+
if (typeof documentLockStateRef.current?.user === 'object' ? documentLockStateRef.current?.user?.id === user?.id : documentLockStateRef.current?.user === user?.id) {
|
|
178
185
|
void unlockDocument(id, collectionSlug ?? globalSlug);
|
|
179
186
|
setDocumentIsLocked(false);
|
|
180
187
|
setCurrentEditor(null);
|
|
@@ -183,9 +190,14 @@ const PreviewView = ({
|
|
|
183
190
|
setShowTakeOverModal(false);
|
|
184
191
|
};
|
|
185
192
|
}, [collectionSlug, globalSlug, id, unlockDocument, user, setCurrentEditor, isLockingEnabled, documentIsLocked, setDocumentIsLocked]);
|
|
186
|
-
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
return () => {
|
|
195
|
+
abortAndIgnore(formStateAbortControllerRef.current);
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal &&
|
|
187
199
|
// eslint-disable-next-line react-compiler/react-compiler
|
|
188
|
-
!documentLockStateRef.current?.hasShownLockedModal;
|
|
200
|
+
!documentLockStateRef.current?.hasShownLockedModal && !isLockExpired;
|
|
189
201
|
return /*#__PURE__*/_jsx(OperationProvider, {
|
|
190
202
|
operation: operation,
|
|
191
203
|
children: /*#__PURE__*/_jsxs(Form, {
|
|
@@ -251,14 +263,14 @@ const PreviewView = ({
|
|
|
251
263
|
className: [baseClass, previewWindowType === 'popup' && `${baseClass}--detached`].filter(Boolean).join(' '),
|
|
252
264
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
253
265
|
className: [`${baseClass}__main`, previewWindowType === 'popup' && `${baseClass}__main--popup-open`].filter(Boolean).join(' '),
|
|
254
|
-
children: [
|
|
266
|
+
children: [/*#__PURE__*/_jsx(DocumentFields, {
|
|
255
267
|
AfterFields: AfterFields,
|
|
256
268
|
BeforeFields: BeforeFields,
|
|
257
269
|
docPermissions: docPermissions,
|
|
258
270
|
fields: fields,
|
|
259
271
|
forceSidebarWrap: true,
|
|
260
272
|
readOnly: isReadOnlyForIncomingUser || !hasSavePermission,
|
|
261
|
-
|
|
273
|
+
schemaPathSegments: [collectionSlug || globalSlug]
|
|
262
274
|
}), AfterDocument]
|
|
263
275
|
}), /*#__PURE__*/_jsx(LivePreview, {
|
|
264
276
|
collectionSlug: collectionSlug,
|
|
@@ -315,10 +327,8 @@ export const LivePreviewClient = props => {
|
|
|
315
327
|
globalSlug
|
|
316
328
|
});
|
|
317
329
|
const schemaPath = collectionSlug || globalSlug;
|
|
318
|
-
t3 =
|
|
319
|
-
children:
|
|
320
|
-
actions: (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions
|
|
321
|
-
}), _jsx(LivePreviewProvider, {
|
|
330
|
+
t3 = _jsx(Fragment, {
|
|
331
|
+
children: _jsx(LivePreviewProvider, {
|
|
322
332
|
breakpoints,
|
|
323
333
|
fieldSchema: collectionConfig?.fields || globalConfig?.fields,
|
|
324
334
|
isPopupOpen,
|
|
@@ -334,7 +344,7 @@ export const LivePreviewClient = props => {
|
|
|
334
344
|
schemaPath,
|
|
335
345
|
serverURL
|
|
336
346
|
})
|
|
337
|
-
})
|
|
347
|
+
})
|
|
338
348
|
});
|
|
339
349
|
$[2] = collectionSlug;
|
|
340
350
|
$[3] = getEntityConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","Form","OperationProvider","SetViewActions","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useTranslation","getFormState","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","SetDocumentStepNav","SetDocumentTitle","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","apiRoute","collectionConfig","config","fields","globalConfig","schemaPath","serverURL","id","action","AfterDocument","AfterFields","apiURL","BeforeDocument","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","onSave","onSaveFromProps","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","documentLockStateRef","hasShownLockedModal","isLocked","lastUpdateTime","setLastUpdateTime","Date","now","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","body","returnLockStatus","previousOwnerId","current","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","api","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","actions","components","views","edit","livePreview","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n Form,\n OperationProvider,\n SetViewActions,\n useAuth,\n useConfig,\n useDocumentEvents,\n useDocumentInfo,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n getFormState,\n handleBackToDashboard,\n handleGoBack,\n handleTakeOver,\n} from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { SetDocumentStepNav } from '../Edit/Default/SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from '../Edit/Default/SetDocumentTitle/index.js'\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n apiRoute,\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n serverURL,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeDocument,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n onSave: onSaveFromProps,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n\n const isLockingEnabled = lockDocumentsProp !== false\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const [lastUpdateTime, setLastUpdateTime] = useState(Date.now())\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - lastUpdateTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setLastUpdateTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n apiRoute,\n body: {\n id,\n collectionSlug,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n updateLastEdited,\n },\n serverURL,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId = documentLockStateRef.current?.user?.id\n\n if (lockedState) {\n if (!documentLockStateRef.current || lockedState.user.id !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedState.user.id !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user,\n }\n setCurrentEditor(lockedState.user)\n }\n }\n }\n\n return state\n },\n [\n collectionSlug,\n globalSlug,\n serverURL,\n apiRoute,\n id,\n isLockingEnabled,\n lastUpdateTime,\n operation,\n schemaPath,\n getDocPreferences,\n setCurrentEditor,\n setDocumentIsLocked,\n user,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (documentLockStateRef.current?.user?.id === user?.id) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n currentEditor.id !== user.id &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeDocument}\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPath={collectionSlug || globalSlug}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\n <SetViewActions\n actions={\n (collectionConfig || globalConfig)?.admin?.components?.views?.edit?.livePreview?.actions\n }\n />\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.client.js","names":["c","_c","DocumentControls","DocumentFields","DocumentLocked","DocumentTakeOver","Form","LeaveWithoutSaving","OperationProvider","SetDocumentStepNav","SetDocumentTitle","useAuth","useConfig","useDocumentDrawerContext","useDocumentEvents","useDocumentInfo","useServerFunctions","useTranslation","abortAndIgnore","handleBackToDashboard","handleGoBack","handleTakeOver","useRouter","React","Fragment","useCallback","useEffect","useRef","useState","useLivePreviewContext","LivePreviewProvider","LivePreview","usePopupWindow","baseClass","PreviewView","collectionConfig","config","fields","globalConfig","schemaPath","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","initialData","initialState","isEditing","isInitializing","lastUpdateTime","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","getFormState","onSave","onSaveFromProps","operation","admin","user","userSlug","routes","adminRoute","router","t","previewWindowType","refreshCookieAsync","reportUpdate","docConfig","lockDocumentsProp","lockDocuments","undefined","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","formStateAbortControllerRef","AbortController","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","json","entitySlug","updatedAt","result","toISOString","onChange","formState","prevFormState","current","controller","currentTime","timeSinceLastUpdate","updateLastEdited","docPreferences","lockedState","state","returnLockStatus","signal","previousOwnerId","lockedUserID","currentPath","window","location","pathname","documentId","stayWithinDocumentPaths","isStayingWithinDocument","some","path","includes","shouldShowDocumentLockedModal","_jsx","_jsxs","className","disabled","method","onSuccess","isActive","onReadOnly","onTakeOver","versions","drafts","autosave","globalLabel","label","pluralLabel","labels","plural","useAsTitle","view","fallback","toString","data","permissions","readOnlyForIncomingUser","slug","filter","Boolean","join","forceSidebarWrap","readOnly","schemaPathSegments","LivePreviewClient","props","$","breakpoints","url","t0","getEntityConfig","t1","serverURL","api","apiRoute","t2","eventType","isPopupOpen","openPopupWindow","popupRef","t3","children","fieldSchema"],"sources":["../../../src/views/LivePreview/index.client.tsx"],"sourcesContent":["'use client'\nimport type { FormProps } from '@payloadcms/ui'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n ClientGlobalConfig,\n ClientUser,\n Data,\n LivePreviewConfig,\n} from 'payload'\n\nimport {\n DocumentControls,\n DocumentFields,\n DocumentLocked,\n DocumentTakeOver,\n Form,\n LeaveWithoutSaving,\n OperationProvider,\n SetDocumentStepNav,\n SetDocumentTitle,\n useAuth,\n useConfig,\n useDocumentDrawerContext,\n useDocumentEvents,\n useDocumentInfo,\n useServerFunctions,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n abortAndIgnore,\n handleBackToDashboard,\n handleGoBack,\n handleTakeOver,\n} from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useLivePreviewContext } from './Context/context.js'\nimport { LivePreviewProvider } from './Context/index.js'\nimport './index.scss'\nimport { LivePreview } from './Preview/index.js'\nimport { usePopupWindow } from './usePopupWindow.js'\n\nconst baseClass = 'live-preview'\n\ntype Props = {\n readonly apiRoute: string\n readonly collectionConfig?: ClientCollectionConfig\n readonly config: ClientConfig\n readonly fields: ClientField[]\n readonly globalConfig?: ClientGlobalConfig\n readonly schemaPath: string\n readonly serverURL: string\n}\n\nconst PreviewView: React.FC<Props> = ({\n collectionConfig,\n config,\n fields,\n globalConfig,\n schemaPath,\n}) => {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n initialData,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const { getFormState } = useServerFunctions()\n\n const { onSave: onSaveFromProps } = useDocumentDrawerContext()\n\n const operation = id ? 'update' : 'create'\n\n const {\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n } = useConfig()\n const router = useRouter()\n const { t } = useTranslation()\n const { previewWindowType } = useLivePreviewContext()\n const { refreshCookieAsync, user } = useAuth()\n const { reportUpdate } = useDocumentEvents()\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const formStateAbortControllerRef = useRef(new AbortController())\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n id,\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n // Unlock the document after save\n if ((id || globalSlug) && isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...json,\n operation: id ? 'update' : 'create',\n })\n }\n },\n [\n collectionSlug,\n globalSlug,\n id,\n isLockingEnabled,\n onSaveFromProps,\n refreshCookieAsync,\n reportUpdate,\n setDocumentIsLocked,\n user,\n userSlug,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n abortAndIgnore(formStateAbortControllerRef.current)\n\n const controller = new AbortController()\n formStateAbortControllerRef.current = controller\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n returnLockStatus: isLockingEnabled ? true : false,\n schemaPath,\n signal: controller.signal,\n updateLastEdited,\n })\n\n setDocumentIsLocked(true)\n\n if (isLockingEnabled) {\n const previousOwnerId =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerId) {\n if (previousOwnerId === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n }\n\n return state\n },\n [\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPath,\n setDocumentIsLocked,\n user.id,\n setCurrentEditor,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (!isLockingEnabled) {\n return\n }\n\n const currentPath = window.location.pathname\n\n const documentId = id || globalSlug\n\n // Routes where we do NOT want to unlock the document\n const stayWithinDocumentPaths = ['preview', 'api', 'versions']\n\n const isStayingWithinDocument = stayWithinDocumentPaths.some((path) =>\n currentPath.includes(path),\n )\n\n // Unlock the document only if we're actually navigating away from the document\n if (documentId && documentIsLocked && !isStayingWithinDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n return () => {\n abortAndIgnore(formStateAbortControllerRef.current)\n }\n })\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n // eslint-disable-next-line react-compiler/react-compiler\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || !hasSavePermission}\n initialState={initialState}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {((collectionConfig &&\n !(collectionConfig.versions?.drafts && collectionConfig.versions?.drafts?.autosave)) ||\n (globalConfig &&\n !(globalConfig.versions?.drafts && globalConfig.versions?.drafts?.autosave))) &&\n !disableLeaveWithoutSaving &&\n !isReadOnlyForIncomingUser && <LeaveWithoutSaving />}\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view={t('general:livePreview')}\n />\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={id?.toString() || ''}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n data={initialData}\n disableActions={disableActions}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[baseClass, previewWindowType === 'popup' && `${baseClass}--detached`]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={BeforeFields}\n docPermissions={docPermissions}\n fields={fields}\n forceSidebarWrap\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={[collectionSlug || globalSlug]}\n />\n {AfterDocument}\n </div>\n <LivePreview collectionSlug={collectionSlug} globalSlug={globalSlug} />\n </div>\n </Form>\n </OperationProvider>\n )\n}\n\nexport const LivePreviewClient: React.FC<{\n readonly breakpoints: LivePreviewConfig['breakpoints']\n readonly initialData: Data\n readonly url: string\n}> = (props) => {\n const { breakpoints, url } = props\n const { collectionSlug, globalSlug } = useDocumentInfo()\n\n const {\n config,\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const { isPopupOpen, openPopupWindow, popupRef } = usePopupWindow({\n eventType: 'payload-live-preview',\n url,\n })\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug }) as ClientGlobalConfig\n\n const schemaPath = collectionSlug || globalSlug\n\n return (\n <Fragment>\n <LivePreviewProvider\n breakpoints={breakpoints}\n fieldSchema={collectionConfig?.fields || globalConfig?.fields}\n isPopupOpen={isPopupOpen}\n openPopupWindow={openPopupWindow}\n popupRef={popupRef}\n url={url}\n >\n <PreviewView\n apiRoute={apiRoute}\n collectionConfig={collectionConfig}\n config={config}\n fields={(collectionConfig || globalConfig)?.fields}\n globalConfig={globalConfig}\n schemaPath={schemaPath}\n serverURL={serverURL}\n />\n </LivePreviewProvider>\n </Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,7 +29,7 @@ export const LivePreviewView = async props => {
|
|
|
29
29
|
collection: collectionConfig.slug,
|
|
30
30
|
depth: 0,
|
|
31
31
|
draft: true,
|
|
32
|
-
fallbackLocale:
|
|
32
|
+
fallbackLocale: false
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
if (globalConfig) {
|
|
@@ -37,7 +37,7 @@ export const LivePreviewView = async props => {
|
|
|
37
37
|
slug: globalConfig.slug,
|
|
38
38
|
depth: 0,
|
|
39
39
|
draft: true,
|
|
40
|
-
fallbackLocale:
|
|
40
|
+
fallbackLocale: false
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["notFound","React","LivePreviewClient","LivePreviewView","props","initPageResult","collectionConfig","docID","globalConfig","locale","req","payload","config","admin","livePreview","topLevelLivePreviewConfig","data","findByID","id","collection","slug","depth","draft","fallbackLocale","findGlobal","error","livePreviewConfig","breakpoints","name","height","label","width","url","_jsx","initialData"],"sources":["../../../src/views/LivePreview/index.tsx"],"sourcesContent":["import type {\n EditViewComponent,\n LivePreviewConfig,\n PayloadServerReactComponent,\n TypeWithID,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { LivePreviewClient } from './index.client.js'\nimport './index.scss'\n\nexport const LivePreviewView: PayloadServerReactComponent<EditViewComponent> = async (props) => {\n const { initPageResult } = props\n\n const {\n collectionConfig,\n docID,\n globalConfig,\n locale,\n req: {\n payload: {\n config: {\n admin: { livePreview: topLevelLivePreviewConfig },\n },\n } = {},\n } = {},\n } = initPageResult\n\n let data: Record<string, unknown> | TypeWithID\n\n try {\n if (collectionConfig) {\n data = await initPageResult.req.payload.findByID({\n id: docID,\n collection: collectionConfig.slug,\n depth: 0,\n draft: true,\n fallbackLocale:
|
|
1
|
+
{"version":3,"file":"index.js","names":["notFound","React","LivePreviewClient","LivePreviewView","props","initPageResult","collectionConfig","docID","globalConfig","locale","req","payload","config","admin","livePreview","topLevelLivePreviewConfig","data","findByID","id","collection","slug","depth","draft","fallbackLocale","findGlobal","error","livePreviewConfig","breakpoints","name","height","label","width","url","_jsx","initialData"],"sources":["../../../src/views/LivePreview/index.tsx"],"sourcesContent":["import type {\n EditViewComponent,\n LivePreviewConfig,\n PayloadServerReactComponent,\n TypeWithID,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { LivePreviewClient } from './index.client.js'\nimport './index.scss'\n\nexport const LivePreviewView: PayloadServerReactComponent<EditViewComponent> = async (props) => {\n const { initPageResult } = props\n\n const {\n collectionConfig,\n docID,\n globalConfig,\n locale,\n req: {\n payload: {\n config: {\n admin: { livePreview: topLevelLivePreviewConfig },\n },\n } = {},\n } = {},\n } = initPageResult\n\n let data: Record<string, unknown> | TypeWithID\n\n try {\n if (collectionConfig) {\n data = await initPageResult.req.payload.findByID({\n id: docID,\n collection: collectionConfig.slug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n })\n }\n\n if (globalConfig) {\n data = await initPageResult.req.payload.findGlobal({\n slug: globalConfig.slug,\n depth: 0,\n draft: true,\n fallbackLocale: false,\n })\n }\n } catch (error) {\n notFound()\n }\n\n let livePreviewConfig: LivePreviewConfig = topLevelLivePreviewConfig\n\n if (collectionConfig) {\n livePreviewConfig = {\n ...(livePreviewConfig || {}),\n ...(collectionConfig.admin.livePreview || {}),\n }\n }\n\n if (globalConfig) {\n livePreviewConfig = {\n ...(livePreviewConfig || {}),\n ...(globalConfig.admin.livePreview || {}),\n }\n }\n\n const breakpoints: LivePreviewConfig['breakpoints'] = [\n ...(livePreviewConfig?.breakpoints || []),\n {\n name: 'responsive',\n height: '100%',\n label: 'Responsive',\n width: '100%',\n },\n ]\n\n const url =\n typeof livePreviewConfig?.url === 'function'\n ? await livePreviewConfig.url({\n collectionConfig,\n data,\n globalConfig,\n locale,\n payload: initPageResult.req.payload,\n })\n : livePreviewConfig?.url\n\n return <LivePreviewClient breakpoints={breakpoints} initialData={data} url={url} />\n}\n"],"mappings":";AAOA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,iBAAiB,QAAQ;AAGlC,OAAO,MAAMC,eAAA,GAAkE,MAAOC,KAAA;EACpF,MAAM;IAAEC;EAAc,CAAE,GAAGD,KAAA;EAE3B,MAAM;IACJE,gBAAgB;IAChBC,KAAK;IACLC,YAAY;IACZC,MAAM;IACNC,GAAA,EAAK;MACHC,OAAA,EAAS;QACPC,MAAA,EAAQ;UACNC,KAAA,EAAO;YAAEC,WAAA,EAAaC;UAAyB;QAAE;MAClD,CACF,GAAG,CAAC;IAAC,CACP,GAAG,CAAC;EAAC,CACP,GAAGV,cAAA;EAEJ,IAAIW,IAAA;EAEJ,IAAI;IACF,IAAIV,gBAAA,EAAkB;MACpBU,IAAA,GAAO,MAAMX,cAAA,CAAeK,GAAG,CAACC,OAAO,CAACM,QAAQ,CAAC;QAC/CC,EAAA,EAAIX,KAAA;QACJY,UAAA,EAAYb,gBAAA,CAAiBc,IAAI;QACjCC,KAAA,EAAO;QACPC,KAAA,EAAO;QACPC,cAAA,EAAgB;MAClB;IACF;IAEA,IAAIf,YAAA,EAAc;MAChBQ,IAAA,GAAO,MAAMX,cAAA,CAAeK,GAAG,CAACC,OAAO,CAACa,UAAU,CAAC;QACjDJ,IAAA,EAAMZ,YAAA,CAAaY,IAAI;QACvBC,KAAA,EAAO;QACPC,KAAA,EAAO;QACPC,cAAA,EAAgB;MAClB;IACF;EACF,EAAE,OAAOE,KAAA,EAAO;IACdzB,QAAA;EACF;EAEA,IAAI0B,iBAAA,GAAuCX,yBAAA;EAE3C,IAAIT,gBAAA,EAAkB;IACpBoB,iBAAA,GAAoB;MAClB,IAAIA,iBAAA,IAAqB,CAAC,CAAC;MAC3B,IAAIpB,gBAAA,CAAiBO,KAAK,CAACC,WAAW,IAAI,CAAC,CAAC;IAC9C;EACF;EAEA,IAAIN,YAAA,EAAc;IAChBkB,iBAAA,GAAoB;MAClB,IAAIA,iBAAA,IAAqB,CAAC,CAAC;MAC3B,IAAIlB,YAAA,CAAaK,KAAK,CAACC,WAAW,IAAI,CAAC,CAAC;IAC1C;EACF;EAEA,MAAMa,WAAA,GAAgD,C,IAChDD,iBAAA,EAAmBC,WAAA,IAAe,EAAE,GACxC;IACEC,IAAA,EAAM;IACNC,MAAA,EAAQ;IACRC,KAAA,EAAO;IACPC,KAAA,EAAO;EACT,EACD;EAED,MAAMC,GAAA,GACJ,OAAON,iBAAA,EAAmBM,GAAA,KAAQ,aAC9B,MAAMN,iBAAA,CAAkBM,GAAG,CAAC;IAC1B1B,gBAAA;IACAU,IAAA;IACAR,YAAA;IACAC,MAAA;IACAE,OAAA,EAASN,cAAA,CAAeK,GAAG,CAACC;EAC9B,KACAe,iBAAA,EAAmBM,GAAA;EAEzB,oBAAOC,IAAA,CAAC/B,iBAAA;IAAkByB,WAAA,EAAaA,WAAA;IAAaO,WAAA,EAAalB,IAAA;IAAMgB,GAAA,EAAKA;;AAC9E","ignoreList":[]}
|