feat: long-press recognizer with duration timer and longpressup - #3
Merged
Conversation
- Add pointer ID guard to onPointerCancel (foreign pointer no longer aborts gesture) - Add JSDoc to LongPressRecognizer, longPress(), LongPressEvent, LongPressOptions - Fix test name "fails on movement at exactly threshold boundary" → does not fail - Fix test name "srcEvent is the pointerdown event" → last pointer event before recognition - Disambiguate Recognized→Idle cancel path in docs (silent reset, no longpressup) - Fix contributing.md template: PointerTracker is optional, not required for all recognizers
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.
Summary
longpresson timer fire andlongpressupon subsequent pointer-upduration(default 500ms) and movementthreshold(default 10px)Date.now()for duration tracking (timer callbacks have no PointerEvent)longPress()function with callback and options formsfngr:longpress,fngr:longpressup)Test plan
npm test— 278 unit tests passnpm run test:e2e— Playwright tests pass on chromium/firefox/webkitnpm run build— tsup builds cleanlynpm run lint— no ESLint errorsnpm run test:mutate— Stryker score above 85%