refactor: fold org-template's action lifecycle + pendingPublish into one union (RD-13)
Before this change, org-template.store.ts held the action lifecycle in an actionState signal and the publish impact-confirm gate in an independent pendingPublish signal. The two were representable in combination, so pendingPublish === true and busy === true could both hold at once. That state was meaningless: the UI would show the publish-impact confirmation while a publish was already in flight. OrgTemplateState.Loaded now carries one action field, a four-variant union (Idle | ConfirmingPublish | Busy | Failed). ActionStarted overwrites the field straight to Busy from any prior tag, so ConfirmingPublish and Busy can never coexist — not by convention, but because one field can only hold one tag. requestPublish and cancelPublish become dispatches (PublishRequested/PublishCancelled); as the reducer already no-ops outside Loaded, this changes no behaviour. The other four commands (confirmPublish, rollback, proefbrief, flushSave) keep their existing loaded() guards. busy, lastError and pendingPublish stay on the store as computed values reading the new union, with byte-identical public signatures — no file under brief/ui/ changes. Ran gen:behaviour-spec for the six new reducer cases. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@ tested where._
|
||||
|
||||
Every bullet below is a real test name from the suite — an `it()` title (frontend) or a test
|
||||
method name (backend), read as a sentence. Nothing here is hand-written prose: this page
|
||||
**is** the suite, reshaped for a business reader. 524 frontend behaviours across
|
||||
**is** the suite, reshaped for a business reader. 530 frontend behaviours across
|
||||
9 contexts; 261 backend behaviours across 42 test
|
||||
classes.
|
||||
|
||||
@@ -308,6 +308,12 @@ classes.
|
||||
- a completed logo upload sets logoDocumentId + dirty
|
||||
- removing the logo clears logoDocumentId + dirty
|
||||
- DraftLoaded (sub-org switch) keeps the loaded logo category, drops uploads
|
||||
- PublishRequested moves a loaded template to ConfirmingPublish
|
||||
- PublishCancelled returns to Idle
|
||||
- ActionStarted from ConfirmingPublish goes to Busy, so confirming and busy cannot coexist
|
||||
- ActionFailed carries the error
|
||||
- DraftLoaded resets a stale action error to Idle
|
||||
- an action message is a no-op when the template is not loaded
|
||||
|
||||
#### parseOrgTemplateAdminView
|
||||
|
||||
|
||||
Reference in New Issue
Block a user