mirror of
https://github.com/PerpetualSoftware/pad.git
synced 2026-09-22 18:43:45 +00:00
fix(web): long-press delay on mobile status-header drag (BUG-641) (#237)
ListView's outer dndzone for status groups was missing `delayTouchStart`, so any touch on a group header was immediately interpreted as the start of a group-reorder drag. On mobile this meant trying to scroll the page by touching a header instead grabbed the header and dragged it with the finger — the page wouldn't scroll and the user couldn't reach content below the visible status bands. Mirror the inner item dndzone's `delayTouchStart: touchDragDelayMs` (500ms) on the outer group dndzone so the same long-press gesture is required to start a group reorder. Quick taps (collapse toggle) and short touch-drags (page scroll) now pass through unmolested; the existing drag-to-reorder behaviour is preserved behind the long-press, matching what already works for items inside a group. The `touchDragDelayMs` constant (line 46) was already in scope and already used for the inner dndzone, so this is a one-line addition. Verified manually on iOS at the running server: status headers no longer hijack scroll; long-press still reorders groups; tap-to-collapse unaffected. Verified: web/npm run build clean, go test ./... green.
This commit is contained in:
@@ -206,7 +206,15 @@
|
||||
flipDurationMs,
|
||||
type: 'list-group',
|
||||
dropTargetClasses: ['group-drop-target'],
|
||||
morphDisabled: true
|
||||
morphDisabled: true,
|
||||
/* On mobile, touching a group header to scroll the page used to
|
||||
immediately seize the touch as the start of a group-reorder drag,
|
||||
so the page wouldn't scroll and the group would fly around with
|
||||
the finger. Mirror the inner item dndzone's `delayTouchStart`
|
||||
(BUG-641): a 500ms long-press is required before drag activates,
|
||||
which matches the existing intra-group item behaviour and lets
|
||||
ordinary taps/scrolls pass through unmolested. */
|
||||
delayTouchStart: touchDragDelayMs
|
||||
}}
|
||||
onconsider={handleGroupConsider}
|
||||
onfinalize={handleGroupFinalize}
|
||||
|
||||
Reference in New Issue
Block a user