Skip to content

Fix: ApplicationsGridClient fallback + avoid double-filtering; improve filter button UX#23

Merged
gianluca-pettenon merged 1 commit intofeature/application-filtersfrom
fix/applications-grid-respect-prop-fallback-and-filter-ux
Jan 28, 2026
Merged

Fix: ApplicationsGridClient fallback + avoid double-filtering; improve filter button UX#23
gianluca-pettenon merged 1 commit intofeature/application-filtersfrom
fix/applications-grid-respect-prop-fallback-and-filter-ux

Conversation

@ianmiyazato
Copy link
Contributor

Restore and improve ApplicationsGridClient::

  • Prefer the applications prop when provided; fall back to fetched apps.
  • Defensively compute finalized: app.finalized ?? app.feedback !== null.
  • Avoid double-filtering: do not reapply search when parent passes a filtered list.
  • Memoize derived lists with useMemo to reduce re-renders.
  • Preserve all modal handlers and mutation flows (create/edit/finalize/delete + step ops).

UX/UI fix for filter control::

  • FilterStatusPill & FilterStatusSegmented: improved mobile animation and positioning so the dropdown appears immediately below the button (no flicker/overlay), faster enter/leave timing on small screens, and toggle closes reliably by clicking the button/chevron.
  • Removed render-time setState patterns; dropdown mounts with immediate coords and refines placement without layout jank.

Why this is better:

  • Fixes a regression that could leave the grid empty when the applications prop is not supplied.
  • Keeps an explicit parent vs local filtering contract — prevents surprising UI and incorrect enable/disable of actions when finalized is missing from responses.
  • Improves mobile UX for the filter control (no brief overlap; consistent animation).
  • Reduces re-renders and runtime errors (avoids setState-in-render).

Manual test checklist:

  • No applications prop → page shows fetched applications (fallback).
  • Parent-provided filtered applications → component does NOT re-filter the list.
  • CRUD flows (applications + steps) work; finalize gating enforced (actions disabled when finalized).
  • Mobile: open filter → dropdown appears below the button, no overlap; toggle button closes dropdown.
  • DevTools console: no setState-in-render errors.

…e-filtering, memoize lists; improve filter button UX/animation
@gianluca-pettenon gianluca-pettenon merged commit 247b784 into feature/application-filters Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants