@@ -5,7 +5,7 @@ import type {
55 PausedEvent ,
66 ResumedEvent ,
77} from "../event-types" ;
8- import type { Activity , Stack } from "../Stack" ;
8+ import type { Stack } from "../Stack" ;
99import { findTargetActivityIndices } from "./findTargetActivityIndices" ;
1010import { makeActivitiesReducer } from "./makeActivitiesReducer" ;
1111import { makeActivityReducer } from "./makeActivityReducer" ;
@@ -80,8 +80,8 @@ function withActivitiesReducer<T extends DomainEvent>(
8080 } ;
8181}
8282
83- function noop ( stack : Stack ) {
84- return stack ;
83+ function noop ( stack : Stack , event : DomainEvent ) {
84+ return { ... stack , events : [ ... stack . events , event ] } ;
8585}
8686
8787export function makeStackReducer ( context : { now : number ; resumedAt ?: number } ) {
@@ -91,6 +91,7 @@ export function makeStackReducer(context: { now: number; resumedAt?: number }) {
9191 return {
9292 ...stack ,
9393 transitionDuration : event . transitionDuration ,
94+ events : [ ...stack . events , event ] ,
9495 } ;
9596 } , context ) ,
9697 ) ,
@@ -110,6 +111,7 @@ export function makeStackReducer(context: { now: number; resumedAt?: number }) {
110111 : null ) ,
111112 } ,
112113 ] ,
114+ events : [ ...stack . events , event ] ,
113115 } ;
114116 } ,
115117 context ,
@@ -120,13 +122,14 @@ export function makeStackReducer(context: { now: number; resumedAt?: number }) {
120122 return {
121123 ...stack ,
122124 globalTransitionState : "paused" ,
125+ events : [ ...stack . events , event ] ,
123126 } ;
124127 } , context ) ,
125128 ) ,
126129 Resumed : withActivitiesReducer (
127130 ( stack : Stack , event : ResumedEvent ) : Stack => {
128131 if ( stack . globalTransitionState !== "paused" || ! stack . pausedEvents ) {
129- return stack ;
132+ return { ... stack , events : [ ... stack . events , event ] } ;
130133 }
131134
132135 const reducer = makeStackReducer ( {
@@ -135,10 +138,15 @@ export function makeStackReducer(context: { now: number; resumedAt?: number }) {
135138 } ) ;
136139
137140 const { pausedEvents, ...rest } = stack ;
138- return pausedEvents . reduce ( reducer , {
141+ const resumedStack = pausedEvents . reduce ( reducer , {
139142 ...rest ,
140143 globalTransitionState : "idle" ,
141144 } ) ;
145+
146+ return {
147+ ...resumedStack ,
148+ events : [ ...resumedStack . events , event ] ,
149+ } ;
142150 } ,
143151 context ,
144152 ) ,
0 commit comments