Repository navigation
fix(core): seek current dotLottie players by frame - #5275
Merged
jrusso1020 merged 1 commit intoOct 8, 2026
Merged
Conversation
jrusso1020
approved these changes
Oct 8, 2026
jrusso1020
left a comment
Collaborator
There was a problem hiding this comment.
Confirmed against the published dotlottie-web types: current players expose setFrame, totalFrames and duration, and none of the methods the adapter calls today, so a paused player stays on frame 0 through seeks. Deriving the frame from totalFrames and duration and reusing the existing loop and hold logic is a clean fix, and the older player paths are untouched. The tests fail on main and pass here.
— Rames
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The runtime advertises support for
@lottiefiles/dotlottie-web, but current players exposesetFrame()rather than either legacy method the adapter calls. A paused player therefore remains on frame 0 through preview and render seeks.Call the current frame API and derive its frame rate from
totalFrames / duration, since current players do not exposeframeRate. Wait for valid metadata, reuse the existing loop wrapping and final-frame hold, and retain the legacy player paths. The public dotLottie methods documentsetFrame.Validation: nine regression cases fail on main; all 276 adapter tests pass. Chrome 152 with the published dotLottie 0.81.0 player reproduces the stuck frame before the fix. Afterward, ten loop, held, and mounted-scene samples match the player's native frame position and canvas pixels exactly, with no page errors. Core/runtime build and typechecks, repository lint, formatting, test reachability, hooks, and branch comment checks pass.