fix(signage-manager): keep group selection and lists stable - #533
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
This comment has been minimized.
This comment has been minimized.
|
Re Loaded rows disappear on failure ( |
|
Deployment failed for project frontend-templates with the following error: Learn More: https://vercel.com/placeos?upgradeToPro=build-rate-limit |
|
LGTM |
- Open the first group once, so clearing the selection on mobile works. - Keep group, user and zone lists while they reload or fail to reload. - Show loading and error states in the user search modal. - shareItems reports a failure instead of rejecting. - Build the group tree from the loaded index and keep row levels. - Guard the groups page, read every page of users and zones, and send one shared group request for admins. - Accessibility and translation fixes for tabs, breadcrumbs and labels.
…on failed reloads - The first group opens once per signed-in account, so switching accounts opens the new account's first group while a cleared selection stays cleared for the same account. - The shared group request is keyed by user as well, so a new account no longer gets the previous account's cached groups. - A failed users or zones reload keeps the rows already shown and shows the error above them.
8739c8a to
2814636
Compare
On the groups page:
/groupsdirectly.Changes
lastLoaded()keeps group, user, zone and feature lists while they reload, or when a reload fails. The tree shows an error when the list never loaded.shareItemsnotifies and returnsfalse. Save failures notify without rejecting.expansionKeykeepsaria-levelcorrect.manageGroupsGuardon/groups. It lets the user through when groups fail to load, so the page can retry.Testing
nx test signage-managerandnx build signage-managerpass.aria-level; one request.Notes
nextlink usesoffset = limit + 1, so one record is skipped every 200. That needs a backend fix.Independent of the other signage PRs from this review. Based on
develop.Changes made by Claude Opus 5.5 (1M context) in Claude Code, running in T3 Code.
🤖 Generated with Claude Code