Simpl-Resultat/src/components/settings
le king fu b9e13b5bca
All checks were successful
PR Check / rust (pull_request) Successful in 22m21s
PR Check / frontend (pull_request) Successful in 2m32s
fix(gating): keep key-validation errors out of the load lifecycle (#297)
A rejected submitKey dispatched the same ERROR action as a failed boot
load, so the CWE-703 retry backoff armed on it and the auto refresh
(LOAD_START) cleared the "invalid key" message ~1s after submit —
LicenseCard has no local error state, the context is the only source.

Split the state: load lifecycle (status/error, retried) vs validation
(validating/validationError, never retried). VALIDATE_ERROR leaves
status untouched, so a ready license stays ready on a typo'd key (no
`ready` regression for gating consumers) and a boot-error retry loop
keeps running through a failed validation. Reducer + initial state
exported for tests, covered by LicenseContext.test.ts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 21:21:18 -04:00
..
AccountCard.tsx fix: tighten CSP img-src, show initials instead of external avatar 2026-04-10 15:24:52 -04:00
CategoriesCard.tsx feat(categories): add restore backup banner and permanent restore action (#122) 2026-04-20 21:47:43 -04:00
CategoriesMigrationBackupBanner.tsx feat(categories): add restore backup banner and permanent restore action (#122) 2026-04-20 21:47:43 -04:00
CategoriesMigrationRestoreModal.tsx feat(categories): add restore backup banner and permanent restore action (#122) 2026-04-20 21:47:43 -04:00
ChangelogContent.tsx refactor(settings): split monolithic Settings page into 3 sub-pages (#190) 2026-05-03 09:50:02 -04:00
DataManagementCard.tsx feat: add data export/import with optional AES-256-GCM encryption (#3) 2026-02-15 11:40:28 +00:00
DocsContent.tsx refactor(settings): split monolithic Settings page into 3 sub-pages (#190) 2026-05-03 09:50:02 -04:00
FeedbackConsentDialog.tsx feat: feedback hub widget in Settings Logs card (#67) 2026-04-17 14:36:26 +00:00
FeedbackDialog.tsx feat: feedback hub widget in Settings Logs card (#67) 2026-04-17 14:36:26 +00:00
ImportConfirmModal.tsx feat: add data export/import with optional AES-256-GCM encryption (#3) 2026-02-15 11:40:28 +00:00
LicenseCard.tsx fix(gating): keep key-validation errors out of the load lifecycle (#297) 2026-07-20 21:21:18 -04:00
LogViewerCard.tsx feat: feedback hub widget in Settings Logs card (#67) 2026-04-17 14:36:26 +00:00
PriceFetchConsentToggle.test.tsx feat(prices): Settings revocation toggle for price_fetching_consent 2026-04-27 08:41:15 -04:00
PriceFetchConsentToggle.tsx feat(prices): Settings revocation toggle for price_fetching_consent 2026-04-27 08:41:15 -04:00
TokenStoreFallbackBanner.tsx feat: dismissable banner with session-storage memory (#81) 2026-04-14 08:20:20 -04:00
UpdateCard.tsx refactor(settings): split monolithic Settings page into 3 sub-pages (#190) 2026-05-03 09:50:02 -04:00