Repository navigation
spec(AST-057): flick opens, tap closes, full swipe confirms (FR4/FR5/FR7) - #9156
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
Contributor
Author
|
/approve-spec 3dc4e01 |
This branch was successfully deployed
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.
People who swipe a list row on a phone stop losing messages and pages by accident. A quick flick only opens or closes the row and never fires Delete. A tap on an open row closes it instead of opening the item. A long swipe shows which action will run before the finger lifts, and backing out cancels it. Mouse, keyboard and screen-reader paths are unchanged.
Exact decision needed
How a swipe-action row (
Item,ListItem) settles a release, and what closes an open row:spec:AST-057FR4, FR5, FR7 and AR3.Existing authority searched
spec:AST-057(current): FR5 fires the outermost entry on a fling or past the commit point, with nothing showing beforehand. FR7 closes only a resting row, and only on a pointer outside it, Escape, firing an entry or unmount. AR3 keeps the primary's activation unchanged in every state.spec:AST-094(current): FR11 press profiles (a list row is a cell), FR17 thresholds, FR19 touch ownership (the row swipe keeps its per-event pointer read), FR37 moving back cancels. AST-094 already leaves the row's release rule to AST-057.component:Item,component:ListItem,component:List: each defers swipe behaviour to AST-057; no edit needed.translate).Decision
reveal, a release goes by its speed first: a fast one goes the way the row is moving; a slower one opens past half the panel's width. Speed alone never fires an entry. Dragged past the confirm point, the row runs ahead and the outermost entry covers it while the finger is down. A lift there fires that entry. Coming back short of the confirm point closes the row and fires nothing. A disabled outermost entry never confirms. Undercommit, only a lift past the confirm point fires.onActivatefires once the row's content has left its box.spec:AST-094FR11's cell profile.reveal, as before. No public API changes.onActivate,Item.swipeBehavior) now point at FR5. The verification rows for FR4–FR6, FR7 and AR1–AR3 name the new states and failures.Rejected alternatives
onActivate.Claim scope and non-goals
Evidence and implementation relationship
Writing rubric results
draft.UIKit performsFirstActionWithFullSwipe.Scope
Validation
pnpm check:knowledge: "Knowledge templates and records are aligned."git diff --check: clean.