fix: strict movetype moving wrong panel on circular flicking #842
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.
Issue
#841
Details
When using the next Panel to move in
moveType: strict
, we use the following rulesanchorAtPosition
that is closest to the point the camera is currently showing.anchorAtPosition
is not the same as Flicking's current Panel, we move to anchorAtPosition.anchorAtPosition
is the same as Flicking's current Panel, navigate toadjacentAnchor
which is the next/prev anchor ofanchorAtPosition
.However, there is an exception to this rule that can cause an error when you rotate the circular Flicking once before the event that updates the current panel is fired,
If you rotate the Flicking once, you'll end up in a situation where the camera is showing the position of the current panel again.
If that happens, you won't be able to stop on that panel by step 3 and you'll move to the next Anchor.
This will cause the error described in the issue.
In this PR, I have fixed
moveType: strict
to continuously update the current Panel based on thewillChange
event to prevent the above exception from occurring.