Skip to content

feat(call): phone focus taps, call audio, screen edges, and workspace polish - #27

Merged
pythonPlant12 merged 2 commits into
masterfrom
nikita/call-focus-layout
Nov 14, 2026
Merged

pythonPlant12 merged 2 commits into
masterfrom
nikita/call-focus-layout

Conversation

@pythonPlant12

Copy link
Copy Markdown
Owner

Summary

 Call screen
+  phone portrait: tap a small tile → it takes the big tile; tap the big tile → grid, pages of 4
+  <CallAudio> plays every other person and screen share; tile videos muted, rendered only while on screen
+  corner picture / strip / name tags 0.5rem above full screen controls and Add people
+  app: full screen portrait covers the status bar; a lone tile rounds like the screen's corners
+  full screen controls 0.25rem higher; 0.5rem above the home indicator
+  <Expand> slides in-place dropdowns: Privacy, QR code, phone panel settings, connection details
 Workspace
+  app: open chat covers the status bar; header, composer, tab bar, account page pad for the insets
-  calls: unread dot, read/unread swipes, missed-call count
+  incoming call: white Decline with red icon; rings only in the app bar while the app is visible
+  toasts: dark during a call, swipeable over open dialogs, swipe up to dismiss
+  submenus 8px from their menu; more room above the info page avatar

Evidence

  • Before: hiding the desktop strip silenced those people (audio played from the tiles' videos).
    After: a test hides the strip, checks that its tiles are gone, and checks that one <audio> per other person remains.
  • pnpm type-check, pnpm lint, pnpm build pass; pnpm test:unit --run 708 passed. New tests cover the phone taps, the call audio, off-screen video, corner picture lift, lone tile radius, screen edge requests, composer padding, calls without unread, decline styling, call notifications in front, and toasts over dialogs.

Merge Danger

Door: two-way

Blast Radius: call audio

Call audio now plays from separate audio elements. If a browser blocks their autoplay, the next press anywhere retries.

…eo, full screen edges

- On a phone in portrait, a tap on a small tile puts that person on the big tile, and a tap on the big tile shows the grid of pages of 4; Grid now applies to a 1:1 call too.
- Play everyone's audio from CallAudio, apart from the tiles, so hiding the strip or a tile never silences anyone; tile videos are muted and render only while on screen.
- Keep the corner picture and the strip 0.5rem above the full screen controls and Add people, and clear of the notch and home indicator.
- Cover the status bar in a full screen portrait call in the app, and round a lone tile like the screen's corners.
- Lift the controls 0.25rem in full screen and keep 0.5rem above the home indicator.
- Slide in-place dropdowns open and closed with a shared Expand: Privacy, QR code, the phone panel's settings, and connection details.
…unread, swipeable dark-aware toasts

- Ask the app to cover the status bar for an open chat on a phone; pad the chat header and composer for the insets, and keep the tab bar close to the bottom edge.
- Remove the unread dot, read and unread swipes, and missed-call count from the calls list.
- Decline an incoming call from a white button with a red icon, and ring only in the app bar while the app is visible.
- Show notifications in the call's dark palette during a call, let them take swipes over open dialogs, and dismiss them with a swipe up too.
- Open submenus 8px from their menu, and give the info page avatar more room below the header.
@pythonPlant12
pythonPlant12 merged commit 9ef41e4 into master Nov 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant