This commit is contained in:
@@ -146,7 +146,7 @@ Verified locally: `npm test` passes 167 tests with no failures (23 domain, 79 ap
|
||||
- Validation: 166 API tests, 11 web tests, 3 public Playwright tests, production web build, Storybook build, and 32 Storybook suites / 93 tests. No API or persistence changes.
|
||||
- Screen-reader speech and native browser zoom remain manual review items; this slice verifies browser focus and title behavior.
|
||||
|
||||
### Latest Vertical Slice: Clear Public Contact Methods
|
||||
### Clear Public Contact Methods
|
||||
|
||||
- Settings now sends explicit empty strings when a seller clears email or phone; help text explains removal. Omitted API fields still retain existing values.
|
||||
- Validation accepts empty/whitespace-only email as removal while rejecting invalid non-empty addresses. Both public detail repositories expose absent/cleared contacts as null.
|
||||
@@ -154,7 +154,15 @@ Verified locally: `npm test` passes 167 tests with no failures (23 domain, 79 ap
|
||||
- Storybook covers clearing contacts while retaining the description and rendering seller information without contact links.
|
||||
- Validation: 167 API tests, 23 isolated integration tests, 11 web tests, production web build, Storybook build, and 32 Storybook suites / 95 tests. No migration required.
|
||||
|
||||
Next bounded slice: Settings loading/error recovery. A failed settings read currently leaves editable default values visible. Hide the form until settings load successfully, provide a retry action, and preserve entered values across failed saves, with loading/error/retry Storybook coverage.
|
||||
### Latest Vertical Slice: Settings Error Recovery
|
||||
|
||||
- Settings only exposes its form after a successful load. Failed reads offer Retry instead of editable defaults.
|
||||
- Keyboard retry restores focus to the description field on success or Retry on repeated failure.
|
||||
- Saving announces progress and disables fields/submission while in flight; failed saves retain edits and allow retry without reloading.
|
||||
- Storybook covers loading, load errors, successful/repeated retry, save failure/retry, saving/disabled states, mobile retry and dark-theme save recovery.
|
||||
- Validation: 167 API tests, 11 web tests, production web build, Storybook build, and 32 Storybook suites / 102 tests. Frontend-only change; no API or persistence changes.
|
||||
|
||||
Next bounded slice: Saved Views error recovery. Failed reads currently also display “No saved views yet” and provide no retry. Separate loading/error/empty states, add retry and reliable create/delete feedback, and cover recovery with Storybook interactions.
|
||||
|
||||
## Next Milestone
|
||||
|
||||
|
||||
@@ -76,3 +76,12 @@ Dynamic actions must provide accessible status feedback, including:
|
||||
- background job progress
|
||||
|
||||
Avoid relying on color alone.
|
||||
|
||||
## Settings recovery
|
||||
|
||||
Do not show editable defaults until Settings has loaded successfully. A failed
|
||||
load offers a keyboard-accessible retry and announces the error. After retry,
|
||||
focus moves to the first form field on success or back to Retry on failure.
|
||||
Saving announces progress and temporarily disables the form to prevent duplicate
|
||||
submissions and edits being overwritten by the save response. A failed save
|
||||
keeps entered values available for correction or retry.
|
||||
|
||||
Reference in New Issue
Block a user