From 12203140ad7c9ebe5b458eea0dbd725fe5d29e58 Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Mon, 8 Apr 2024 13:59:03 -0400 Subject: [PATCH 1/3] chore: unprettified pointer files --- .prettierignore | 2 ++ packages/payload/node.d.ts | 7 ++----- packages/payload/node.js | 7 ++----- packages/payload/uploads.d.ts | 2 +- packages/payload/uploads.js | 2 +- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/.prettierignore b/.prettierignore index 17883dc0e5..d76d25c0a3 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,3 +10,5 @@ **/temp **/docs/** tsconfig.json +packages/payload/*.js +packages/payload/*.d.ts diff --git a/packages/payload/node.d.ts b/packages/payload/node.d.ts index 3f0b713267..58a3d77ef7 100644 --- a/packages/payload/node.d.ts +++ b/packages/payload/node.d.ts @@ -1,5 +1,2 @@ -export { - importConfig, - importWithoutClientFiles, -} from './dist/utilities/importWithoutClientFiles.js' -//# sourceMappingURL=node.d.ts.map +export { importConfig, importWithoutClientFiles } from './dist/utilities/importWithoutClientFiles.js'; +//# sourceMappingURL=node.d.ts.map \ No newline at end of file diff --git a/packages/payload/node.js b/packages/payload/node.js index a5fae121f4..9973c022ed 100644 --- a/packages/payload/node.js +++ b/packages/payload/node.js @@ -1,6 +1,3 @@ -export { - importConfig, - importWithoutClientFiles, -} from './dist/utilities/importWithoutClientFiles.js' +export { importConfig, importWithoutClientFiles } from './dist/utilities/importWithoutClientFiles.js'; -//# sourceMappingURL=node.js.map +//# sourceMappingURL=node.js.map \ No newline at end of file diff --git a/packages/payload/uploads.d.ts b/packages/payload/uploads.d.ts index 0f752224b8..d741ff4ea0 100644 --- a/packages/payload/uploads.d.ts +++ b/packages/payload/uploads.d.ts @@ -1,2 +1,2 @@ -export { getFileByPath } from './dist/uploads/getFileByPath.js' +export { getFileByPath } from './dist/uploads/getFileByPath.js'; //# sourceMappingURL=uploads.d.ts.map diff --git a/packages/payload/uploads.js b/packages/payload/uploads.js index 45787b92e6..bae8119abf 100644 --- a/packages/payload/uploads.js +++ b/packages/payload/uploads.js @@ -1,3 +1,3 @@ -export { getFileByPath } from './dist/uploads/getFileByPath.js' +export { getFileByPath } from './dist/uploads/getFileByPath.js'; //# sourceMappingURL=uploads.js.map From b9c585bab578cf45dea1b9aa13ec130446f2f4f5 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Mon, 8 Apr 2024 14:34:28 -0400 Subject: [PATCH 2/3] fix(ui): uses correct save draft button label (#5730) --- packages/ui/src/elements/SaveDraft/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ui/src/elements/SaveDraft/index.tsx b/packages/ui/src/elements/SaveDraft/index.tsx index e4d252a6c6..ef670990f1 100644 --- a/packages/ui/src/elements/SaveDraft/index.tsx +++ b/packages/ui/src/elements/SaveDraft/index.tsx @@ -25,7 +25,6 @@ const DefaultSaveDraftButton: React.FC = () => { const editDepth = useEditDepth() const { t } = useTranslation() const { submit } = useForm() - const label = t('general:save') const saveDraft = useCallback(async () => { const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true` @@ -74,7 +73,7 @@ const DefaultSaveDraftButton: React.FC = () => { size="small" type="button" > - {label} + {t('version:saveDraft')} ) } From 906df6b4010cd112734470f51436ba1218689c09 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Mon, 8 Apr 2024 15:40:46 -0400 Subject: [PATCH 3/3] fix(next): properly renders document-level unauthorized view (#5734) --- .../next/src/views/CreateFirstUser/index.tsx | 2 +- .../src/views/Document/getViewsFromConfig.tsx | 18 +++++----- packages/next/src/views/Document/index.tsx | 31 ++++++++-------- .../next/src/views/ForgotPassword/index.tsx | 2 +- packages/next/src/views/List/index.tsx | 4 +-- packages/next/src/views/Login/index.tsx | 2 +- packages/next/src/views/Logout/index.tsx | 4 +-- packages/next/src/views/NotFound/index.tsx | 6 +++- .../next/src/views/Root/getViewFromConfig.tsx | 20 +++++------ .../next/src/views/Unauthorized/index.scss | 36 +++++++++++++++++++ .../next/src/views/Unauthorized/index.tsx | 11 +++--- packages/next/src/webpackEntry.ts | 2 +- tsconfig.json | 2 +- 13 files changed, 90 insertions(+), 50 deletions(-) create mode 100644 packages/next/src/views/Unauthorized/index.scss diff --git a/packages/next/src/views/CreateFirstUser/index.tsx b/packages/next/src/views/CreateFirstUser/index.tsx index f0dd3316be..c3e2f1d9d9 100644 --- a/packages/next/src/views/CreateFirstUser/index.tsx +++ b/packages/next/src/views/CreateFirstUser/index.tsx @@ -12,7 +12,7 @@ import './index.scss' export { generateCreateFirstUserMetadata } from './meta.js' -export const CreateFirstUser: React.FC = async ({ initPageResult }) => { +export const CreateFirstUserView: React.FC = async ({ initPageResult }) => { const { req, req: { diff --git a/packages/next/src/views/Document/getViewsFromConfig.tsx b/packages/next/src/views/Document/getViewsFromConfig.tsx index d56cbf55ba..4dafc9096e 100644 --- a/packages/next/src/views/Document/getViewsFromConfig.tsx +++ b/packages/next/src/views/Document/getViewsFromConfig.tsx @@ -10,7 +10,7 @@ import type { import { APIView as DefaultAPIView } from '../API/index.js' import { EditView as DefaultEditView } from '../Edit/index.js' import { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js' -import { Unauthorized } from '../Unauthorized/index.js' +import { UnauthorizedView } from '../Unauthorized/index.js' import { VersionView as DefaultVersionView } from '../Version/index.js' import { VersionsView as DefaultVersionsView } from '../Versions/index.js' import { getCustomViewByKey } from './getCustomViewByKey.js' @@ -77,7 +77,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Default') DefaultView = DefaultEditView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } break } @@ -87,7 +87,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Default') DefaultView = DefaultEditView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } break } @@ -118,7 +118,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Versions') DefaultView = DefaultVersionsView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } break } @@ -150,7 +150,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Version') DefaultView = DefaultVersionView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } } else { const baseRoute = [adminRoute, collectionEntity, collectionSlug, segment3] @@ -191,7 +191,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Default') DefaultView = DefaultEditView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } break } @@ -219,7 +219,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Versions') DefaultView = DefaultVersionsView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } break } @@ -229,7 +229,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Default') DefaultView = DefaultEditView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } break } @@ -244,7 +244,7 @@ export const getViewsFromConfig = ({ CustomView = getCustomViewByKey(views, 'Version') DefaultView = DefaultVersionView } else { - ErrorView = Unauthorized + ErrorView = UnauthorizedView } } else { const baseRoute = [adminRoute, 'globals', globalSlug].filter(Boolean).join('/') diff --git a/packages/next/src/views/Document/index.tsx b/packages/next/src/views/Document/index.tsx index e6fc96c762..b2b4003a02 100644 --- a/packages/next/src/views/Document/index.tsx +++ b/packages/next/src/views/Document/index.tsx @@ -15,6 +15,7 @@ import React from 'react' import type { GenerateEditViewMetadata } from './getMetaBySegment.js' +import { NotFoundView } from '../NotFound/index.js' import { getMetaBySegment } from './getMetaBySegment.js' import { getViewsFromConfig } from './getViewsFromConfig.js' @@ -106,12 +107,8 @@ export const Document: React.FC = async ({ ErrorView = collectionViews?.ErrorView } - if (!CustomView && !DefaultView && !ViewOverride) { - if (ErrorView) { - return - } - - notFound() + if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) { + ErrorView = NotFoundView } } @@ -143,12 +140,8 @@ export const Document: React.FC = async ({ DefaultView = globalViews?.DefaultView ErrorView = globalViews?.ErrorView - if (!CustomView && !DefaultView && !ViewOverride) { - if (ErrorView) { - return - } - - notFound() + if (!CustomView && !DefaultView && !ViewOverride && !ErrorView) { + ErrorView = NotFoundView } } } @@ -219,11 +212,15 @@ export const Document: React.FC = async ({ uploadEdits: undefined, }} > - + {ErrorView ? ( + + ) : ( + + )} diff --git a/packages/next/src/views/ForgotPassword/index.tsx b/packages/next/src/views/ForgotPassword/index.tsx index 72e4f90ad5..87e58ba3d8 100644 --- a/packages/next/src/views/ForgotPassword/index.tsx +++ b/packages/next/src/views/ForgotPassword/index.tsx @@ -13,7 +13,7 @@ export { generateForgotPasswordMetadata } from './meta.js' const Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default export const forgotPasswordBaseClass = 'forgot-password' -export const ForgotPassword: React.FC = ({ initPageResult }) => { +export const ForgotPasswordView: React.FC = ({ initPageResult }) => { const { req: { i18n, diff --git a/packages/next/src/views/List/index.tsx b/packages/next/src/views/List/index.tsx index b808f6b2c0..40b24989cf 100644 --- a/packages/next/src/views/List/index.tsx +++ b/packages/next/src/views/List/index.tsx @@ -13,7 +13,7 @@ import React, { Fragment } from 'react' import type { DefaultListViewProps, ListPreferences } from './Default/types.js' -import { Unauthorized } from '../Unauthorized/index.js' +import { UnauthorizedView } from '../Unauthorized/index.js' import { DefaultListView } from './Default/index.js' export { generateListMetadata } from './meta.js' @@ -35,7 +35,7 @@ export const ListView: React.FC = async ({ initPageResult, searc const collectionSlug = collectionConfig?.slug if (!permissions?.collections?.[collectionSlug]?.read?.permission) { - return + return } let listPreferences: ListPreferences diff --git a/packages/next/src/views/Login/index.tsx b/packages/next/src/views/Login/index.tsx index e71b946d95..1919fbc654 100644 --- a/packages/next/src/views/Login/index.tsx +++ b/packages/next/src/views/Login/index.tsx @@ -11,7 +11,7 @@ export { generateLoginMetadata } from './meta.js' export const loginBaseClass = 'login' -export const Login: React.FC = ({ initPageResult, searchParams }) => { +export const LoginView: React.FC = ({ initPageResult, searchParams }) => { const { req } = initPageResult const { diff --git a/packages/next/src/views/Logout/index.tsx b/packages/next/src/views/Logout/index.tsx index f84f41a757..59d74d554d 100644 --- a/packages/next/src/views/Logout/index.tsx +++ b/packages/next/src/views/Logout/index.tsx @@ -10,7 +10,7 @@ const baseClass = 'logout' export { generateLogoutMetadata } from './meta.js' -export const Logout: React.FC< +export const LogoutView: React.FC< AdminViewProps & { inactivity?: boolean } @@ -39,5 +39,5 @@ export const Logout: React.FC< } export const LogoutInactivity: React.FC = (props) => { - return + return } diff --git a/packages/next/src/views/NotFound/index.tsx b/packages/next/src/views/NotFound/index.tsx index fa85e05002..d70de66b8e 100644 --- a/packages/next/src/views/NotFound/index.tsx +++ b/packages/next/src/views/NotFound/index.tsx @@ -1,6 +1,6 @@ import type { I18n } from '@payloadcms/translations' import type { Metadata } from 'next' -import type { SanitizedConfig } from 'payload/types' +import type { AdminViewComponent, SanitizedConfig } from 'payload/types' import { getNextI18n } from '@payloadcms/next/utilities' import { HydrateClientUser } from '@payloadcms/ui/elements/HydrateClientUser' @@ -65,3 +65,7 @@ export const NotFoundPage = async ({ ) } + +export const NotFoundView: AdminViewComponent = () => { + return +} diff --git a/packages/next/src/views/Root/getViewFromConfig.tsx b/packages/next/src/views/Root/getViewFromConfig.tsx index b6329f3531..18f504fde7 100644 --- a/packages/next/src/views/Root/getViewFromConfig.tsx +++ b/packages/next/src/views/Root/getViewFromConfig.tsx @@ -4,15 +4,15 @@ import type { AdminViewComponent } from 'payload/types' import type { initPage } from '../../utilities/initPage.js' import { Account } from '../Account/index.js' -import { CreateFirstUser } from '../CreateFirstUser/index.js' +import { CreateFirstUserView } from '../CreateFirstUser/index.js' import { Dashboard } from '../Dashboard/index.js' import { Document as DocumentView } from '../Document/index.js' -import { ForgotPassword, forgotPasswordBaseClass } from '../ForgotPassword/index.js' +import { ForgotPasswordView, forgotPasswordBaseClass } from '../ForgotPassword/index.js' import { ListView } from '../List/index.js' -import { Login, loginBaseClass } from '../Login/index.js' -import { Logout, LogoutInactivity } from '../Logout/index.js' +import { LoginView, loginBaseClass } from '../Login/index.js' +import { LogoutInactivity, LogoutView } from '../Logout/index.js' import { ResetPassword, resetPasswordBaseClass } from '../ResetPassword/index.js' -import { Unauthorized } from '../Unauthorized/index.js' +import { UnauthorizedView } from '../Unauthorized/index.js' import { Verify, verifyBaseClass } from '../Verify/index.js' import { getCustomViewByRoute } from './getCustomViewByRoute.js' @@ -24,12 +24,12 @@ const baseClasses = { } const oneSegmentViews = { - 'create-first-user': CreateFirstUser, - forgot: ForgotPassword, - login: Login, - logout: Logout, + 'create-first-user': CreateFirstUserView, + forgot: ForgotPasswordView, + login: LoginView, + logout: LogoutView, 'logout-inactivity': LogoutInactivity, - unauthorized: Unauthorized, + unauthorized: UnauthorizedView, } export const getViewFromConfig = ({ diff --git a/packages/next/src/views/Unauthorized/index.scss b/packages/next/src/views/Unauthorized/index.scss new file mode 100644 index 0000000000..fda11639e6 --- /dev/null +++ b/packages/next/src/views/Unauthorized/index.scss @@ -0,0 +1,36 @@ +@import '../../scss/styles.scss'; + +.unauthorized { + margin-top: var(--base); + + & > * { + &:first-child { + margin-top: 0; + } + &:last-child { + margin-bottom: 0; + } + } + + &__button { + margin: 0; + } + + &--margin-top-large { + margin-top: calc(var(--base) * 2); + } + + @include large-break { + &--margin-top-large { + margin-top: var(--base); + } + } + + @include small-break { + margin-top: calc(var(--base) / 2); + + &--margin-top-large { + margin-top: calc(var(--base) / 2); + } + } +} diff --git a/packages/next/src/views/Unauthorized/index.tsx b/packages/next/src/views/Unauthorized/index.tsx index c06c7535b6..64ee95268e 100644 --- a/packages/next/src/views/Unauthorized/index.tsx +++ b/packages/next/src/views/Unauthorized/index.tsx @@ -5,11 +5,15 @@ import { Gutter } from '@payloadcms/ui/elements/Gutter' import LinkImport from 'next/link.js' import React from 'react' +import './index.scss' + const Link = (LinkImport.default || LinkImport) as unknown as typeof LinkImport.default export { generateUnauthorizedMetadata } from './meta.js' -export const Unauthorized: AdminViewComponent = ({ initPageResult }) => { +const baseClass = 'unauthorized' + +export const UnauthorizedView: AdminViewComponent = ({ initPageResult }) => { const { req: { i18n, @@ -22,11 +26,10 @@ export const Unauthorized: AdminViewComponent = ({ initPageResult }) => { } = initPageResult return ( - +

{i18n.t('error:unauthorized')}

{i18n.t('error:notAllowedToAccessPage')}

-
-
diff --git a/packages/next/src/webpackEntry.ts b/packages/next/src/webpackEntry.ts index 05abef645f..aadffdb39c 100644 --- a/packages/next/src/webpackEntry.ts +++ b/packages/next/src/webpackEntry.ts @@ -1,4 +1,4 @@ export { RootLayout } from './layouts/Root/index.js' export { Dashboard as DashboardPage } from './views/Dashboard/index.js' -export { Login } from './views/Login/index.js' +export { LoginView } from './views/Login/index.js' export { RootPage } from './views/Root/index.js' diff --git a/tsconfig.json b/tsconfig.json index cba3267bb8..40316db156 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -37,7 +37,7 @@ ], "paths": { "@payload-config": [ - "./test/admin/config.ts" + "./test/_community/config.ts" ], "@payloadcms/live-preview": [ "./packages/live-preview/src"