Commit graph

2 commits

Author SHA1 Message Date
npal
736157467c refactor: move vendor-portal dispatch actions and 2 pages onto proper data hooks
Two groups of components were calling the API directly instead of using
this codebase's standard React Query hooks, with no shared caching and
duplicated submit/error-handling boilerplate.

- checklist-section.tsx, comments-section.tsx, signoff-section.tsx,
  uplift-requests-section.tsx: replace direct vendorPortalApi calls and
  hand-rolled submitting/error state with mutation hooks in the new
  use-vendor-portal-dispatch-actions.ts. uplift-requests-section keeps
  its existing multi-step evidence-upload orchestration intact and only
  swaps the 3 raw API calls for mutateAsync, since restructuring that
  flow around declarative mutation callbacks carried more risk than
  value. Caught and fixed a real bug along the way: two components were
  passing a prop callback directly as a mutation's onSuccess, which
  would have forwarded React Query's extra callback arguments into it.

- followups/index.tsx, vendors/preferences.tsx: split from a single
  file doing state, API calls, and rendering into a hook (owns data
  and handlers) plus small presentational components, matching the
  task-templates refactor pattern. Added a missing centralized query
  key (vendorOperations.sitePreferences) that preferences.tsx was
  building as a raw inline array.

- use-list-page-filters.ts: small shared hook for search/page/pageSize
  state, used by the new followups hook.

29 new/updated tests across all touched files; none of these had
coverage for their mutation/error paths before.
2026-09-25 10:53:23 -05:00
Alexandre Brandizzi
bc5659eb2a fix(vendor-portal): clear stale refusal state 2026-08-10 18:25:57 -03:00