Skip to content

✨ Introduce ConfettiKitState for hoisted animation control#71

Open
smelfungus wants to merge 2 commits into
vinceglb:mainfrom
smelfungus:feature/state-hoisting
Open

✨ Introduce ConfettiKitState for hoisted animation control#71
smelfungus wants to merge 2 commits into
vinceglb:mainfrom
smelfungus:feature/state-hoisting

Conversation

@smelfungus

Copy link
Copy Markdown
  • Implement ConfettiKitState and rememberConfettiKitState to enable external control over the confetti simulation.
  • Add support for pausing, resuming, resetting, and manual scrubbing (seeking) via advanceTo.
  • Introduce deterministic playback support by allowing custom Random factories in ConfettiKitState.
  • Refactor EmitterConfig into a data class to ensure structural equality, preventing unnecessary simulation restarts during recomposition.
  • Implement physics sub-stepping in ConfettiKit to maintain simulation stability during large manual time deltas.
  • Update the sample app with a preset gallery and interactive manual control UI.
  • Add comprehensive tests for state management, structural equality, and deterministic output.
Screen_recording_20260506_203852_2_1.mp4

smelfungus added 2 commits May 6, 2026 20:40
- Implement `ConfettiKitState` and `rememberConfettiKitState` to enable external control over the confetti simulation.
- Add support for pausing, resuming, resetting, and manual scrubbing (seeking) via `advanceTo`.
- Introduce deterministic playback support by allowing custom `Random` factories in `ConfettiKitState`.
- Refactor `EmitterConfig` into a data class to ensure structural equality, preventing unnecessary simulation restarts during recomposition.
- Implement physics sub-stepping in `ConfettiKit` to maintain simulation stability during large manual time deltas.
- Update the sample app with a preset gallery and interactive manual control UI.
- Add comprehensive tests for state management, structural equality, and deterministic output.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant