The sort picker climbs to the navigation bar — principal slot, centered

Same three conditional pickers, now riding the nav bar's center instead
of the bottom bar, width-capped so the segments don't sprawl.

Claude-Session: https://claude.ai/code/session_01SR4XGjmBE16ZUYWpfFHXwY
This commit is contained in:
2026-08-08 12:47:36 -04:00
parent 4c179f63fc
commit 4e1cbd1da9
3 changed files with 6 additions and 3 deletions
+2 -1
View File
@@ -81,13 +81,14 @@ struct BoardScreen: View {
@ToolbarContentBuilder @ToolbarContentBuilder
private var sortToolbarItem: some ToolbarContent { private var sortToolbarItem: some ToolbarContent {
if case .ready = session.phase, let snapshot = session.snapshot, !snapshot.lanes.isEmpty { if case .ready = session.phase, let snapshot = session.snapshot, !snapshot.lanes.isEmpty {
ToolbarItem(placement: .bottomBar) { ToolbarItem(placement: .principal) {
Picker("Sort", selection: sortOrder) { Picker("Sort", selection: sortOrder) {
Text("Manual").tag(ItemSortOrder.manual) Text("Manual").tag(ItemSortOrder.manual)
Text("Name").tag(ItemSortOrder.name) Text("Name").tag(ItemSortOrder.name)
Text("Recent").tag(ItemSortOrder.recent) Text("Recent").tag(ItemSortOrder.recent)
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
.frame(maxWidth: 260)
} }
} }
} }
+2 -1
View File
@@ -81,12 +81,13 @@ struct BoardsTabView: View {
@ToolbarContentBuilder @ToolbarContentBuilder
private var sortToolbarItem: some ToolbarContent { private var sortToolbarItem: some ToolbarContent {
if case .ready = index.phase, !index.boards.isEmpty { if case .ready = index.phase, !index.boards.isEmpty {
ToolbarItem(placement: .bottomBar) { ToolbarItem(placement: .principal) {
Picker("Sort", selection: sortOrder) { Picker("Sort", selection: sortOrder) {
Text("Name").tag(BoardSortOrder.name) Text("Name").tag(BoardSortOrder.name)
Text("Recent").tag(BoardSortOrder.recent) Text("Recent").tag(BoardSortOrder.recent)
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
.frame(maxWidth: 260)
} }
} }
} }
+2 -1
View File
@@ -96,13 +96,14 @@ struct LaneScreen: View {
@ToolbarContentBuilder @ToolbarContentBuilder
private var sortToolbarItem: some ToolbarContent { private var sortToolbarItem: some ToolbarContent {
if let lane, !lane.cards.isEmpty { if let lane, !lane.cards.isEmpty {
ToolbarItem(placement: .bottomBar) { ToolbarItem(placement: .principal) {
Picker("Sort", selection: sortOrder) { Picker("Sort", selection: sortOrder) {
Text("Manual").tag(ItemSortOrder.manual) Text("Manual").tag(ItemSortOrder.manual)
Text("Name").tag(ItemSortOrder.name) Text("Name").tag(ItemSortOrder.name)
Text("Recent").tag(ItemSortOrder.recent) Text("Recent").tag(ItemSortOrder.recent)
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
.frame(maxWidth: 260)
} }
} }
} }