shoc-frontend-new/src/test/app/(protected)
npal a93747f119 refactor(vendor-portal,settings): move state and fetch logic into hooks (SH-378)
vendor-portal-provider.tsx and task-templates.tsx mixed data-fetching,
state, and rendering in one file, with no caching and hand-rolled form
state. This is a pure refactor with no behavior change.

- vendor-portal-provider.tsx: replace manual useEffect/useState fetch
  with useVendorPortalSession (useQuery), closing the token race
  condition the old key={token} remount was working around
- task-templates.tsx: split into useTaskTemplateEditor hook plus 4
  presentational components; replace hand-rolled form state with
  react-hook-form + zod validation; replace the "new" string sentinel
  with a NEW_TEMPLATE_ID constant
- add 29 tests (hook, component, and full-page integration) confirming
  identical behavior to the original code
2026-09-17 18:05:06 -05:00
..
employees Feat/vite typescript migration (#16) 2026-06-18 14:41:17 -03:00
locations SH-138: manage ordered site contacts (#191) 2026-09-16 14:53:58 -03:00
pmschedules Feat/vite typescript migration (#16) 2026-06-18 14:41:17 -03:00
settings refactor(vendor-portal,settings): move state and fetch logic into hooks (SH-378) 2026-09-17 18:05:06 -05:00
team-members fix(team-members): harden team member flows (SH-325) 2026-09-16 23:14:51 -03:00
uplifts fix(workorders): correct vendor save behavior 2026-09-07 20:48:30 -03:00
vendor-pos SH-281: group vendor directory rows by company (#188) 2026-09-16 14:40:24 -03:00
vendors Merge origin/dev into feat/ab/sh-278-vendor-service-area 2026-09-16 16:08:12 -03:00
workorders Merge branch 'dev' into feat/ab/sh-187-service-picker 2026-09-17 13:02:18 -03:00