Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 0 additions & 32 deletions .changeset/fix-enter-anim-real-microtask.md

This file was deleted.

8 changes: 8 additions & 0 deletions apps/docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# docs

## 0.0.28

### Patch Changes

- Updated dependencies [8e9426f]
- @effex/dom@1.4.5
- @effex/router@1.3.5

## 0.0.27

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "docs",
"version": "0.0.27",
"version": "0.0.28",
"private": true,
"type": "module",
"scripts": {
Expand Down
33 changes: 33 additions & 0 deletions packages/dom/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
# @effex/dom

## 1.4.5

### Patch Changes

- 8e9426f: Fix intro animations still stalling on client-mode re-mount even after
the connection wait added in the previous release.

The previous fix used `Effect.yieldNow()` to defer the enter fiber past
the outer synchronous render flow. That only reschedules the fiber
inside Effect's own queue — if no other work is queued, the fiber can
run again immediately without the browser actually flushing microtasks
or committing DOM changes. On real client re-mounts, `element.isConnected`
stayed `false` when the animation fiber checked it, we hit the 3-attempt
bound, and proceeded against a disconnected element — same failure
mode as before.

Replace `Effect.yieldNow` with `queueMicrotask`-based yielding (via
`Effect.async`), bounded to 32 attempts. `queueMicrotask` is a real
browser primitive that guarantees the fiber won't resume until the
current task's synchronous work and other queued microtasks have run
— which is when the outer render flow finishes inserting the wrapper's
ancestor chain into the document. 32 microtasks is well under a
millisecond in modern engines and comfortably covers any realistic
outer-flow depth.

Also force a style/layout computation (`element.offsetHeight`) after
the element is connected. Some engines defer style computation for
freshly-inserted nodes until it's needed; without this, `forceReflow`
inside `runEnterAnimation` could record the enterFrom state as the
initial snapshot for an element that hasn't been styled yet, leaving
the browser without a valid "before" to interpolate the transition
from.

## 1.4.4

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/dom/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@effex/dom",
"version": "1.4.4",
"version": "1.4.5",
"description": "DOM rendering for Effex - a reactive UI framework built on Effect.ts",
"type": "module",
"license": "MIT",
Expand Down
7 changes: 7 additions & 0 deletions packages/router/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @effex/router

## 1.3.5

### Patch Changes

- Updated dependencies [8e9426f]
- @effex/dom@1.4.5

## 1.3.4

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/router/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@effex/router",
"version": "1.3.4",
"version": "1.3.5",
"description": "Router for Effex applications",
"type": "module",
"license": "MIT",
Expand Down
Loading