Skip to content

fix(web): reload users list after mutations, guard pull-to-refresh inside dialogs - #153

Merged
gnacho merged 2 commits into
mainfrom
fix/98-64-backlog
Oct 14, 2026
Merged

gnacho merged 2 commits into
mainfrom
fix/98-64-backlog

Conversation

@gnacho

@gnacho gnacho commented Oct 14, 2026

Copy link
Copy Markdown
Owner

Two backlog fixes.

  • Users list in Settings does not refresh after creating or deleting a user #98: the users list in Settings loaded once in an effect depending on [isAdmin, refresh], but refresh is a stable callback that only bumps dataVersion in the store, so the effect never re-ran and the list stayed stale after creating or deleting a user. It now depends on dataVersion, like useData does everywhere else.
  • Mobile: scrolling a tall modal triggers pull-to-refresh and reloads the page #64: pull-to-refresh armed on any window touch while window.scrollY <= 0; with a modal open the page behind stays at 0, so scrolling or pulling inside a tall modal reloaded the whole page. It no longer arms while a modal is open or when the gesture starts inside a [role=dialog] (covers the alerts panel too); on the plain page it keeps working as before.

Verification: Playwright E2E 8/8 on a local mock instance with real admin login - user create/delete reflected in the list without reload; a 140px pull gesture inside the tall "create pool" modal leaves the page and modal intact; the pull indicator still arms on the page at scrollY 0.

Closes #98, closes #64

The users state was loaded in an effect depending on [isAdmin, refresh],
but refresh is a stable callback that only bumps dataVersion in the
store, so the effect never re-ran and the list stayed stale after
creating or deleting a user until the view remounted. Depend on
dataVersion like useData does. (#98)
The window-level touch listeners only checked window.scrollY, which
stays 0 behind a modal, so scrolling or pulling inside a tall modal
could reload the whole page once the drag passed the threshold. Skip
arming when a modal is open or the gesture starts inside a
[role=dialog] (covers the alerts panel too); pull-to-refresh keeps
working normally on the page. (#64)
@gnacho
gnacho merged commit 37fd485 into main Oct 14, 2026
3 checks passed
@gnacho
gnacho deleted the fix/98-64-backlog branch October 14, 2026 06:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant