From a3ebf51d6e1e23b76723d595d3882f1e3e43ffff Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Tue, 12 Nov 2024 14:02:08 -0500 Subject: [PATCH] fix: incorrectly looking for schema paths when upload is not enabled (#9146) ### What? ![CleanShot 2024-11-12 at 12 17 56](https://github.com/user-attachments/assets/74b906a3-7e76-4ee9-8b18-bd24dd7fca82) ### Why? Should not be attaching fields that it does not need. ### How? Conditionally render slate upload drawer like we do with the toggler. --- .../field/elements/upload/Element/index.tsx | 36 ++++++----- packages/ui/src/elements/EditMany/index.tsx | 10 ++-- packages/ui/src/views/List/index.tsx | 60 ++++++------------- 3 files changed, 44 insertions(+), 62 deletions(-) diff --git a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx index 1083aaf63..ee3450a93 100644 --- a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx @@ -154,22 +154,27 @@ const UploadElementComponent: React.FC<{ enabledCollectionSlugs?: string[] }> =
{Boolean(customFieldsMap) && ( - -
) } diff --git a/packages/ui/src/elements/EditMany/index.tsx b/packages/ui/src/elements/EditMany/index.tsx index a95bfdcb4..b0208c42c 100644 --- a/packages/ui/src/elements/EditMany/index.tsx +++ b/packages/ui/src/elements/EditMany/index.tsx @@ -156,10 +156,10 @@ export const EditMany: React.FC = (props) => { } void getInitialState() + } - return () => { - abortAndIgnore(controller) - } + return () => { + abortAndIgnore(controller) } }, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions]) @@ -186,7 +186,9 @@ export const EditMany: React.FC = (props) => { ) useEffect(() => { - abortAndIgnore(formStateAbortControllerRef.current) + return () => { + abortAndIgnore(formStateAbortControllerRef.current) + } }, []) if (selectAll === SelectAllStatus.None || !hasUpdatePermission) { diff --git a/packages/ui/src/views/List/index.tsx b/packages/ui/src/views/List/index.tsx index 331909cd4..4791d7e0f 100644 --- a/packages/ui/src/views/List/index.tsx +++ b/packages/ui/src/views/List/index.tsx @@ -1,6 +1,6 @@ 'use client' -import type { ClientCollectionConfig, StaticDescription } from 'payload' +import type { ClientCollectionConfig } from 'payload' import { getTranslation } from '@payloadcms/translations' import LinkImport from 'next/link.js' @@ -24,7 +24,6 @@ import { Pagination } from '../../elements/Pagination/index.js' import { PerPage } from '../../elements/PerPage/index.js' import { PublishMany } from '../../elements/PublishMany/index.js' import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js' -import { StaggeredShimmers } from '../../elements/ShimmerEffect/index.js' import { useStepNav } from '../../elements/StepNav/index.js' import { RelationshipProvider } from '../../elements/Table/RelationshipProvider/index.js' import { TableColumnsProvider } from '../../elements/TableColumns/index.js' @@ -35,7 +34,6 @@ import { useConfig } from '../../providers/Config/index.js' import { useEditDepth } from '../../providers/EditDepth/index.js' import { useListQuery } from '../../providers/ListQuery/index.js' import { SelectionProvider } from '../../providers/Selection/index.js' -import { useServerFunctions } from '../../providers/ServerFunctions/index.js' import { useTranslation } from '../../providers/Translation/index.js' import { useWindowInfo } from '../../providers/WindowInfo/index.js' import './index.scss' @@ -98,8 +96,6 @@ export const DefaultListView: React.FC = (props) => { } }, [InitialTable]) - const payloadServerAction = useServerFunctions() - const { user } = useAuth() const { getEntityConfig } = useConfig() @@ -136,30 +132,18 @@ export const DefaultListView: React.FC = (props) => { breakpoints: { s: smallBreak }, } = useWindowInfo() - useEffect(() => { - if (!collectionConfig) { - const getNewConfig = async () => { - // @ts-expect-error eslint-disable-next-line - const res = (await payloadServerAction('render-config', { - collectionSlug, - languageCode: i18n.language, - })) as any as ClientCollectionConfig - } - - void getNewConfig() + const docs = React.useMemo(() => { + if (isUploadCollection) { + return data.docs.map((doc) => { + return { + ...doc, + filesize: formatFilesize(doc.filesize), + } + }) + } else { + return data.docs } - }, [payloadServerAction, collectionConfig, collectionSlug, data, i18n]) - - let docs = data.docs || [] - - if (isUploadCollection) { - docs = docs?.map((doc) => { - return { - ...doc, - filesize: formatFilesize(doc.filesize), - } - }) - } + }, [data.docs, isUploadCollection]) const openBulkUpload = React.useCallback(() => { setCollectionSlug(collectionSlug) @@ -182,14 +166,14 @@ export const DefaultListView: React.FC = (props) => {
- + {BeforeList} = (props) => { renderedFilters={renderedFilters} /> {BeforeListTable} - {!data.docs && ( - - )} - {data.docs && data.docs.length > 0 && ( - {Table} - )} - {data.docs && data.docs.length === 0 && ( + {docs.length > 0 && {Table}} + {docs.length === 0 && (

{i18n.t('general:noResults', { label: getTranslation(labels?.plural, i18n) })} @@ -255,7 +231,7 @@ export const DefaultListView: React.FC = (props) => {

)} {AfterListTable} - {data.docs && data.docs.length > 0 && ( + {docs.length > 0 && (
= (props) => { prevPage={data.prevPage} totalPages={data.totalPages} /> - {data?.totalDocs > 0 && ( + {data.totalDocs > 0 && (
{data.page * data.limit - (data.limit - 1)}-