mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-02 16:38:14 +00:00
## Summary - Regression from PR #1492. After the refactor, `useFeaturedObjects` auto-fetch effect was racing the `EngineContext` editor instance: on AssetModal's first mount `editor` is `null`, the effect synchronously flipped `firstFetch.current` to `IN_PROGRESS` and then called `fetchFeaturedObjects()` which immediately bailed at `if (!editor) return`. When the editor became available the effect re-fired (editor is in the `useCallback` deps), but the `IN_PROGRESS` guard then blocked it — so **the network request never fired** for any featured category. - Visible only on Sets and Creatures tabs because Characters/Objects/Memes are merged with local demo arrays in `assetTabs` and looked populated despite the same fetch breakage. - Fix: gate the auto-fetch effect on `editor` (early-return when null, add `editor` to deps) so `IN_PROGRESS` isn't burned on the no-op call. ## Test plan - [ ] Open `/edit-3d` in artcraft-webapp with DevTools Network panel + "Disable cache" on. - [ ] Open the AssetModal — confirm exactly 5 GETs to `/v1/media_files/list_featured` (one each for `character`, `object`, `location`, `creature`, `image_plane`). - [ ] Switch to Sets and Creatures tabs — items render. - [ ] Drag a Set into the 3D scene — loads via `addObject` (LOCATION maps to `AssetType.OBJECT` in `responseMapping`). - [ ] Tauri smoke: open the 3D page in the desktop app, AssetModal Sets/Creatures tabs populate. - [ ] `nx typecheck @storyteller/ui-pagescene` (no new errors). 🤖 Generated with [Claude Code](https://claude.com/claude-code)