shoc-frontend-new/src/domain/vendor-portal
npal 62e5d46b0f fix: address PR #224 review findings and extract task-template copy (SH-378)
Three real behavior deltas flagged in review, each closing a gap
against the "no behavior change" claim:

- use-vendor-portal-session.ts: add retry:false and
  meta:{suppressErrorToast:true} so an invalid/expired token fails
  fast with a single request and no duplicate global toast (this was
  also the root cause of the failing e2e test - the toast and the
  inline error message both had role="alert", tripping a strict-mode
  locator match)
- task-template-schema.ts: trim the name before validating so a
  whitespace-only name is rejected, matching the old manual
  form.name.trim() check
- task-template-detail-form.tsx: block Enter-triggered implicit
  submission on the Template Name / Description inputs, since the
  original page had no <form> element and Enter did nothing
- task-template-items-field.tsx: surface a visible error when a
  loaded item has empty text, since the schema already blocked save
  in that case but gave no way to see why; use-task-template-editor.ts
  now eagerly validates after loading a template so this reflects
  reality immediately instead of only after an unrelated edit

Also extract every user-facing string in the task-templates feature
into TASK_TEMPLATE_COPY (task-template-constants.ts) instead of
inline literals scattered across 5 files.

6 new regression tests cover all of the above; full suite (36 tests
across the 2 refactored areas) still green.
2026-09-18 10:46:16 -05:00
..
api feat(observability): identify and scrub Sentry transactions 2026-09-03 17:12:49 -03:00
lib fix(uplifts): align revise validation contract 2026-08-11 13:49:03 -03:00
schemas feat(vendor-portal): complete request lifecycle (SH-98) 2026-08-10 13:16:26 -03:00
types feat(uplifts): complete SH-101 vendor workflow 2026-08-11 08:57:38 -03:00
use-cases fix: address PR #224 review findings and extract task-template copy (SH-378) 2026-09-18 10:46:16 -05:00