fix(mobile): desktop-only keyboard shortcuts, settings edge-swipe back, safe-area audit #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/mobile-polish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Real-device feedback round (branch stacked on fix/ios-safearea-2 - rounds
24 and 23 touch the same swipe/safe-area code):
lib/platform.ts isNativePlatform() (Capacitor) gates
KeyboardShortcutsLayer (renders nothing, no keydown listener mounts, so
the shortcuts help overlay is unreachable) and drops the Keybinds pane
from user settings in the iOS/Android shells. Browser builds unchanged.
swipe-back: a rightward drag from the left edge moves the full-screen
mobile sheet 1:1 with the finger; past 15% on release it pops one level
(sub-pane -> category rail -> close). Same mechanics as the round-23
panel drags (native non-passive listeners, ref-held offset, transform
written straight to the dialog, fresh view reads via ref), but
edge-restricted (40px) because settings panes are dense with
horizontally draggable content (appearance sliders, search caret).
reaches the Dynamic Island. Two bottom misses fixed: the full-screen
1:1/group call screens kept only p-6 (24px) under their bottom-anchored
mic/camera/hang-up rows, inside the iPhone home-indicator zone - both
carry pb-[calc(1.5rem + env(safe-area-inset-bottom))] now; and the
compose bar's mobile bottom band (1.5rem + inset ~ 58px dead space)
tightened to 0.5rem + inset below sm (sm+ keeps 1.5rem + inset;
desktop unchanged, env() = 0).
Gate: npm run build clean; vitest 452 passed + 1 skipped; oxlint 0 errors
(same 53 baseline warnings as the clean tree); npx cap sync ios clean.
Co-Authored-By: GLM noreply@z.ai
Pull request closed