feat(jsclient): add swipe gestures and improve mobile view #2

Merged
fcxs merged 6 commits from 2602/feat-jsclient-mobile-swipe-gestures into master 2026-02-23 16:50:56 +00:00
Owner

Unify breakpoint naming (splitedMode/isMobile → isMobileView) across
Article, Cluster, and ClusterList components.

Replace read/liked checkboxes with touch swipe gestures on mobile:

  • Swipe left to mark as read (with slide-out dismiss animation)
  • Swipe right to toggle liked (background icon reflects current state)
  • Custom useSwipeGesture hook with direction lock and 80px threshold

Restyle mobile cluster list for clearer visual hierarchy:

  • Folded items: flat continuous list with gray dividers, no individual shadow
  • Expanded items: elevated with shadow and spacing
  • Whole list wrapped in Paper for collective shadow
Unify breakpoint naming (splitedMode/isMobile → isMobileView) across Article, Cluster, and ClusterList components. Replace read/liked checkboxes with touch swipe gestures on mobile: - Swipe left to mark as read (with slide-out dismiss animation) - Swipe right to toggle liked (background icon reflects current state) - Custom useSwipeGesture hook with direction lock and 80px threshold Restyle mobile cluster list for clearer visual hierarchy: - Folded items: flat continuous list with gray dividers, no individual shadow - Expanded items: elevated with shadow and spacing - Whole list wrapped in Paper for collective shadow
- Unify breakpoint naming: splitedMode/isMobile → isMobileView
- Hide read/liked checkboxes on mobile view
- Add useSwipeGesture hook (direction lock, 80px threshold)
- Swipe left: mark as read (dismiss with slide-out animation)
- Swipe right: toggle liked
- Rename mainSplitted → mainDesktop in styles
Use filled star for liked clusters and empty star for unliked
in the swipe-right background indicator.
- Wrap cluster list in Paper for collective shadow
- Folded items: no individual shadow, gray divider lines, square corners
- Expanded items: elevation 8, rounded corners, vertical margin
- Swipe container only clips overflow during active swipe
fix(jsclient): resolve eslint warnings in Cluster component
All checks were successful
JARR CI / backend-build (pull_request) Successful in 7s
JARR CI / front-build (pull_request) Successful in 1m21s
JARR CI / backend-test (pull_request) Successful in 3m54s
JARR CI / push-images (pull_request) Has been skipped
JARR CI / backend-build (push) Successful in 8s
JARR CI / front-build (push) Successful in 13s
JARR CI / backend-test (push) Successful in 3m52s
JARR CI / push-images (push) Successful in 13s
7111ad513e
- Use ref for dismiss callback to avoid stale deps
- Wrap navigateBack in useCallback and move before effect
fix(jsclient): restore desktop cluster elevation and styling
All checks were successful
JARR CI / backend-build (pull_request) Successful in 8s
JARR CI / backend-build (push) Successful in 8s
JARR CI / backend-test (pull_request) Successful in 3m55s
JARR CI / front-build (push) Successful in 1m20s
JARR CI / front-build (pull_request) Successful in 5s
JARR CI / push-images (pull_request) Has been skipped
JARR CI / backend-test (push) Successful in 4m5s
JARR CI / push-images (push) Successful in 13s
9bfe7fe0a7
Scope flat-list styles (no shadow, square corners, dividers)
to mobile view only. Desktop keeps original elevation.
fcxs merged commit d6cfd56c9f into master 2026-02-23 16:50:56 +00:00
fcxs deleted branch 2602/feat-jsclient-mobile-swipe-gestures 2026-02-23 16:50:56 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
fcxs/JARR!2
No description provided.