Files
sim/apps
Waleed 0ce8ded1e7 improvement(credential-groups): align settings surface with the shared page patterns (#6727)
* improvement(credential-groups): align settings surface with the shared page patterns

- drop the row "..." menu; a row opening a detail page carries the chevron
  only, and Delete moves to the detail header behind a confirm modal
- replace the hand-rolled Save chip with saveDiscardActions, and wire
  useSettingsUnsavedGuard so detail edits survive tab switches
- fix swapped staleTime constants: the list carried Infinity, which combined
  with the app-wide retryOnMount:false to cache one transient failure until
  a full page reload
- evict the detail query on delete, and keep the bots prop referentially
  stable so a refetch cannot drop a queued Slack authorization message
- reset the detail tab param on open and close so a stale link cannot open
  the next group on the previous group's tab
- match peer rows (iconFilled + --text-icon), drop a bespoke max-w and a
  duplicated gap-7, align no-results copy and the Slack modal field gutter

* improvement(credential-groups): hold first paint for a deep-linked group

Matches the data-drains list: a deep link whose id is still resolving no
longer flashes the list chrome before jumping to the detail. Keys the detail
by group id so lifted draft state can never carry across groups.

* fix(credential-groups): await the refetch before clearing the edit buffer

The update mutation fired its invalidations without returning them, so
mutateAsync resolved before the refetch landed. Callers that clear their
draft on success then fell back onto the pre-save cache and flashed the old
name and description until the refetch completed — or kept showing them if
it failed.
2026-08-14 20:26:26 -07:00
..
…