diff --git a/.changeset/fix-transition-duration-zero-jitter.md b/.changeset/fix-transition-duration-zero-jitter.md new file mode 100644 index 000000000..056d01d38 --- /dev/null +++ b/.changeset/fix-transition-duration-zero-jitter.md @@ -0,0 +1,5 @@ +--- +"@stackflow/core": patch +--- + +Fix intermittent incorrect transition state when `transitionDuration` is set to 0 by ensuring `now >= eventDate` in the initial aggregate call within `dispatchEvent`. diff --git a/core/src/makeCoreStore.ts b/core/src/makeCoreStore.ts index 0043055c5..297ac948c 100644 --- a/core/src/makeCoreStore.ts +++ b/core/src/makeCoreStore.ts @@ -92,9 +92,10 @@ export function makeCoreStore(options: MakeCoreStoreOptions): CoreStore { }, dispatchEvent(name, params) { const newEvent = makeEvent(name, params); + const nextStackValue = aggregate( [...events.value, newEvent], - new Date().getTime(), + Math.max(newEvent.eventDate, new Date().getTime()), ); events.value.push(newEvent);