mirror of
https://github.com/supabase/supabase.git
synced 2026-10-09 19:35:06 +03:00
## Summary - Fixes FE-3386: columns added via the Table Editor side panel vanished when components auto-refreshed. - Root cause: a `useEffect` re-initialized `tableFields` from server data on every `table` / `foreignKeyMeta` refetch, clobbering unsaved local edits. - Fix (initial): `hasInitializedRef` gates the late-init path so it runs at most once per panel session (to incorporate late-arriving `foreignKeyMeta`) and resets on panel close. - Fix (follow-up): handle the race where the user starts editing *before* `foreignKeyMeta` resolves. Added `hasUserEditsRef` (flipped on user edits, reset on panel close) and a `mergeForeignKeyMeta` utility. Both late-init paths now merge FK metadata into existing `tableFields` instead of wholesale-replacing when the user has unsaved edits — `foreignKey` is only injected onto matching server-originated columns, so user-added columns and other in-progress edits survive. Linear: FE-3386 ## Test plan - [ ] Open the Table Editor on an existing table. - [ ] Add one or more new columns via the side panel. - [ ] Watch the foreign key section flash / resolve its loading state. - [ ] Confirm the newly-added columns are NOT removed when the FK section resolves.