From 473b265c2df9f0db3d79a1c62e2df1ead39a6687 Mon Sep 17 00:00:00 2001 From: Daniel Lautzenheiser Date: Tue, 9 May 2023 16:26:21 -0400 Subject: [PATCH] fix: loading media on new entry --- packages/core/src/components/entry-editor/Editor.tsx | 7 +++++-- packages/core/src/lib/util/collection.util.ts | 6 ++---- packages/core/src/reducers/mediaLibrary.ts | 3 +-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/core/src/components/entry-editor/Editor.tsx b/packages/core/src/components/entry-editor/Editor.tsx index 3a976c4a..98fa7dc9 100644 --- a/packages/core/src/components/entry-editor/Editor.tsx +++ b/packages/core/src/components/entry-editor/Editor.tsx @@ -18,6 +18,7 @@ import { persistLocalBackup, retrieveLocalBackup, } from '@staticcms/core/actions/entries'; +import { loadMedia } from '@staticcms/core/actions/mediaLibrary'; import { loadScroll, toggleScroll } from '@staticcms/core/actions/scroll'; import { selectFields } from '@staticcms/core/lib/util/collection.util'; import { useWindowEvent } from '@staticcms/core/lib/util/window.util'; @@ -113,7 +114,8 @@ const Editor: FC> = ({ navigate(`/collections/${collection.name}/new`, { replace: true }); } else { setSubmitted(false); - setTimeout(() => { + setTimeout(async () => { + await dispatch(loadMedia()); dispatch(createEmptyDraft(collection, location.search)); setVersion(version + 1); navigate(`/collections/${collection.name}/new`, { replace: true }); @@ -212,7 +214,8 @@ const Editor: FC> = ({ const [prevSlug, setPrevSlug] = useState(null); useEffect(() => { if (newRecord && slug !== prevSlug) { - setTimeout(() => { + setTimeout(async () => { + await dispatch(loadMedia()); dispatch(createEmptyDraft(collection, location.search)); }); } else if (!newRecord && slug && (prevCollection !== collection || prevSlug !== slug)) { diff --git a/packages/core/src/lib/util/collection.util.ts b/packages/core/src/lib/util/collection.util.ts index 56c2c719..d476e965 100644 --- a/packages/core/src/lib/util/collection.util.ts +++ b/packages/core/src/lib/util/collection.util.ts @@ -275,12 +275,10 @@ export function selectFieldsWithMediaFolders( if ('folder' in collection) { const fields = collection.fields; return getFieldsWithMediaFolders(fields); - } else { - const fields = getFileFromSlug(collection, slug)?.fields || []; - return getFieldsWithMediaFolders(fields); } - return []; + const fields = getFileFromSlug(collection, slug)?.fields || []; + return getFieldsWithMediaFolders(fields); } export function selectMediaFolders( diff --git a/packages/core/src/reducers/mediaLibrary.ts b/packages/core/src/reducers/mediaLibrary.ts index caa7ceff..70f1fe52 100644 --- a/packages/core/src/reducers/mediaLibrary.ts +++ b/packages/core/src/reducers/mediaLibrary.ts @@ -187,8 +187,7 @@ function mediaLibrary( dynamicSearch: Boolean(dynamicSearch), dynamicSearchQuery: dynamicSearchQuery ?? '', dynamicSearchActive: !!dynamicSearchQuery, - files: - page && page > 1 ? (state.files as MediaFile[]).concat(filesWithKeys) : filesWithKeys, + files: page && page > 1 ? (state.files ?? []).concat(filesWithKeys) : filesWithKeys, }; }