c9b0259993
- Add touch-action: none and overscroll-behavior: none to mobile terminal
page, content, wrapper, container, and xterm viewport so the browser
never treats swipes as page/address-bar scrolling or pull-to-refresh.
- Make .terminal-page.mobile fixed-position to prevent viewport layout
scroll; keep the overlay toolbar as absolute with pointer-events only
on interactive parts.
- Rework the mobile touch handler in terminal.tsx:
* Detect normal vs alternate buffer via term.buffer.active.type instead
of measuring the DOM viewport, which was unreliable in tmux/vim.
* Accumulate swipe distance and emit SGR 1006 mouse-wheel sequences in
steps, so tmux pane scrolling tracks the gesture correctly.
* Prevent default as soon as the swipe is recognized so the page does
not start a competing scroll gesture.
Quality gates: npm run typecheck, npm run lint clean, npm test -- --run 87 passed.
2.5 KiB
2.5 KiB
apps/web/src/components/features (index)
dir: apps/web/src/components/features
role
Houses reusable React components that implement specific product features and business logic for the web application.
parent
index: apps/web/src/components/.pi-map.index.md map: apps/web/src/components/.pi-map.md
children
- apps/web/src/components/features/config-profiles index: apps/web/src/components/features/config-profiles/.pi-map.index.md map: apps/web/src/components/features/config-profiles/.pi-map.md
- apps/web/src/components/features/git index: apps/web/src/components/features/git/.pi-map.index.md map: apps/web/src/components/features/git/.pi-map.md
- apps/web/src/components/features/mobile index: apps/web/src/components/features/mobile/.pi-map.index.md map: apps/web/src/components/features/mobile/.pi-map.md
- apps/web/src/components/features/notification index: apps/web/src/components/features/notification/.pi-map.index.md map: apps/web/src/components/features/notification/.pi-map.md
- apps/web/src/components/features/project index: apps/web/src/components/features/project/.pi-map.index.md map: apps/web/src/components/features/project/.pi-map.md
- apps/web/src/components/features/session index: apps/web/src/components/features/session/.pi-map.index.md map: apps/web/src/components/features/session/.pi-map.md
- apps/web/src/components/features/settings index: apps/web/src/components/features/settings/.pi-map.index.md map: apps/web/src/components/features/settings/.pi-map.md
- apps/web/src/components/features/ssh-keys index: apps/web/src/components/features/ssh-keys/.pi-map.index.md map: apps/web/src/components/features/ssh-keys/.pi-map.md
- apps/web/src/components/features/terminal index: apps/web/src/components/features/terminal/.pi-map.index.md map: apps/web/src/components/features/terminal/.pi-map.md
- apps/web/src/components/features/tool index: apps/web/src/components/features/tool/.pi-map.index.md map: apps/web/src/components/features/tool/.pi-map.md
- apps/web/src/components/features/tool-workshop index: apps/web/src/components/features/tool-workshop/.pi-map.index.md map: apps/web/src/components/features/tool-workshop/.pi-map.md
- apps/web/src/components/features/workspace index: apps/web/src/components/features/workspace/.pi-map.index.md map: apps/web/src/components/features/workspace/.pi-map.md
files
links
index: apps/web/src/components/features/.pi-map.index.md map: apps/web/src/components/features/.pi-map.md