Scrum4Me/components/backlog
Madhura68 2a4ee6aded feat(PBI-79): pendingSprintDraft session-only + concept-entry + leave-guard
Scope-aanpassing uit plan-revisie: drafts persisten niet meer server-side.

Wijzigingen:
- stores/user-settings/store.ts:
  - hydrate() strip nu workflow.pendingSprintDraft uit serverstate
    (legacy DB-entries blijven harmless aanwezig maar worden niet
    gehydreerd → effectief unreachable voor de UI).
  - setPendingSprintDraft / clearPendingSprintDraft worden lokale-only;
    geen import van sprint-draft-actions, geen server-roundtrip.
  - upsertPbiIntent / upsertStoryOverride blijven via setPendingSprintDraft
    routeren → ook session-only.
- components/shared/sprint-switcher.tsx: leest draft-goal uit user-settings
  store en toont '⚙ Concept — [goal]' als niet-selecteerbare entry
  bovenaan de dropdown zolang er een draft loopt.
- components/backlog/sprint-draft-leave-guard.tsx (nieuw): registreert
  een beforeunload-listener zolang er een draft is. Browser-refresh,
  tab-close en back-navigatie tonen daarmee de standaard confirm. In-app
  route-changes blijven via de banner-Annuleren-knop lopen.
- app/(app)/products/[id]/page.tsx: SprintDraftLeaveGuard gemount naast
  de banner.
- Tests: user-settings store-tests aangepast (geen server-call assert
  meer, hydrate strip-assert toegevoegd; upsert-tests seed nu via
  setPendingSprintDraft i.p.v. legacy hydrate).

setPendingSprintDraftAction + clearPendingSprintDraftAction blijven bestaan
voor eventuele toekomstige opruim-flows, maar worden niet meer aangeroepen
vanuit de UI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 18:31:04 +02:00
..
active-selection-hydrator.tsx feat(PBI-79): sprint-switch auto-select PBI/story + user-settings persist 2026-05-11 18:13:20 +02:00
backlog-card.tsx Sprint: Verbeteren debug mode (#179) 2026-05-09 22:46:29 +02:00
backlog-hydration-wrapper.tsx feat(PBI-74): Zustand product-workspace rearchitecture (Stories 1-8) (#180) 2026-05-10 02:25:19 +02:00
backlog-split-pane.tsx feat(PBI-74): Zustand product-workspace rearchitecture (Stories 1-8) (#180) 2026-05-10 02:25:19 +02:00
empty-panel.tsx Sprint: Verbeteren debug mode (#179) 2026-05-09 22:46:29 +02:00
new-sprint-metadata-dialog.tsx feat(PBI-79/ST-1337): state A′ UI — metadata dialog + sticky banner + PbiList ombouw 2026-05-11 16:48:51 +02:00
new-sprint-trigger.tsx feat(PBI-79/ST-1337): state A′ UI — metadata dialog + sticky banner + PbiList ombouw 2026-05-11 16:48:51 +02:00
pbi-dialog.tsx Sprint: Verbeteren debug mode (#179) 2026-05-09 22:46:29 +02:00
pbi-list.tsx fix(PBI-79): PBI-rij selecteert weer in A′/B-modus; vinkje is aparte trigger 2026-05-11 17:53:45 +02:00
save-sprint-button.tsx feat(PBI-79/ST-1338): state B vinkjes-UI + 'Sprint opslaan'-knop met teller 2026-05-11 17:07:21 +02:00
sprint-definition-banner.tsx feat(PBI-79/ST-1339): createSprintWithSelectionAction + banner wire-up 2026-05-11 16:58:15 +02:00
sprint-draft-banner.tsx feat(PBI-79/ST-1337): state A′ UI — metadata dialog + sticky banner + PbiList ombouw 2026-05-11 16:48:51 +02:00
sprint-draft-leave-guard.tsx feat(PBI-79): pendingSprintDraft session-only + concept-entry + leave-guard 2026-05-11 18:31:04 +02:00
sprint-edit-dialog.tsx feat(PBI-79/ST-1341+ST-1342): SprintEditDialog metadata-edit + multi-OPEN sprints 2026-05-11 17:09:58 +02:00
story-dialog.tsx Sprint: Verbeteren debug mode (#179) 2026-05-09 22:46:29 +02:00
story-panel.tsx feat(PBI-79/ST-1338): state B vinkjes-UI + 'Sprint opslaan'-knop met teller 2026-05-11 17:07:21 +02:00
task-panel.tsx feat(PBI-74): Zustand product-workspace rearchitecture (Stories 1-8) (#180) 2026-05-10 02:25:19 +02:00
url-task-sync.tsx feat(PBI-74): Zustand product-workspace rearchitecture (Stories 1-8) (#180) 2026-05-10 02:25:19 +02:00