The strip grows a Sync tab — a standing placeholder, nothing in it yet
BoardInfoTab gains .sync last in the strip, rendering BoardSyncTabView's one honest caption. The tab claims the position where 07's remote half will live without ruling where its setup surfaces land — that stays the open Redesign card's question. Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
@@ -313,15 +313,19 @@ func boardInfoTitlebarAccessory(
|
||||
|
||||
// MARK: - Tabs
|
||||
|
||||
/// The popover's three aspects, one tab each (03-board-ui.md § Board popover, the 2026-08-07 tab
|
||||
/// restructure — all three sessions settled): **Info** (`BoardInfoTabView`), **Theme**
|
||||
/// (`BoardThemeTabView`), **Git** (`BoardGitTabView`). The raw values are the segmented control's own
|
||||
/// labels, so the strip needs no separate label function.
|
||||
/// The popover's aspects, one tab each (03-board-ui.md § Board popover, the 2026-08-07 tab
|
||||
/// restructure — all three original sessions settled): **Info** (`BoardInfoTabView`), **Theme**
|
||||
/// (`BoardThemeTabView`), **Git** (`BoardGitTabView`) — and **Sync** (`BoardSyncTabView`), added
|
||||
/// 2026-08-07 as a standing placeholder: the strip claims the position now, the surface says
|
||||
/// honestly that nothing lives there yet, and 07-sync-collab.md's cards are where its contents get
|
||||
/// ruled. The raw values are the segmented control's own labels, so the strip needs no separate
|
||||
/// label function.
|
||||
enum BoardInfoTab: String, CaseIterable, Identifiable {
|
||||
|
||||
case info = "Info"
|
||||
case theme = "Theme"
|
||||
case git = "Git"
|
||||
case sync = "Sync"
|
||||
|
||||
var id: Self { self }
|
||||
|
||||
@@ -334,7 +338,7 @@ enum BoardInfoTab: String, CaseIterable, Identifiable {
|
||||
// absent posture is unreachable and every board carries all three tabs. The membership rule
|
||||
// stands structurally — the strip still asks the posture — it just never hears 'absent'
|
||||
// anymore." So there is no `available(…)` filter here to ask it with: membership is `allCases`,
|
||||
// in `allCases`' own order (Info, Theme, Git), which is what the filter answered anyway.
|
||||
// in `allCases`' own order (Info, Theme, Git, Sync), which is what the filter answered anyway.
|
||||
}
|
||||
|
||||
// MARK: - The popover's content
|
||||
@@ -424,7 +428,7 @@ struct BoardInfoView: View {
|
||||
// the control's accessibility name. It iterates `allCases` — the strip's membership is
|
||||
// still the board's git posture in principle (the Git session's ruling), and since
|
||||
// 12-editions.md ▸ PIVOT 2026-08-07 that posture is never "absent", so every board
|
||||
// carries all three tabs (03-board-ui.md ▸ Board popover, the same-day pivot note).
|
||||
// carries the whole strip (03-board-ui.md ▸ Board popover, the same-day pivot note).
|
||||
Picker("Board configuration", selection: $tab) {
|
||||
ForEach(BoardInfoTab.allCases) { tab in
|
||||
Text(tab.rawValue)
|
||||
@@ -435,8 +439,9 @@ struct BoardInfoView: View {
|
||||
.padding(.horizontal, inset)
|
||||
.padding(.top, inset)
|
||||
|
||||
// The selected tab's surface — all three settled 2026-08-07, each in its own dedicated
|
||||
// session and its own file. Each pads itself by `inset`, so the switch adds nothing.
|
||||
// The selected tab's surface — the first three settled 2026-08-07, each in its own
|
||||
// dedicated session and its own file; Sync is that day's standing placeholder. Each pads
|
||||
// itself by `inset`, so the switch adds nothing.
|
||||
switch tab {
|
||||
case .info:
|
||||
BoardInfoTabView(store: store, inset: inset)
|
||||
@@ -444,6 +449,8 @@ struct BoardInfoView: View {
|
||||
BoardThemeTabView(store: store, inset: inset)
|
||||
case .git:
|
||||
BoardGitTabView(store: store, git: git, inset: inset)
|
||||
case .sync:
|
||||
BoardSyncTabView(inset: inset)
|
||||
}
|
||||
}
|
||||
// The style editor's popover width, taken from the editor rather than restated — the number
|
||||
|
||||
Reference in New Issue
Block a user