Port the remaining tabs to the macOS client
This commit is contained in:
+4
-2
@@ -1,6 +1,6 @@
|
||||
# byre for macOS
|
||||
|
||||
This is a design, partly built. What exists under `mac/`: the generated API client, the SSE client, `Store` and `Feed`, the startup sequence, the connection screen with Change Server…, the generated palette, the window with its two panes and tab strips (More included), the Lead and task transcripts through `TranscriptBuilder`, the composer with drafts and images, the Markdown port, native flowchart diagrams, pane-focus reporting and the identity banner. Overlays so far are alerts, the More menu and the full-size image view. The other tabs (Changes, Files, Terminal, Inbox, Reviews, Workflow, Project, Status, Settings) show `<tab> isn't in the macOS app yet.`. Until the switcher exists, the task picker is a plain menu of the active tasks, and the transcript head has Compact and Sync but not yet Merge or Discard. The rest of the work is under "M8 — macOS client" in `TODO.md`.
|
||||
This is a design, partly built. What exists under `mac/`: the generated API client, the SSE client, `Store` and `Feed`, the startup sequence, the connection screen with Change Server…, the generated palette, the window with its two panes and tab strips (More included), the Lead and task transcripts through `TranscriptBuilder`, the composer with drafts and images, the Markdown port, native flowchart diagrams, pane-focus reporting, the identity banner, and every other tab: Changes, Files, Terminal, Inbox, Reviews, Workflow (its stage graph drawn natively), Project, Status and Settings. Overlays so far are alerts, confirmations (used by Settings to delete a lead note), the More menu and the full-size image view. Settings asks for notification permission, but nothing delivers notifications until `Notifications.swift` exists. Until the switcher exists, the task picker is a plain menu of the active tasks, and the transcript head has Compact and Sync but not yet Merge or Discard. The rest of the work is under "M8 — macOS client" in `TODO.md`.
|
||||
|
||||
## Decision
|
||||
|
||||
@@ -59,7 +59,7 @@ The Swift files follow the TypeScript ones, so a change in one points at the sam
|
||||
| `switcher.ts` | `Switcher.swift` | ⌘K overlay and the shortcuts help |
|
||||
| `drafts.ts` | `Drafts.swift` | Composer and answer drafts |
|
||||
| `notifications.ts` | `Notifications.swift` | `UNUserNotificationCenter` delivery |
|
||||
| `dom.ts` | `Dialogs.swift`, `Format.swift` | Overlays (alerts, the More menu, the image view; confirm to come), `ago`, Copy, shared button and layout styles |
|
||||
| `dom.ts` | `Dialogs.swift`, `Format.swift` | Overlays (alerts, confirmations, the More menu, the image view), `ago`, Copy, shared button and layout styles, diff lines |
|
||||
| `images.ts` | `Images.swift` | Blob, worktree and `data:` images, their cache and the full-size overlay |
|
||||
|
||||
## Store and events
|
||||
@@ -176,6 +176,8 @@ Platform differences the copy can't avoid, each with what the web client does an
|
||||
| Where | Web client | App |
|
||||
| --- | --- | --- |
|
||||
| Settings, notifications line | `This browser shows notifications while a byre page is open.` | `This Mac shows notifications while byre is running.` |
|
||||
| Settings, notifications not yet allowed | `This browser doesn't show notifications.` and a **Turn on for this browser** button | `This Mac doesn't show notifications from byre.` and a **Turn on for this Mac** button, which asks macOS for permission |
|
||||
| Settings, notifications refused | `Notifications are blocked for this site in the browser's settings.` | `Notifications are blocked for byre in System Settings.` |
|
||||
| Opening a task by address | `#/task/<id>` in the URL bar | None; tasks open from the switcher, links and notifications |
|
||||
| Clicking a transcript image | Opens the image in a new browser tab | Opens it in an in-window overlay |
|
||||
| Preview links (`expose_port`) | Open in a new browser tab | Open in the default browser |
|
||||
|
||||
Reference in New Issue
Block a user