diff --git a/app/(payload)/admin/(dashboard)/collections/[collection]/[...segments]/layout.tsx b/app/(payload)/admin/(dashboard)/collections/[collection]/[...segments]/layout.tsx index 0f2d19c6c9..b6ae8e0943 100644 --- a/app/(payload)/admin/(dashboard)/collections/[collection]/[...segments]/layout.tsx +++ b/app/(payload)/admin/(dashboard)/collections/[collection]/[...segments]/layout.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { DocumentLayout } from '@payloadcms/next/layouts/Document' import configPromise from 'payload-config' diff --git a/app/(payload)/admin/(dashboard)/globals/[global]/layout.tsx b/app/(payload)/admin/(dashboard)/globals/[global]/layout.tsx index 2611addc81..e05400790b 100644 --- a/app/(payload)/admin/(dashboard)/globals/[global]/layout.tsx +++ b/app/(payload)/admin/(dashboard)/globals/[global]/layout.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { DocumentLayout } from '@payloadcms/next/layouts/Document' import configPromise from 'payload-config' diff --git a/app/(payload)/admin/(dashboard)/layout.tsx b/app/(payload)/admin/(dashboard)/layout.tsx index aebae4f928..53ae4d2e2d 100644 --- a/app/(payload)/admin/(dashboard)/layout.tsx +++ b/app/(payload)/admin/(dashboard)/layout.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { AdminLayout } from '@payloadcms/next/layouts/Admin' import configPromise from 'payload-config' diff --git a/app/(payload)/admin/create-first-user/page.tsx b/app/(payload)/admin/create-first-user/page.tsx index 9d19a19204..55b68ca969 100644 --- a/app/(payload)/admin/create-first-user/page.tsx +++ b/app/(payload)/admin/create-first-user/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { CreateFirstUser, generateMetadata as generateMeta, diff --git a/app/(payload)/admin/forgot/page.tsx b/app/(payload)/admin/forgot/page.tsx index 70aba6f6e9..b39f76153c 100644 --- a/app/(payload)/admin/forgot/page.tsx +++ b/app/(payload)/admin/forgot/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { ForgotPassword, generateMetadata as generateMeta, diff --git a/app/(payload)/admin/login/page.tsx b/app/(payload)/admin/login/page.tsx index d30a9720da..4aea73da9b 100644 --- a/app/(payload)/admin/login/page.tsx +++ b/app/(payload)/admin/login/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { Login, generateMetadata as generateMeta } from '@payloadcms/next/pages/Login' import { Metadata } from 'next' import config from 'payload-config' diff --git a/app/(payload)/admin/logout-inactivity/page.tsx b/app/(payload)/admin/logout-inactivity/page.tsx index c2414db46c..8f75e71af9 100644 --- a/app/(payload)/admin/logout-inactivity/page.tsx +++ b/app/(payload)/admin/logout-inactivity/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { Logout, generateMetadata as generateMeta } from '@payloadcms/next/pages/Logout' import { Metadata } from 'next' import config from 'payload-config' diff --git a/app/(payload)/admin/logout/page.tsx b/app/(payload)/admin/logout/page.tsx index 12fadcdaaa..380ac6d408 100644 --- a/app/(payload)/admin/logout/page.tsx +++ b/app/(payload)/admin/logout/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { Logout, generateMetadata as generateMeta } from '@payloadcms/next/pages/Logout' import { Metadata } from 'next' import config from 'payload-config' diff --git a/app/(payload)/admin/reset/[token]/page.tsx b/app/(payload)/admin/reset/[token]/page.tsx index 22b7431c3d..633dc00284 100644 --- a/app/(payload)/admin/reset/[token]/page.tsx +++ b/app/(payload)/admin/reset/[token]/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { ResetPassword, generateMetadata as generateMeta, diff --git a/app/(payload)/admin/unauthorized/page.tsx b/app/(payload)/admin/unauthorized/page.tsx index cb0d137121..19bf4093cc 100644 --- a/app/(payload)/admin/unauthorized/page.tsx +++ b/app/(payload)/admin/unauthorized/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { Unauthorized, generateMetadata as generateMeta } from '@payloadcms/next/pages/Unauthorized' import { Metadata } from 'next' import config from 'payload-config' diff --git a/app/(payload)/admin/verify/[token]/page.tsx b/app/(payload)/admin/verify/[token]/page.tsx index aec6f524fd..06e4800e46 100644 --- a/app/(payload)/admin/verify/[token]/page.tsx +++ b/app/(payload)/admin/verify/[token]/page.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { Verify, generateMetadata as generateMeta } from '@payloadcms/next/pages/Verify' import { Metadata } from 'next' import config from 'payload-config' diff --git a/app/(payload)/layout.tsx b/app/(payload)/layout.tsx index ae99011b83..36b6caf376 100644 --- a/app/(payload)/layout.tsx +++ b/app/(payload)/layout.tsx @@ -1,5 +1,6 @@ /* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */ /* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */ +import React from 'react' import { RootLayout } from '@payloadcms/next/layouts/Root' import configPromise from 'payload-config' diff --git a/packages/next/src/layouts/Root/index.tsx b/packages/next/src/layouts/Root/index.tsx index e096e534fe..67dcd611f6 100644 --- a/packages/next/src/layouts/Root/index.tsx +++ b/packages/next/src/layouts/Root/index.tsx @@ -7,6 +7,9 @@ import { cookies, headers } from 'next/headers' import { deepMerge } from 'payload/utilities' import React from 'react' +import { DefaultEditView } from '../../pages/Edit/Default' +import { DefaultListView } from '../../pages/List/Default' +import { DefaultCell } from '../../pages/List/Default/Cell' import { createClientConfig } from '../../utilities/createClientConfig' import { getRequestLanguage } from '../../utilities/getRequestLanguage' @@ -42,7 +45,12 @@ export const RootLayout = async ({ value: language, })) - const componentMap = buildComponentMap({ config }) + const componentMap = buildComponentMap({ + DefaultCell, + DefaultEditView, + DefaultListView, + config, + }) return ( diff --git a/packages/next/src/pages/API/index.client.tsx b/packages/next/src/pages/API/index.client.tsx index ff5c6b36ac..5ffe03db94 100644 --- a/packages/next/src/pages/API/index.client.tsx +++ b/packages/next/src/pages/API/index.client.tsx @@ -9,7 +9,6 @@ import { MinimizeMaximize, Number as NumberInput, Select, - SetDocumentStepNav as SetStepNav, useActions, useConfig, useDocumentInfo, @@ -21,6 +20,7 @@ import qs from 'qs' import * as React from 'react' import { toast } from 'react-toastify' +import { SetStepNav } from '../Edit/Default/SetStepNav' import { RenderJSON } from './RenderJSON' import './index.scss' diff --git a/packages/next/src/pages/API/index.tsx b/packages/next/src/pages/API/index.tsx index df477136a3..d07a84a573 100644 --- a/packages/next/src/pages/API/index.tsx +++ b/packages/next/src/pages/API/index.tsx @@ -1,11 +1,11 @@ import React from 'react' -import type { ServerSideEditViewProps } from '../../../../ui/src/views/types' +import type { ServerSideEditViewProps } from '../Edit/types' -import { sanitizedEditViewProps } from '../Edit/sanitizedEditViewProps' +import { sanitizeEditViewProps } from '../Edit/sanitizeEditViewProps' import { APIViewClient } from './index.client' export const APIView: React.FC = async (props) => { - const clientSideProps = sanitizedEditViewProps(props) + const clientSideProps = sanitizeEditViewProps(props) return } diff --git a/packages/next/src/pages/Document/index.tsx b/packages/next/src/pages/Document/index.tsx index 2c24c2cc74..8d12998670 100644 --- a/packages/next/src/pages/Document/index.tsx +++ b/packages/next/src/pages/Document/index.tsx @@ -21,7 +21,7 @@ import { notFound } from 'next/navigation' import queryString from 'qs' import React, { Fragment } from 'react' -import type { ServerSideEditViewProps } from '../../../../ui/src/views/types' +import type { ServerSideEditViewProps } from '../Edit/types' import { initPage } from '../../utilities/initPage' import { getViewsFromConfig } from './getViewsFromConfig' diff --git a/packages/ui/src/views/Edit/Auth/APIKey.tsx b/packages/next/src/pages/Edit/Default/Auth/APIKey.tsx similarity index 83% rename from packages/ui/src/views/Edit/Auth/APIKey.tsx rename to packages/next/src/pages/Edit/Default/Auth/APIKey.tsx index 9a31653dc9..f208ae2566 100644 --- a/packages/ui/src/views/Edit/Auth/APIKey.tsx +++ b/packages/next/src/pages/Edit/Default/Auth/APIKey.tsx @@ -1,16 +1,17 @@ 'use client' +import { + CopyToClipboard, + GenerateConfirmation, + Label, + fieldBaseClass, + useField, + useFormFields, + useTranslation, +} from '@payloadcms/ui' import { text } from 'payload/fields/validations' import React, { useEffect, useMemo, useState } from 'react' import { v4 as uuidv4 } from 'uuid' -import CopyToClipboard from '../../../elements/CopyToClipboard' -import GenerateConfirmation from '../../../elements/GenerateConfirmation' -import { useFormFields } from '../../../forms/Form/context' -import Label from '../../../forms/Label' -import { fieldBaseClass } from '../../../forms/fields/shared' -import useField from '../../../forms/useField' -import { useTranslation } from '../../../providers/Translation' - const path = 'apiKey' const baseClass = 'api-key' diff --git a/packages/ui/src/views/Edit/Auth/index.scss b/packages/next/src/pages/Edit/Default/Auth/index.scss similarity index 87% rename from packages/ui/src/views/Edit/Auth/index.scss rename to packages/next/src/pages/Edit/Default/Auth/index.scss index 65b59ba3e2..b280e1e00c 100644 --- a/packages/ui/src/views/Edit/Auth/index.scss +++ b/packages/next/src/pages/Edit/Default/Auth/index.scss @@ -1,7 +1,7 @@ -@import '../../../scss/styles.scss'; +@import '../../../../../../ui/src/scss/styles.scss'; .auth-fields { - padding: base(2); + padding: calc(var(--base) * 2); background: var(--theme-elevation-50); display: flex; flex-direction: column; @@ -39,7 +39,7 @@ } .field-type.api-key { - margin-bottom: $baseline; + margin-bottom: var(--base); input { @include formInput; diff --git a/packages/ui/src/views/Edit/Auth/index.tsx b/packages/next/src/pages/Edit/Default/Auth/index.tsx similarity index 90% rename from packages/ui/src/views/Edit/Auth/index.tsx rename to packages/next/src/pages/Edit/Default/Auth/index.tsx index 275b1d02c3..286782f9e9 100644 --- a/packages/ui/src/views/Edit/Auth/index.tsx +++ b/packages/next/src/pages/Edit/Default/Auth/index.tsx @@ -1,17 +1,20 @@ 'use client' +import { + Button, + Checkbox, + ConfirmPassword, + Email, + Password, + useConfig, + useFormFields, + useFormModified, + useTranslation, +} from '@payloadcms/ui' import React, { useCallback, useEffect, useState } from 'react' import { toast } from 'react-toastify' import type { Props } from './types' -import { Button } from '../../../elements/Button' -import { useFormFields, useFormModified } from '../../../forms/Form/context' -import Checkbox from '../../../forms/fields/Checkbox' -import ConfirmPassword from '../../../forms/fields/ConfirmPassword' -import { Email } from '../../../forms/fields/Email' -import { Password } from '../../../forms/fields/Password' -import { useConfig } from '../../../providers/Config' -import { useTranslation } from '../../../providers/Translation' import APIKey from './APIKey' import './index.scss' diff --git a/packages/ui/src/views/Edit/Auth/types.ts b/packages/next/src/pages/Edit/Default/Auth/types.ts similarity index 100% rename from packages/ui/src/views/Edit/Auth/types.ts rename to packages/next/src/pages/Edit/Default/Auth/types.ts diff --git a/packages/ui/src/views/Edit/SetDocumentTitle/index.tsx b/packages/next/src/pages/Edit/Default/SetDocumentTitle/index.tsx similarity index 86% rename from packages/ui/src/views/Edit/SetDocumentTitle/index.tsx rename to packages/next/src/pages/Edit/Default/SetDocumentTitle/index.tsx index e8f34f3cdb..8195dee570 100644 --- a/packages/ui/src/views/Edit/SetDocumentTitle/index.tsx +++ b/packages/next/src/pages/Edit/Default/SetDocumentTitle/index.tsx @@ -2,13 +2,9 @@ import type { ClientConfig } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { formatDate, useDocumentInfo, useFormFields, useTranslation } from '@payloadcms/ui' import { useEffect } from 'react' -import { formatDate } from '../../..' -import { useFormFields } from '../../../forms/Form/context' -import { useDocumentInfo } from '../../../providers/DocumentInfo' -import { useTranslation } from '../../../providers/Translation' - export const SetDocumentTitle: React.FC<{ collectionConfig?: ClientConfig['collections'][0] config?: ClientConfig diff --git a/packages/ui/src/views/Edit/SetStepNav/index.tsx b/packages/next/src/pages/Edit/Default/SetStepNav/index.tsx similarity index 83% rename from packages/ui/src/views/Edit/SetStepNav/index.tsx rename to packages/next/src/pages/Edit/Default/SetStepNav/index.tsx index 2bd5d271af..99e3d0e3c5 100644 --- a/packages/ui/src/views/Edit/SetStepNav/index.tsx +++ b/packages/next/src/pages/Edit/Default/SetStepNav/index.tsx @@ -1,17 +1,17 @@ 'use client' +import type { StepNavItem } from '@payloadcms/ui' import type { SanitizedCollectionConfig, SanitizedGlobalConfig } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { + useConfig, + useDocumentInfo, + useEditDepth, + useStepNav, + useTranslation, +} from '@payloadcms/ui' import { useEffect } from 'react' -import type { StepNavItem } from '../../../elements/StepNav/types' - -import { useStepNav } from '../../../elements/StepNav' -import { useConfig } from '../../../providers/Config' -import { useDocumentInfo } from '../../../providers/DocumentInfo' -import { useEditDepth } from '../../../providers/EditDepth' -import { useTranslation } from '../../../providers/Translation' - export const SetStepNav: React.FC<{ collectionSlug?: SanitizedCollectionConfig['slug'] globalLabel?: SanitizedGlobalConfig['label'] diff --git a/packages/ui/src/views/Edit/index.scss b/packages/next/src/pages/Edit/Default/index.scss similarity index 84% rename from packages/ui/src/views/Edit/index.scss rename to packages/next/src/pages/Edit/Default/index.scss index 88ffd43208..a188be5252 100644 --- a/packages/ui/src/views/Edit/index.scss +++ b/packages/next/src/pages/Edit/Default/index.scss @@ -1,4 +1,4 @@ -@import '../../scss/styles.scss'; +@import '../../../../../ui/src/scss/styles.scss'; .collection-edit { width: 100%; diff --git a/packages/ui/src/views/Edit/index.tsx b/packages/next/src/pages/Edit/Default/index.tsx similarity index 89% rename from packages/ui/src/views/Edit/index.tsx rename to packages/next/src/pages/Edit/Default/index.tsx index 07a5a7c996..2ea1231f01 100644 --- a/packages/ui/src/views/Edit/index.tsx +++ b/packages/next/src/pages/Edit/Default/index.tsx @@ -1,24 +1,26 @@ 'use client' +import type { FormProps } from '@payloadcms/ui' + +import { + DocumentControls, + DocumentFields, + FieldPathProvider, + Form, + FormLoadingOverlayToggle, + LeaveWithoutSaving, + OperationProvider, + getFormState, + useComponentMap, + useConfig, + useDocumentInfo, +} from '@payloadcms/ui' import React, { Fragment, useCallback } from 'react' -import type { Props as FormProps } from '../../forms/Form/types' - +import { Upload } from '../../../../../ui/src/elements/Upload' // import { getTranslation } from '@payloadcms/translations' -import { DocumentControls } from '../../elements/DocumentControls' -import { DocumentFields } from '../../elements/DocumentFields' -import { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving' -import { FormLoadingOverlayToggle } from '../../elements/Loading' -import { FieldPathProvider } from '../../forms/FieldPathProvider' -import Form from '../../forms/Form' -import { useComponentMap } from '../../providers/ComponentMapProvider' -import { useConfig } from '../../providers/Config' -import { useDocumentInfo } from '../../providers/DocumentInfo' -import { OperationProvider } from '../../providers/OperationProvider' -import { getFormState } from '../../utilities/getFormState' import Auth from './Auth' import { SetDocumentTitle } from './SetDocumentTitle' import { SetStepNav } from './SetStepNav' -import { Upload } from './Upload' import './index.scss' const baseClass = 'collection-edit' diff --git a/packages/ui/src/views/Edit/types.ts b/packages/next/src/pages/Edit/Default/types.ts similarity index 100% rename from packages/ui/src/views/Edit/types.ts rename to packages/next/src/pages/Edit/Default/types.ts diff --git a/packages/next/src/pages/Edit/index.client.tsx b/packages/next/src/pages/Edit/index.client.tsx index d47d868ba9..ba18a0ce72 100644 --- a/packages/next/src/pages/Edit/index.client.tsx +++ b/packages/next/src/pages/Edit/index.client.tsx @@ -1,10 +1,8 @@ 'use client' -import { useComponentMap, useDocumentInfo } from '@payloadcms/ui' +import { LoadingOverlay, useComponentMap, useDocumentInfo } from '@payloadcms/ui' import React, { Fragment } from 'react' import { useCallback } from 'react' -import { LoadingOverlay } from '../../../../ui/src/elements/Loading' - export const DefaultEditViewClient: React.FC = () => { const { id, collectionSlug, getDocPermissions, getVersions, globalSlug } = useDocumentInfo() diff --git a/packages/next/src/pages/Edit/index.tsx b/packages/next/src/pages/Edit/index.tsx index 2eeffa192e..84fc433103 100644 --- a/packages/next/src/pages/Edit/index.tsx +++ b/packages/next/src/pages/Edit/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import type { ServerSideEditViewProps } from '../../../../ui/src/views/types' +import type { ServerSideEditViewProps } from './types' import { DefaultEditViewClient } from './index.client' diff --git a/packages/next/src/pages/Edit/sanitizedEditViewProps.ts b/packages/next/src/pages/Edit/sanitizeEditViewProps.ts similarity index 71% rename from packages/next/src/pages/Edit/sanitizedEditViewProps.ts rename to packages/next/src/pages/Edit/sanitizeEditViewProps.ts index f98508bf8c..a8e21d3b89 100644 --- a/packages/next/src/pages/Edit/sanitizedEditViewProps.ts +++ b/packages/next/src/pages/Edit/sanitizeEditViewProps.ts @@ -1,7 +1,8 @@ -import type { ServerSideEditViewProps } from '@payloadcms/ui' import type { EditViewProps } from 'payload/config' -export const sanitizedEditViewProps = (props: ServerSideEditViewProps) => { +import type { ServerSideEditViewProps } from './types' + +export const sanitizeEditViewProps = (props: ServerSideEditViewProps) => { const clientSideProps = { ...props } delete clientSideProps.payload delete clientSideProps.config diff --git a/packages/ui/src/views/types.ts b/packages/next/src/pages/Edit/types.ts similarity index 95% rename from packages/ui/src/views/types.ts rename to packages/next/src/pages/Edit/types.ts index 32b59b1cfb..6dd4e2df2e 100644 --- a/packages/ui/src/views/types.ts +++ b/packages/next/src/pages/Edit/types.ts @@ -1,4 +1,5 @@ import type { I18n } from '@payloadcms/translations' +import type { FormState } from '@payloadcms/ui' import type { Permissions, User } from 'payload/auth' import type { EditViewProps } from 'payload/config' import type { @@ -9,8 +10,6 @@ import type { SanitizedConfig, } from 'payload/types' -import type { FormState } from '../forms/Form/types' - export type ServerSideEditViewProps = EditViewProps & { action?: string apiURL: string diff --git a/packages/ui/src/views/List/Cell/cellTypes.spec.tsx b/packages/next/src/pages/List/Default/Cell/cellTypes.spec.tsx similarity index 95% rename from packages/ui/src/views/List/Cell/cellTypes.spec.tsx rename to packages/next/src/pages/List/Default/Cell/cellTypes.spec.tsx index 5389b32b7e..f8a5fc3181 100644 --- a/packages/ui/src/views/List/Cell/cellTypes.spec.tsx +++ b/packages/next/src/pages/List/Default/Cell/cellTypes.spec.tsx @@ -3,11 +3,11 @@ import React from 'react' import type { BlockField, DateField, SelectField } from 'payload/types' -import BlocksCell from './fields/Blocks' -import Checkbox from './fields/Checkbox' -import DateCell from './fields/Date' -import Select from './fields/Select' -import Textarea from './fields/Textarea' +import { BlocksCell } from './fields/Blocks' +import { Checkbox } from './fields/Checkbox' +import { DateCell } from './fields/Date' +import { Select } from './fields/Select' +import { Textarea } from './fields/Textarea' jest.mock('../../../../utilities/Config', () => ({ useConfig: () => ({ admin: { dateFormat: 'MMMM do yyyy, h:mm a' } }), diff --git a/packages/ui/src/views/List/Cell/fields/Array/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Array/index.tsx similarity index 89% rename from packages/ui/src/views/List/Cell/fields/Array/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Array/index.tsx index 7b5a3ae078..648f244626 100644 --- a/packages/ui/src/views/List/Cell/fields/Array/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/fields/Array/index.tsx @@ -2,10 +2,9 @@ import type { CellComponentProps, CellProps } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { useTranslation } from '@payloadcms/ui' import React from 'react' -import { useTranslation } from '../../../../../providers/Translation' - export interface ArrayCellProps extends CellComponentProps[]> { labels: CellProps['labels'] } diff --git a/packages/ui/src/views/List/Cell/fields/Blocks/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Blocks/index.tsx similarity index 95% rename from packages/ui/src/views/List/Cell/fields/Blocks/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Blocks/index.tsx index b24cc56f59..160785bfcc 100644 --- a/packages/ui/src/views/List/Cell/fields/Blocks/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/fields/Blocks/index.tsx @@ -2,10 +2,9 @@ import type { CellComponentProps, CellProps } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { useTranslation } from '@payloadcms/ui' import React from 'react' -import { useTranslation } from '../../../../../providers/Translation' - export interface BlocksCellProps extends CellComponentProps { blocks: CellProps['blocks'] labels: CellProps['labels'] diff --git a/packages/ui/src/views/List/Cell/fields/Checkbox/index.scss b/packages/next/src/pages/List/Default/Cell/fields/Checkbox/index.scss similarity index 88% rename from packages/ui/src/views/List/Cell/fields/Checkbox/index.scss rename to packages/next/src/pages/List/Default/Cell/fields/Checkbox/index.scss index eabbcee2b3..a59bfc6643 100644 --- a/packages/ui/src/views/List/Cell/fields/Checkbox/index.scss +++ b/packages/next/src/pages/List/Default/Cell/fields/Checkbox/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../scss/styles.scss'; +@import '../../../../../../../../ui/src/scss/styles.scss'; .bool-cell { font-size: 1rem; diff --git a/packages/ui/src/views/List/Cell/fields/Checkbox/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Checkbox/index.tsx similarity index 100% rename from packages/ui/src/views/List/Cell/fields/Checkbox/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Checkbox/index.tsx diff --git a/packages/ui/src/views/List/Cell/fields/Code/index.scss b/packages/next/src/pages/List/Default/Cell/fields/Code/index.scss similarity index 89% rename from packages/ui/src/views/List/Cell/fields/Code/index.scss rename to packages/next/src/pages/List/Default/Cell/fields/Code/index.scss index c454a76bba..6a8ce6b74e 100644 --- a/packages/ui/src/views/List/Cell/fields/Code/index.scss +++ b/packages/next/src/pages/List/Default/Cell/fields/Code/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../scss/styles.scss'; +@import '../../../../../../../../ui/src/scss/styles.scss'; .code-cell { font-size: 1rem; diff --git a/packages/ui/src/views/List/Cell/fields/Code/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Code/index.tsx similarity index 100% rename from packages/ui/src/views/List/Cell/fields/Code/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Code/index.tsx diff --git a/packages/ui/src/views/List/Cell/fields/Date/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Date/index.tsx similarity index 74% rename from packages/ui/src/views/List/Cell/fields/Date/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Date/index.tsx index e2c7f51400..c4a6ee8730 100644 --- a/packages/ui/src/views/List/Cell/fields/Date/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/fields/Date/index.tsx @@ -1,12 +1,9 @@ 'use client' import type { CellComponentProps, CellProps } from 'payload/types' +import { formatDate, useConfig, useTranslation } from '@payloadcms/ui' import React from 'react' -import { useConfig } from '../../../../../providers/Config' -import { useTranslation } from '../../../../../providers/Translation' -import { formatDate } from '../../../../../utilities/formatDate' - export interface DateCellProps extends CellComponentProps { dateDisplayFormat?: CellProps['dateDisplayFormat'] } diff --git a/packages/ui/src/views/List/Cell/fields/File/index.scss b/packages/next/src/pages/List/Default/Cell/fields/File/index.scss similarity index 84% rename from packages/ui/src/views/List/Cell/fields/File/index.scss rename to packages/next/src/pages/List/Default/Cell/fields/File/index.scss index 14ea81fac2..0767c48082 100644 --- a/packages/ui/src/views/List/Cell/fields/File/index.scss +++ b/packages/next/src/pages/List/Default/Cell/fields/File/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../scss/styles.scss'; +@import '../../../../../../../../ui/src/scss/styles.scss'; .file { display: flex; diff --git a/packages/ui/src/views/List/Cell/fields/File/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/File/index.tsx similarity index 92% rename from packages/ui/src/views/List/Cell/fields/File/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/File/index.tsx index 74c7c2c584..09f006d6f0 100644 --- a/packages/ui/src/views/List/Cell/fields/File/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/fields/File/index.tsx @@ -1,9 +1,9 @@ 'use client' import type { CellComponentProps } from 'payload/types' +import { Thumbnail } from '@payloadcms/ui' import React from 'react' -import Thumbnail from '../../../../../elements/Thumbnail' import './index.scss' const baseClass = 'file' diff --git a/packages/ui/src/views/List/Cell/fields/JSON/index.scss b/packages/next/src/pages/List/Default/Cell/fields/JSON/index.scss similarity index 88% rename from packages/ui/src/views/List/Cell/fields/JSON/index.scss rename to packages/next/src/pages/List/Default/Cell/fields/JSON/index.scss index 4ea001918c..2b62c0e2f6 100644 --- a/packages/ui/src/views/List/Cell/fields/JSON/index.scss +++ b/packages/next/src/pages/List/Default/Cell/fields/JSON/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../scss/styles.scss'; +@import '../../../../../../../../ui/src/scss/styles.scss'; .json-cell { font-size: 1rem; diff --git a/packages/ui/src/views/List/Cell/fields/JSON/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/JSON/index.tsx similarity index 100% rename from packages/ui/src/views/List/Cell/fields/JSON/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/JSON/index.tsx diff --git a/packages/ui/src/views/List/Cell/fields/Relationship/index.scss b/packages/next/src/pages/List/Default/Cell/fields/Relationship/index.scss similarity index 100% rename from packages/ui/src/views/List/Cell/fields/Relationship/index.scss rename to packages/next/src/pages/List/Default/Cell/fields/Relationship/index.scss diff --git a/packages/ui/src/views/List/Cell/fields/Relationship/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Relationship/index.tsx similarity index 92% rename from packages/ui/src/views/List/Cell/fields/Relationship/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Relationship/index.tsx index ccf653bd36..7c94269e6e 100644 --- a/packages/ui/src/views/List/Cell/fields/Relationship/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/fields/Relationship/index.tsx @@ -2,12 +2,9 @@ import type { CellComponentProps, CellProps } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { formatDocTitle, useConfig, useIntersect, useTranslation } from '@payloadcms/ui' import React, { useEffect, useState } from 'react' -import { useIntersect } from '../../../../../hooks/useIntersect' -import { useConfig } from '../../../../../providers/Config' -import { useTranslation } from '../../../../../providers/Translation' -import { formatDocTitle } from '../../../../../utilities/formatDocTitle' import { useListRelationships } from '../../../RelationshipProvider' import './index.scss' diff --git a/packages/ui/src/views/List/Cell/fields/Richtext/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Richtext/index.tsx similarity index 100% rename from packages/ui/src/views/List/Cell/fields/Richtext/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Richtext/index.tsx diff --git a/packages/ui/src/views/List/Cell/fields/Select/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Select/index.tsx similarity index 93% rename from packages/ui/src/views/List/Cell/fields/Select/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Select/index.tsx index 077ade7e20..6ab8140bd9 100644 --- a/packages/ui/src/views/List/Cell/fields/Select/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/fields/Select/index.tsx @@ -2,11 +2,10 @@ import type { CellComponentProps, CellProps, OptionObject } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { useTranslation } from '@payloadcms/ui' import { optionsAreObjects } from 'payload/types' import React from 'react' -import { useTranslation } from '../../../../../providers/Translation' - export interface SelectCellProps extends CellComponentProps { options: CellProps['options'] } diff --git a/packages/ui/src/views/List/Cell/fields/Textarea/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/Textarea/index.tsx similarity index 100% rename from packages/ui/src/views/List/Cell/fields/Textarea/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/Textarea/index.tsx diff --git a/packages/ui/src/views/List/Cell/fields/index.tsx b/packages/next/src/pages/List/Default/Cell/fields/index.tsx similarity index 100% rename from packages/ui/src/views/List/Cell/fields/index.tsx rename to packages/next/src/pages/List/Default/Cell/fields/index.tsx diff --git a/packages/ui/src/views/List/Cell/index.tsx b/packages/next/src/pages/List/Default/Cell/index.tsx similarity index 93% rename from packages/ui/src/views/List/Cell/index.tsx rename to packages/next/src/pages/List/Default/Cell/index.tsx index 57c6844978..21842be6a2 100644 --- a/packages/ui/src/views/List/Cell/index.tsx +++ b/packages/next/src/pages/List/Default/Cell/index.tsx @@ -5,10 +5,8 @@ import React from 'react' // TODO: abstract this out to support all routers import type { CellComponentProps, CellProps } from 'payload/types' import { getTranslation } from '@payloadcms/translations' +import { useConfig, useTableCell, useTranslation } from '@payloadcms/ui' -import { useTableCell } from '../../../elements/Table/TableCellProvider' -import { useConfig } from '../../../providers/Config' -import { useTranslation } from '../../../providers/Translation' import cellComponents from './fields' import { CodeCell } from './fields/Code' diff --git a/packages/ui/src/views/List/RelationshipProvider/index.tsx b/packages/next/src/pages/List/Default/RelationshipProvider/index.tsx similarity index 93% rename from packages/ui/src/views/List/RelationshipProvider/index.tsx rename to packages/next/src/pages/List/Default/RelationshipProvider/index.tsx index f0b6ec2e3c..6de048a42a 100644 --- a/packages/ui/src/views/List/RelationshipProvider/index.tsx +++ b/packages/next/src/pages/List/Default/RelationshipProvider/index.tsx @@ -1,13 +1,10 @@ 'use client' import type { TypeWithID } from 'payload/types' +import { useConfig, useDebounce, useLocale, useTranslation } from '@payloadcms/ui' import querystring from 'qs' import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react' -import useDebounce from '../../../hooks/useDebounce' -import { useConfig } from '../../../providers/Config' -import { useLocale } from '../../../providers/Locale' -import { useTranslation } from '../../../providers/Translation' import { reducer } from './reducer' // documents are first set to null when requested diff --git a/packages/ui/src/views/List/RelationshipProvider/reducer.ts b/packages/next/src/pages/List/Default/RelationshipProvider/reducer.ts similarity index 100% rename from packages/ui/src/views/List/RelationshipProvider/reducer.ts rename to packages/next/src/pages/List/Default/RelationshipProvider/reducer.ts diff --git a/packages/ui/src/views/List/SelectAll/index.scss b/packages/next/src/pages/List/Default/SelectAll/index.scss similarity index 59% rename from packages/ui/src/views/List/SelectAll/index.scss rename to packages/next/src/pages/List/Default/SelectAll/index.scss index 6a7042f5f4..9530c4e045 100644 --- a/packages/ui/src/views/List/SelectAll/index.scss +++ b/packages/next/src/pages/List/Default/SelectAll/index.scss @@ -1,5 +1,3 @@ -@import '../../../scss/styles.scss'; - .select-all { &__checkbox { display: block; diff --git a/packages/ui/src/views/List/SelectAll/index.tsx b/packages/next/src/pages/List/Default/SelectAll/index.tsx similarity index 80% rename from packages/ui/src/views/List/SelectAll/index.tsx rename to packages/next/src/pages/List/Default/SelectAll/index.tsx index e853c1410a..2d3de94bdd 100644 --- a/packages/ui/src/views/List/SelectAll/index.tsx +++ b/packages/next/src/pages/List/Default/SelectAll/index.tsx @@ -1,9 +1,7 @@ 'use client' +import { CheckboxInput, SelectAllStatus, useSelection, useTranslation } from '@payloadcms/ui' import React from 'react' -import { useTranslation } from '../../../exports' -import CheckboxInput from '../../../forms/fields/Checkbox' -import { SelectAllStatus, useSelection } from '../SelectionProvider' import './index.scss' const baseClass = 'select-all' diff --git a/packages/ui/src/views/List/SelectRow/index.scss b/packages/next/src/pages/List/Default/SelectRow/index.scss similarity index 59% rename from packages/ui/src/views/List/SelectRow/index.scss rename to packages/next/src/pages/List/Default/SelectRow/index.scss index 740164021f..30d8990f31 100644 --- a/packages/ui/src/views/List/SelectRow/index.scss +++ b/packages/next/src/pages/List/Default/SelectRow/index.scss @@ -1,5 +1,3 @@ -@import '../../../scss/styles.scss'; - .select-row { &__checkbox { display: block; diff --git a/packages/ui/src/views/List/SelectRow/index.tsx b/packages/next/src/pages/List/Default/SelectRow/index.tsx similarity index 78% rename from packages/ui/src/views/List/SelectRow/index.tsx rename to packages/next/src/pages/List/Default/SelectRow/index.tsx index 00b72dc17d..854a5f6add 100644 --- a/packages/ui/src/views/List/SelectRow/index.tsx +++ b/packages/next/src/pages/List/Default/SelectRow/index.tsx @@ -1,8 +1,7 @@ 'use client' +import { CheckboxInput, useSelection } from '@payloadcms/ui' import React from 'react' -import CheckboxInput from '../../../forms/fields/Checkbox' -import { useSelection } from '../SelectionProvider' import './index.scss' const baseClass = 'select-row' diff --git a/packages/ui/src/views/List/index.scss b/packages/next/src/pages/List/Default/index.scss similarity index 98% rename from packages/ui/src/views/List/index.scss rename to packages/next/src/pages/List/Default/index.scss index e66e859526..f8c25790d6 100644 --- a/packages/ui/src/views/List/index.scss +++ b/packages/next/src/pages/List/Default/index.scss @@ -1,4 +1,4 @@ -@import '../../scss/styles'; +@import '../../../../../ui/src/scss/styles.scss'; .collection-list { width: 100%; diff --git a/packages/ui/src/views/List/index.tsx b/packages/next/src/pages/List/Default/index.tsx similarity index 89% rename from packages/ui/src/views/List/index.tsx rename to packages/next/src/pages/List/Default/index.tsx index ea0895d91d..76889a83a3 100644 --- a/packages/ui/src/views/List/index.tsx +++ b/packages/next/src/pages/List/Default/index.tsx @@ -1,27 +1,29 @@ 'use client' import { getTranslation } from '@payloadcms/translations' +import { + Button, + Gutter, + ListControls, + Pagination, + PerPage, + Pill, + SelectionProvider, + StaggeredShimmers, + Table, + useComponentMap, + useConfig, + useListInfo, + useStepNav, + useTranslation, +} from '@payloadcms/ui' import React, { Fragment, useEffect } from 'react' -import { Button } from '../../elements/Button' -import { Gutter } from '../../elements/Gutter' -import { ListControls } from '../../elements/ListControls' -import { Pagination } from '../../elements/Pagination' -import { PerPage } from '../../elements/PerPage' -import Pill from '../../elements/Pill' -import { StaggeredShimmers } from '../../elements/ShimmerEffect' -import { useStepNav } from '../../elements/StepNav' -import { Table } from '../../elements/Table' -import { useComponentMap } from '../../providers/ComponentMapProvider' -import { useConfig } from '../../providers/Config' -import { useListInfo } from '../../providers/ListInfo' -import { useTranslation } from '../../providers/Translation' import { RelationshipProvider } from './RelationshipProvider' -import { SelectionProvider } from './SelectionProvider' import './index.scss' const baseClass = 'collection-list' -export const DefaultList: React.FC = () => { +export const DefaultListView: React.FC = () => { const { Header, data, diff --git a/packages/ui/src/views/List/types.ts b/packages/next/src/pages/List/Default/types.ts similarity index 77% rename from packages/ui/src/views/List/types.ts rename to packages/next/src/pages/List/Default/types.ts index 3ac8687622..cedec44408 100644 --- a/packages/ui/src/views/List/types.ts +++ b/packages/next/src/pages/List/Default/types.ts @@ -1,3 +1,4 @@ +import type { ColumnPreferences } from '@payloadcms/ui' import type { SanitizedCollectionConfig } from 'payload/types' export type DefaultListViewProps = { @@ -9,10 +10,7 @@ export type ListIndexProps = { } export type ListPreferences = { - columns: { - accessor: string - active: boolean - }[] + columns: ColumnPreferences limit: number sort: number } diff --git a/packages/next/src/pages/List/index.tsx b/packages/next/src/pages/List/index.tsx index 34e42d090f..730918f535 100644 --- a/packages/next/src/pages/List/index.tsx +++ b/packages/next/src/pages/List/index.tsx @@ -1,19 +1,18 @@ -import type { DefaultListViewProps } from '@payloadcms/ui' import type { SanitizedConfig } from 'payload/types' import { - DefaultList, HydrateClientUser, + ListInfoProvider, RenderCustomComponent, TableColumnsProvider, } from '@payloadcms/ui' import { notFound } from 'next/navigation' import React, { Fragment } from 'react' -import type { ListPreferences } from '../../../../ui/src/views/List/types' +import type { DefaultListViewProps, ListPreferences } from './Default/types' -import { ListInfoProvider } from '../../../../ui/src/providers/ListInfo' import { initPage } from '../../utilities/initPage' +import { DefaultListView } from './Default' export const ListView = async ({ collectionSlug, @@ -60,12 +59,12 @@ export const ListView = async ({ admin: { components: { views: { List: CustomList } = {} } = {} }, } = collectionConfig - let ListToRender = null + let CustomListView = null if (CustomList && typeof CustomList === 'function') { - ListToRender = CustomList + CustomListView = CustomList } else if (typeof CustomList === 'object' && typeof CustomList.Component === 'function') { - ListToRender = CustomList.Component + CustomListView = CustomList.Component } const limit = Number(searchParams?.limit) || collectionConfig.admin.pagination.defaultLimit @@ -93,8 +92,8 @@ export const ListView = async ({ > diff --git a/packages/next/src/pages/Versions/index.tsx b/packages/next/src/pages/Versions/index.tsx index 983616d089..1cd04f2ccd 100644 --- a/packages/next/src/pages/Versions/index.tsx +++ b/packages/next/src/pages/Versions/index.tsx @@ -1,10 +1,11 @@ -import type { ServerSideEditViewProps } from '@payloadcms/ui' - import { getTranslation } from '@payloadcms/translations' -import { Gutter, SetDocumentStepNav as SetStepNav } from '@payloadcms/ui' +import { Gutter } from '@payloadcms/ui' import { notFound } from 'next/navigation' import React from 'react' +import type { ServerSideEditViewProps } from '../Edit/types' + +import { SetStepNav } from '../Edit/Default/SetStepNav' import { buildVersionColumns } from './buildColumns' import { VersionsViewClient } from './index.client' import './index.scss' diff --git a/packages/richtext-lexical/src/field/features/Upload/component/ExtraFieldsDrawer/index.tsx b/packages/richtext-lexical/src/field/features/Upload/component/ExtraFieldsDrawer/index.tsx index ce03293419..ed34787c24 100644 --- a/packages/richtext-lexical/src/field/features/Upload/component/ExtraFieldsDrawer/index.tsx +++ b/packages/richtext-lexical/src/field/features/Upload/component/ExtraFieldsDrawer/index.tsx @@ -1,3 +1,4 @@ +'use client' import type { SanitizedCollectionConfig } from 'payload/types' import { useModal } from '@faceless-ui/modal' diff --git a/packages/ui/src/elements/DeleteMany/index.tsx b/packages/ui/src/elements/DeleteMany/index.tsx index c7a661392d..891a3f170a 100644 --- a/packages/ui/src/elements/DeleteMany/index.tsx +++ b/packages/ui/src/elements/DeleteMany/index.tsx @@ -8,10 +8,10 @@ import type { Props } from './types' import { useAuth } from '../../providers/Auth' import { useConfig } from '../../providers/Config' +import { SelectAllStatus, useSelection } from '../../providers/SelectionProvider' import { useTranslation } from '../../providers/Translation' // import { requests } from '../../../api' import { MinimalTemplate } from '../../templates/Minimal' -import { SelectAllStatus, useSelection } from '../../views/List/SelectionProvider' import { Button } from '../Button' import Pill from '../Pill' import './index.scss' @@ -70,20 +70,7 @@ const DeleteMany: React.FC = (props) => { // return addDefaultError() // } // }) - }, [ - addDefaultError, - api, - getQueryParams, - i18n.language, - modalSlug, - resetParams, - selectAll, - serverURL, - slug, - t, - toggleAll, - toggleModal, - ]) + }, []) if (selectAll === SelectAllStatus.None || !hasDeletePermission) { return null diff --git a/packages/ui/src/elements/DeleteMany/types.ts b/packages/ui/src/elements/DeleteMany/types.ts index 9d3eb9613b..5ea3a1fbd3 100644 --- a/packages/ui/src/elements/DeleteMany/types.ts +++ b/packages/ui/src/elements/DeleteMany/types.ts @@ -1,9 +1,7 @@ import type { SanitizedCollectionConfig } from 'payload/types' -import type { DefaultListViewProps } from '../../views/List/types' - export type Props = { collection: SanitizedCollectionConfig - resetParams: DefaultListViewProps['resetParams'] + resetParams: () => void title?: string } diff --git a/packages/ui/src/elements/EditMany/index.tsx b/packages/ui/src/elements/EditMany/index.tsx index 7507f8641a..c4d69a5022 100644 --- a/packages/ui/src/elements/EditMany/index.tsx +++ b/packages/ui/src/elements/EditMany/index.tsx @@ -9,13 +9,12 @@ import Form from '../../forms/Form' import { useForm } from '../../forms/Form/context' import RenderFields from '../../forms/RenderFields' import FormSubmit from '../../forms/Submit' -import { fieldTypes } from '../../forms/fields' import { X } from '../../icons/X' import { useAuth } from '../../providers/Auth' import { useConfig } from '../../providers/Config' import { OperationContext } from '../../providers/OperationProvider' +import { SelectAllStatus, useSelection } from '../../providers/SelectionProvider' import { useTranslation } from '../../providers/Translation' -import { SelectAllStatus, useSelection } from '../../views/List/SelectionProvider' import { Drawer, DrawerToggler } from '../Drawer' import { FieldSelect } from '../FieldSelect' import './index.scss' diff --git a/packages/ui/src/elements/EditMany/types.ts b/packages/ui/src/elements/EditMany/types.ts index 607621e639..0b5f98fd11 100644 --- a/packages/ui/src/elements/EditMany/types.ts +++ b/packages/ui/src/elements/EditMany/types.ts @@ -1,8 +1,6 @@ import type { SanitizedCollectionConfig } from 'payload/types' -import type { DefaultListViewProps } from '../../views/List/types' - export type Props = { collection: SanitizedCollectionConfig - resetParams: DefaultListViewProps['resetParams'] + resetParams: () => void } diff --git a/packages/ui/src/elements/EditUpload/index.tsx b/packages/ui/src/elements/EditUpload/index.tsx index 373c8dbbaa..8141555ac0 100644 --- a/packages/ui/src/elements/EditUpload/index.tsx +++ b/packages/ui/src/elements/EditUpload/index.tsx @@ -1,3 +1,4 @@ +'use client' import type { Data } from 'payload/types' import { useModal } from '@faceless-ui/modal' @@ -5,10 +6,10 @@ import React, { useRef, useState } from 'react' import ReactCrop, { type Crop as CropType } from 'react-image-crop' import 'react-image-crop/dist/ReactCrop.css' +import { editDrawerSlug } from '../../elements/Upload' import { Plus } from '../../icons/Plus' import { useFormQueryParams } from '../../providers/FormQueryParams' import { useTranslation } from '../../providers/Translation' -import { editDrawerSlug } from '../../views/Edit/Upload' import { Button } from '../Button' import './index.scss' diff --git a/packages/ui/src/elements/FileDetails/index.tsx b/packages/ui/src/elements/FileDetails/index.tsx index d351eec801..f93868c8aa 100644 --- a/packages/ui/src/elements/FileDetails/index.tsx +++ b/packages/ui/src/elements/FileDetails/index.tsx @@ -3,7 +3,7 @@ import React from 'react' import type { Props } from './types' -import { UploadActions } from '../../views/Edit/Upload' +import { UploadActions } from '../../elements/Upload' import { Button } from '../Button' import Thumbnail from '../Thumbnail' import Meta from './Meta' diff --git a/packages/ui/src/elements/GenerateConfirmation/index.tsx b/packages/ui/src/elements/GenerateConfirmation/index.tsx index 99a66dfd4d..3017eb64ed 100644 --- a/packages/ui/src/elements/GenerateConfirmation/index.tsx +++ b/packages/ui/src/elements/GenerateConfirmation/index.tsx @@ -1,3 +1,4 @@ +'use client' import { Modal, useModal } from '@faceless-ui/modal' import React from 'react' import { toast } from 'react-toastify' diff --git a/packages/ui/src/elements/ListControls/types.ts b/packages/ui/src/elements/ListControls/types.ts index f299fa2bfb..8f03f6f669 100644 --- a/packages/ui/src/elements/ListControls/types.ts +++ b/packages/ui/src/elements/ListControls/types.ts @@ -1,6 +1,5 @@ import type { FieldAffectingData, SanitizedCollectionConfig, Where } from 'payload/types' -import type { DefaultListViewProps } from '../../views/List/types' import type { Column } from '../Table/types' export type Props = { @@ -12,7 +11,7 @@ export type Props = { handleSortChange?: (sort: string) => void handleWhereChange?: (where: Where) => void modifySearchQuery?: boolean - resetParams?: DefaultListViewProps['resetParams'] + resetParams?: () => void textFieldsToBeSearched?: FieldAffectingData[] titleField: FieldAffectingData } diff --git a/packages/ui/src/elements/ListDrawer/DrawerContent.tsx b/packages/ui/src/elements/ListDrawer/DrawerContent.tsx index c4572e8dba..b73d3436e3 100644 --- a/packages/ui/src/elements/ListDrawer/DrawerContent.tsx +++ b/packages/ui/src/elements/ListDrawer/DrawerContent.tsx @@ -1,3 +1,4 @@ +'use client' import type { SanitizedCollectionConfig } from 'payload/types' import type { Where } from 'payload/types' diff --git a/packages/ui/src/elements/ListSelection/index.tsx b/packages/ui/src/elements/ListSelection/index.tsx index cbba574004..886914aa7e 100644 --- a/packages/ui/src/elements/ListSelection/index.tsx +++ b/packages/ui/src/elements/ListSelection/index.tsx @@ -1,7 +1,7 @@ import React, { Fragment } from 'react' +import { SelectAllStatus, useSelection } from '../../providers/SelectionProvider' import { useTranslation } from '../../providers/Translation' -import { SelectAllStatus, useSelection } from '../../views/List/SelectionProvider' import './index.scss' const baseClass = 'list-selection' diff --git a/packages/ui/src/elements/PublishMany/index.tsx b/packages/ui/src/elements/PublishMany/index.tsx index 13e8b0190c..5239000be8 100644 --- a/packages/ui/src/elements/PublishMany/index.tsx +++ b/packages/ui/src/elements/PublishMany/index.tsx @@ -8,10 +8,10 @@ import type { Props } from './types' import { useAuth } from '../../providers/Auth' import { useConfig } from '../../providers/Config' +import { SelectAllStatus, useSelection } from '../../providers/SelectionProvider' import { useTranslation } from '../../providers/Translation' // import { requests } from '../../../api' import { MinimalTemplate } from '../../templates/Minimal' -import { SelectAllStatus, useSelection } from '../../views/List/SelectionProvider' import { Button } from '../Button' import Pill from '../Pill' import './index.scss' diff --git a/packages/ui/src/elements/PublishMany/types.ts b/packages/ui/src/elements/PublishMany/types.ts index 607621e639..0b5f98fd11 100644 --- a/packages/ui/src/elements/PublishMany/types.ts +++ b/packages/ui/src/elements/PublishMany/types.ts @@ -1,8 +1,6 @@ import type { SanitizedCollectionConfig } from 'payload/types' -import type { DefaultListViewProps } from '../../views/List/types' - export type Props = { collection: SanitizedCollectionConfig - resetParams: DefaultListViewProps['resetParams'] + resetParams: () => void } diff --git a/packages/ui/src/elements/RenderCustomComponent/index.tsx b/packages/ui/src/elements/RenderCustomComponent/index.tsx index a1fedc871b..53080ad03a 100644 --- a/packages/ui/src/elements/RenderCustomComponent/index.tsx +++ b/packages/ui/src/elements/RenderCustomComponent/index.tsx @@ -11,5 +11,9 @@ export const RenderCustomComponent: React.FC<{ return } - return + if (DefaultComponent) { + return + } + + return null } diff --git a/packages/ui/src/elements/StayLoggedIn/index.tsx b/packages/ui/src/elements/StayLoggedIn/index.tsx index 3dd291048b..94a0075ba5 100644 --- a/packages/ui/src/elements/StayLoggedIn/index.tsx +++ b/packages/ui/src/elements/StayLoggedIn/index.tsx @@ -1,3 +1,4 @@ +'use client' import { Modal, useModal } from '@faceless-ui/modal' import React from 'react' import { useHistory } from 'react-router-dom' diff --git a/packages/ui/src/elements/TableColumns/buildColumns.ts b/packages/ui/src/elements/TableColumns/buildColumns.ts index 4e541190df..b237d5b9ca 100644 --- a/packages/ui/src/elements/TableColumns/buildColumns.ts +++ b/packages/ui/src/elements/TableColumns/buildColumns.ts @@ -1,12 +1,12 @@ import type { CellProps, SanitizedCollectionConfig } from 'payload/types' import type { Column } from '../../elements/Table/types' +import type { ColumnPreferences } from '../../providers/ListInfo/types' import type { FieldMap } from '../../utilities/buildComponentMap/types' -import type { ListPreferences } from '../../views/List/types' export const buildColumns = (args: { cellProps: Partial[] - columnPreferences: ListPreferences['columns'] + columnPreferences: ColumnPreferences defaultColumns?: string[] fieldMap: FieldMap useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle'] diff --git a/packages/ui/src/elements/TableColumns/index.tsx b/packages/ui/src/elements/TableColumns/index.tsx index e4a2110b22..a8428ebd8b 100644 --- a/packages/ui/src/elements/TableColumns/index.tsx +++ b/packages/ui/src/elements/TableColumns/index.tsx @@ -1,10 +1,10 @@ 'use client' -import type { Field, SanitizedCollectionConfig } from 'payload/types' +import type { SanitizedCollectionConfig } from 'payload/types' import type { CellProps } from 'payload/types' import React, { createContext, useCallback, useContext, useEffect, useReducer, useRef } from 'react' -import type { ListPreferences } from '../../views/List/types' +import type { ColumnPreferences } from '../../providers/ListInfo/types' import type { Column } from '../Table/types' import type { Action } from './columnReducer' @@ -30,7 +30,9 @@ export const TableColumnsProvider: React.FC<{ cellProps?: Partial[] children: React.ReactNode collectionSlug: string - listPreferences: ListPreferences + listPreferences: { + columns: ColumnPreferences + } }> = ({ cellProps, children, collectionSlug, listPreferences }) => { const config = useConfig() @@ -70,7 +72,9 @@ export const TableColumnsProvider: React.FC<{ const collectionHasChanged = prevCollection.current !== collectionSlug if (collectionHasChanged) { - const currentPreferences = await getPreference(preferenceKey) + const currentPreferences = await getPreference<{ + columns: ColumnPreferences + }>(preferenceKey) prevCollection.current = collectionSlug if (currentPreferences.columns) { diff --git a/packages/ui/src/elements/UnpublishMany/index.tsx b/packages/ui/src/elements/UnpublishMany/index.tsx index 7152546bcd..fbc8f736a0 100644 --- a/packages/ui/src/elements/UnpublishMany/index.tsx +++ b/packages/ui/src/elements/UnpublishMany/index.tsx @@ -8,10 +8,10 @@ import type { Props } from './types' import { useAuth } from '../../providers/Auth' import { useConfig } from '../../providers/Config' +import { SelectAllStatus, useSelection } from '../../providers/SelectionProvider' import { useTranslation } from '../../providers/Translation' // import { requests } from '../../../api' import { MinimalTemplate } from '../../templates/Minimal' -import { SelectAllStatus, useSelection } from '../../views/List/SelectionProvider' import { Button } from '../Button' import Pill from '../Pill' import './index.scss' diff --git a/packages/ui/src/elements/UnpublishMany/types.ts b/packages/ui/src/elements/UnpublishMany/types.ts index 607621e639..0b5f98fd11 100644 --- a/packages/ui/src/elements/UnpublishMany/types.ts +++ b/packages/ui/src/elements/UnpublishMany/types.ts @@ -1,8 +1,6 @@ import type { SanitizedCollectionConfig } from 'payload/types' -import type { DefaultListViewProps } from '../../views/List/types' - export type Props = { collection: SanitizedCollectionConfig - resetParams: DefaultListViewProps['resetParams'] + resetParams: () => void } diff --git a/packages/ui/src/views/Edit/Upload/index.scss b/packages/ui/src/elements/Upload/index.scss similarity index 98% rename from packages/ui/src/views/Edit/Upload/index.scss rename to packages/ui/src/elements/Upload/index.scss index 6f781fa6cc..44342c72e6 100644 --- a/packages/ui/src/views/Edit/Upload/index.scss +++ b/packages/ui/src/elements/Upload/index.scss @@ -1,4 +1,4 @@ -@import '../../../scss/styles.scss'; +@import '../../scss/styles.scss'; .file-field { position: relative; diff --git a/packages/ui/src/views/Edit/Upload/index.tsx b/packages/ui/src/elements/Upload/index.tsx similarity index 88% rename from packages/ui/src/views/Edit/Upload/index.tsx rename to packages/ui/src/elements/Upload/index.tsx index 891c5f00a8..77b2f96940 100644 --- a/packages/ui/src/views/Edit/Upload/index.tsx +++ b/packages/ui/src/elements/Upload/index.tsx @@ -4,20 +4,20 @@ import React, { useCallback, useEffect, useState } from 'react' import type { Props } from './types' -import { Button } from '../../../elements/Button' -import { Drawer, DrawerToggler } from '../../../elements/Drawer' -import { Dropzone } from '../../../elements/Dropzone' -import { EditUpload } from '../../../elements/EditUpload' -import FileDetails from '../../../elements/FileDetails' -import PreviewSizes from '../../../elements/PreviewSizes' -import Thumbnail from '../../../elements/Thumbnail' -import Error from '../../../forms/Error' -import { useFormSubmitted } from '../../../forms/Form/context' -import reduceFieldsToValues from '../../../forms/Form/reduceFieldsToValues' -import { fieldBaseClass } from '../../../forms/fields/shared' -import useField from '../../../forms/useField' -import { useDocumentInfo } from '../../../providers/DocumentInfo' -import { useTranslation } from '../../../providers/Translation' +import Error from '../../forms/Error' +import { useFormSubmitted } from '../../forms/Form/context' +import reduceFieldsToValues from '../../forms/Form/reduceFieldsToValues' +import { fieldBaseClass } from '../../forms/fields/shared' +import useField from '../../forms/useField' +import { useDocumentInfo } from '../../providers/DocumentInfo' +import { useTranslation } from '../../providers/Translation' +import { Button } from '../Button' +import { Drawer, DrawerToggler } from '../Drawer' +import { Dropzone } from '../Dropzone' +import { EditUpload } from '../EditUpload' +import FileDetails from '../FileDetails' +import PreviewSizes from '../PreviewSizes' +import Thumbnail from '../Thumbnail' import './index.scss' const baseClass = 'file-field' diff --git a/packages/ui/src/views/Edit/Upload/types.ts b/packages/ui/src/elements/Upload/types.ts similarity index 80% rename from packages/ui/src/views/Edit/Upload/types.ts rename to packages/ui/src/elements/Upload/types.ts index 0f2e06d948..da3128e62a 100644 --- a/packages/ui/src/views/Edit/Upload/types.ts +++ b/packages/ui/src/elements/Upload/types.ts @@ -1,6 +1,6 @@ import type { SanitizedCollectionConfig } from 'payload/types' -import type { FormState } from '../../../forms/Form/types' +import type { FormState } from '../../forms/Form/types' export type Props = { collectionSlug: string diff --git a/packages/ui/src/exports/elements.ts b/packages/ui/src/exports/elements.ts index 90036c1415..517f7950bc 100644 --- a/packages/ui/src/exports/elements.ts +++ b/packages/ui/src/exports/elements.ts @@ -9,12 +9,15 @@ export { DocumentHeader } from '../elements/DocumentHeader' export { Drawer, DrawerToggler, formatDrawerSlug } from '../elements/Drawer' export { useDrawerSlug } from '../elements/Drawer/useDrawerSlug' export { ErrorPill } from '../elements/ErrorPill' +export { default as GenerateConfirmation } from '../elements/GenerateConfirmation' export { Gutter } from '../elements/Gutter' export { HydrateClientUser } from '../elements/HydrateClientUser' export { LeaveWithoutSaving } from '../elements/LeaveWithoutSaving' +export { ListControls } from '../elements/ListControls' export { useListDrawer } from '../elements/ListDrawer' export { LoadingOverlayToggle } from '../elements/Loading' export { FormLoadingOverlayToggle } from '../elements/Loading' +export { LoadingOverlay } from '../elements/Loading' export { Pagination } from '../elements/Pagination' export { PerPage } from '../elements/PerPage' export { Pill } from '../elements/Pill' @@ -23,6 +26,7 @@ export { default as ReactSelect } from '../elements/ReactSelect' export type { Option } from '../elements/ReactSelect/types' export { RenderCustomComponent } from '../elements/RenderCustomComponent' export { ShimmerEffect } from '../elements/ShimmerEffect' +export { StaggeredShimmers } from '../elements/ShimmerEffect' export { SortColumn } from '../elements/SortColumn' export { useStepNav } from '../elements/StepNav' export { SetStepNav } from '../elements/StepNav/SetStepNav' @@ -31,8 +35,8 @@ export { Table } from '../elements/Table' export { useTableCell } from '../elements/Table/TableCellProvider' export type { Column } from '../elements/Table/types' export { TableColumnsProvider } from '../elements/TableColumns' +export { default as Thumbnail } from '../elements/Thumbnail' export { Tooltip } from '../elements/Tooltip' // export { useThumbnail } from '../elements/Upload' export { Translation } from '../elements/Translation' export { BlocksDrawer } from '../forms/fields/Blocks/BlocksDrawer' -export { SetStepNav as SetDocumentStepNav } from '../views/Edit/SetStepNav' diff --git a/packages/ui/src/exports/forms.ts b/packages/ui/src/exports/forms.ts index f221788fce..c0fb4765fd 100644 --- a/packages/ui/src/exports/forms.ts +++ b/packages/ui/src/exports/forms.ts @@ -10,8 +10,10 @@ export { useFormSubmitted, useWatchForm, } from '../forms/Form/context' +export { useFormModified } from '../forms/Form/context' export { createNestedFieldPath } from '../forms/Form/createNestedFieldPath' export { default as reduceFieldsToValues } from '../forms/Form/reduceFieldsToValues' +export type { Props as FormProps } from '../forms/Form/types' export type { FormState } from '../forms/Form/types' export { default as Label } from '../forms/Label' export { default as RenderFields } from '../forms/RenderFields' diff --git a/packages/ui/src/exports/hooks.ts b/packages/ui/src/exports/hooks.ts index 58810ec108..b2ce99c20f 100644 --- a/packages/ui/src/exports/hooks.ts +++ b/packages/ui/src/exports/hooks.ts @@ -1,3 +1,4 @@ +export { default as useDebounce } from '../hooks/useDebounce' export { default as useHotkey } from '../hooks/useHotkey' export { useIntersect } from '../hooks/useIntersect' export { default as usePayloadAPI } from '../hooks/usePayloadAPI' diff --git a/packages/ui/src/exports/index.ts b/packages/ui/src/exports/index.ts index 248355a8da..110029ee74 100644 --- a/packages/ui/src/exports/index.ts +++ b/packages/ui/src/exports/index.ts @@ -1,5 +1,4 @@ export * from './elements' -export * from './views' export * from './forms' export * from './hooks' export * from './providers' diff --git a/packages/ui/src/exports/providers.ts b/packages/ui/src/exports/providers.ts index 85719a450e..b804738e83 100644 --- a/packages/ui/src/exports/providers.ts +++ b/packages/ui/src/exports/providers.ts @@ -12,9 +12,13 @@ export { EditDepthContext, EditDepthProvider } from '../providers/EditDepth' export { useEditDepth } from '../providers/EditDepth' export { FormQueryParams, FormQueryParamsProvider } from '../providers/FormQueryParams' export type { QueryParamTypes } from '../providers/FormQueryParams' +export { useListInfo } from '../providers/ListInfo' +export { ListInfoProvider } from '../providers/ListInfo' +export type { ColumnPreferences } from '../providers/ListInfo/types' export { useLocale } from '../providers/Locale' export { OperationProvider } from '../providers/OperationProvider' export { RootProvider } from '../providers/Root' +export { SelectAllStatus, SelectionProvider, useSelection } from '../providers/SelectionProvider' export { useTheme } from '../providers/Theme' export type { Theme } from '../providers/Theme/types' export { useTranslation } from '../providers/Translation' diff --git a/packages/ui/src/exports/utilities.ts b/packages/ui/src/exports/utilities.ts index 79c88ed130..b1101a6d5a 100644 --- a/packages/ui/src/exports/utilities.ts +++ b/packages/ui/src/exports/utilities.ts @@ -4,6 +4,7 @@ export { buildFieldSchemaMap } from '../utilities/buildFieldSchemaMap' export type { FieldSchemaMap } from '../utilities/buildFieldSchemaMap/types' export { findLocaleFromCode } from '../utilities/findLocaleFromCode' export { formatDate } from '../utilities/formatDate' +export { formatDocTitle } from '../utilities/formatDocTitle' export { formatFields } from '../utilities/formatFields' export { getFormState } from '../utilities/getFormState' export type { EntityToGroup, Group } from '../utilities/groupNavItems' diff --git a/packages/ui/src/exports/views.ts b/packages/ui/src/exports/views.ts deleted file mode 100644 index 57fc04ce91..0000000000 --- a/packages/ui/src/exports/views.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { DefaultEditView } from '../views/Edit' -export { default as Auth } from '../views/Edit/Auth' -export { DefaultList } from '../views/List' -export type { DefaultListViewProps } from '../views/List/types' -export type { ServerSideEditViewProps } from '../views/types' diff --git a/packages/ui/src/forms/Form/index.tsx b/packages/ui/src/forms/Form/index.tsx index 4088bd9b8a..8ae63da026 100644 --- a/packages/ui/src/forms/Form/index.tsx +++ b/packages/ui/src/forms/Form/index.tsx @@ -146,7 +146,7 @@ const Form: React.FC = (props) => { } return isValid - }, [id, user, operation, t, dispatchFields, config, beforeSubmit]) + }, [id, user, operation, t, dispatchFields, config]) const submit = useCallback( async (options: SubmitOptions = {}, e): Promise => { @@ -352,6 +352,8 @@ const Form: React.FC = (props) => { t, i18n, waitForAutocomplete, + beforeSubmit, + debouncedFormState, ], ) @@ -415,7 +417,7 @@ const Form: React.FC = (props) => { setModified(false) // dispatchFields({ state, type: 'REPLACE_STATE' }) }, - [id, user, operation, locale, t, dispatchFields, getDocPreferences, config], + [getDocPreferences], ) const replaceState = useCallback( @@ -508,9 +510,9 @@ const Form: React.FC = (props) => { } } - executeOnChange() + executeOnChange() // eslint-disable-line @typescript-eslint/no-floating-promises } - }, [debouncedFormState]) + }, [debouncedFormState, dispatchFields, onChange]) return (
[] + export type ListInfoProps = { Header?: React.ReactNode collectionSlug: SanitizedCollectionConfig['slug'] diff --git a/packages/ui/src/views/List/SelectionProvider/index.tsx b/packages/ui/src/providers/SelectionProvider/index.tsx similarity index 98% rename from packages/ui/src/views/List/SelectionProvider/index.tsx rename to packages/ui/src/providers/SelectionProvider/index.tsx index 7604db46a8..5006e1695b 100644 --- a/packages/ui/src/views/List/SelectionProvider/index.tsx +++ b/packages/ui/src/providers/SelectionProvider/index.tsx @@ -4,7 +4,7 @@ import type { Where } from 'payload/types' import queryString from 'qs' import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react' -import { useLocale } from '../../../providers/Locale' +import { useLocale } from '../Locale' export enum SelectAllStatus { AllAvailable = 'allAvailable', diff --git a/packages/ui/src/utilities/buildComponentMap/index.tsx b/packages/ui/src/utilities/buildComponentMap/index.tsx index b608a9f8a5..b2c1df6949 100644 --- a/packages/ui/src/utilities/buildComponentMap/index.tsx +++ b/packages/ui/src/utilities/buildComponentMap/index.tsx @@ -6,11 +6,12 @@ import React from 'react' import type { CollectionComponentMap, ComponentMap, GlobalComponentMap } from './types' -import { DefaultEditView } from '../../views/Edit' -import { DefaultList } from '../../views/List' import { mapFields } from './mapFields' export const buildComponentMap = (args: { + DefaultCell: React.FC + DefaultEditView: React.FC + DefaultListView: React.FC config: SanitizedConfig operation?: 'create' | 'update' permissions?: @@ -20,7 +21,15 @@ export const buildComponentMap = (args: { | FieldPermissions readOnly?: boolean }): ComponentMap => { - const { config, operation = 'update', permissions, readOnly: readOnlyOverride } = args + const { + DefaultCell, + DefaultEditView, + DefaultListView, + config, + operation = 'update', + permissions, + readOnly: readOnlyOverride, + } = args // Collections const collections = config.collections.reduce((acc, collectionConfig) => { @@ -49,7 +58,7 @@ export const buildComponentMap = (args: { : undefined const Edit = CustomEditView || DefaultEditView - const List = CustomListView || DefaultList + const List = CustomListView || DefaultListView const beforeList = collectionConfig?.admin?.components?.BeforeList @@ -60,22 +69,27 @@ export const buildComponentMap = (args: { const afterListTable = collectionConfig?.admin?.components?.AfterListTable const BeforeList = - beforeList && Array.isArray(beforeList) && beforeList?.map((Component) => ) + (beforeList && Array.isArray(beforeList) && beforeList?.map((Component) => )) || + null const BeforeListTable = - beforeListTable && - Array.isArray(beforeListTable) && - beforeListTable?.map((Component) => ) + (beforeListTable && + Array.isArray(beforeListTable) && + beforeListTable?.map((Component) => )) || + null const AfterList = - afterList && Array.isArray(afterList) && afterList?.map((Component) => ) + (afterList && Array.isArray(afterList) && afterList?.map((Component) => )) || + null const AfterListTable = - afterListTable && - Array.isArray(afterListTable) && - afterListTable?.map((Component) => ) + (afterListTable && + Array.isArray(afterListTable) && + afterListTable?.map((Component) => )) || + null const mappedFields = mapFields({ + DefaultCell, config, fieldSchema: fields, operation, @@ -104,6 +118,7 @@ export const buildComponentMap = (args: { const { fields, slug } = globalConfig const mappedFields = mapFields({ + DefaultCell, config, fieldSchema: fields, operation, diff --git a/packages/ui/src/utilities/buildComponentMap/mapFields.tsx b/packages/ui/src/utilities/buildComponentMap/mapFields.tsx index 029e5d6ce1..308d31556f 100644 --- a/packages/ui/src/utilities/buildComponentMap/mapFields.tsx +++ b/packages/ui/src/utilities/buildComponentMap/mapFields.tsx @@ -15,9 +15,9 @@ import DefaultError from '../../forms/Error' import DefaultDescription from '../../forms/FieldDescription' import DefaultLabel from '../../forms/Label' import { fieldTypes } from '../../forms/fields' -import { DefaultCell } from '../../views/List/Cell' export const mapFields = (args: { + DefaultCell?: React.FC config: SanitizedConfig fieldSchema: FieldWithPath[] filter?: (field: Field) => boolean @@ -31,6 +31,7 @@ export const mapFields = (args: { readOnly?: boolean }): FieldMap => { const { + DefaultCell, config, fieldSchema, filter, @@ -98,6 +99,7 @@ export const mapFields = (args: { field.fields && Array.isArray(field.fields) && mapFields({ + DefaultCell, config, fieldSchema: field.fields, filter, @@ -114,6 +116,7 @@ export const mapFields = (args: { Array.isArray(field.tabs) && field.tabs.map((tab) => { const tabFieldMap = mapFields({ + DefaultCell, config, fieldSchema: tab.fields, filter, @@ -139,6 +142,7 @@ export const mapFields = (args: { Array.isArray(field.blocks) && field.blocks.map((block) => { const blockFieldMap = mapFields({ + DefaultCell, config, fieldSchema: block.fields, filter, @@ -340,7 +344,7 @@ export const mapFields = (args: { if (!hasID) { result.push({ name: 'id', - Cell: , + Cell: typeof DefaultCell === 'function' ? : null, Field: , Heading: , fieldIsPresentational: false, diff --git a/packages/ui/src/utilities/buildComponentMap/mapRichText.tsx b/packages/ui/src/utilities/buildComponentMap/mapRichText.tsx deleted file mode 100644 index d91790d85f..0000000000 --- a/packages/ui/src/utilities/buildComponentMap/mapRichText.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import type { RichTextField } from 'payload/types' - -type elements = { - Button: React.ReactNode -}[] - -export const mapRichText = (field: RichTextField) => { - const cellComponent = null - const leafComponent = null - - let elements - - if ('editor' in field) { - } -}