mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-03 17:08:13 +00:00
pagescene AssetMenu: fix featured Sets/Creatures never loading
useFeaturedObjects' auto-fetch effect synchronously flipped firstFetch.current to IN_PROGRESS before calling fetchFeaturedObjects. On AssetModal's first mount the EngineContext editor is null, so the fetch bailed at `if (!editor) return`. When the editor later became available the effect re-fired (editor is in fetchFeaturedObjects' useCallback deps), but the IN_PROGRESS guard blocked it — the network request never fired for any featured category. CHARACTER/OBJECT tabs appeared populated only because they're merged with local demo arrays inside AssetModal's assetTabs useMemo; Sets and Creatures have no demo fallback so the bug was visible there. Move the editor check into the auto-fetch effect itself and add editor to its deps, so IN_PROGRESS isn't burned on the no-op call. Regression from PR #1492.
This commit is contained in:
1 parent
e120d009ae
commit
a9fa8d710a
1 file changed
+7
-1
+7
-1
@@ -87,6 +87,12 @@ export const useFeaturedObjects = (props: useFeaturedObjectsProps) => {
|
||||
}, [nextPageCursor, props, editor]);
|
||||
|
||||
useEffect(() => {
|
||||
// Wait for the editor instance before claiming first-fetch ownership.
|
||||
// Otherwise the IN_PROGRESS flip below would burn the slot on a no-op
|
||||
// call (fetchFeaturedObjects bails at !editor), and the subsequent
|
||||
// re-run after editor becomes available would see IN_PROGRESS and
|
||||
// skip the actual fetch forever. See PR #1492 regression.
|
||||
if (!editor) return;
|
||||
if (
|
||||
(firstFetch.current === FetchStatus.READY ||
|
||||
firstFetch.current === FetchStatus.ERROR) &&
|
||||
@@ -95,7 +101,7 @@ export const useFeaturedObjects = (props: useFeaturedObjectsProps) => {
|
||||
firstFetch.current = FetchStatus.IN_PROGRESS;
|
||||
fetchFeaturedObjects();
|
||||
}
|
||||
}, [fetchFeaturedObjects]);
|
||||
}, [editor, fetchFeaturedObjects]);
|
||||
|
||||
return {
|
||||
featuredObjects,
|
||||
|
||||
Reference in new issue
Block a user