From 4e1cbd1da9430539c92f5057553c35b02ed36596 Mon Sep 17 00:00:00 2001 From: rzen Date: Sat, 8 Aug 2026 12:47:36 -0400 Subject: [PATCH] =?UTF-8?q?The=20sort=20picker=20climbs=20to=20the=20navig?= =?UTF-8?q?ation=20bar=20=E2=80=94=20principal=20slot,=20centered?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- KanbanMobile/Screens/BoardScreen.swift | 3 ++- KanbanMobile/Screens/BoardsTabView.swift | 3 ++- KanbanMobile/Screens/LaneScreen.swift | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/KanbanMobile/Screens/BoardScreen.swift b/KanbanMobile/Screens/BoardScreen.swift index f43debe..58ef143 100644 --- a/KanbanMobile/Screens/BoardScreen.swift +++ b/KanbanMobile/Screens/BoardScreen.swift @@ -81,13 +81,14 @@ struct BoardScreen: View { @ToolbarContentBuilder private var sortToolbarItem: some ToolbarContent { if case .ready = session.phase, let snapshot = session.snapshot, !snapshot.lanes.isEmpty { - ToolbarItem(placement: .bottomBar) { + ToolbarItem(placement: .principal) { Picker("Sort", selection: sortOrder) { Text("Manual").tag(ItemSortOrder.manual) Text("Name").tag(ItemSortOrder.name) Text("Recent").tag(ItemSortOrder.recent) } .pickerStyle(.segmented) + .frame(maxWidth: 260) } } } diff --git a/KanbanMobile/Screens/BoardsTabView.swift b/KanbanMobile/Screens/BoardsTabView.swift index f81f30b..d160725 100644 --- a/KanbanMobile/Screens/BoardsTabView.swift +++ b/KanbanMobile/Screens/BoardsTabView.swift @@ -81,12 +81,13 @@ struct BoardsTabView: View { @ToolbarContentBuilder private var sortToolbarItem: some ToolbarContent { if case .ready = index.phase, !index.boards.isEmpty { - ToolbarItem(placement: .bottomBar) { + ToolbarItem(placement: .principal) { Picker("Sort", selection: sortOrder) { Text("Name").tag(BoardSortOrder.name) Text("Recent").tag(BoardSortOrder.recent) } .pickerStyle(.segmented) + .frame(maxWidth: 260) } } } diff --git a/KanbanMobile/Screens/LaneScreen.swift b/KanbanMobile/Screens/LaneScreen.swift index dd60dfa..fab62c6 100644 --- a/KanbanMobile/Screens/LaneScreen.swift +++ b/KanbanMobile/Screens/LaneScreen.swift @@ -96,13 +96,14 @@ struct LaneScreen: View { @ToolbarContentBuilder private var sortToolbarItem: some ToolbarContent { if let lane, !lane.cards.isEmpty { - ToolbarItem(placement: .bottomBar) { + ToolbarItem(placement: .principal) { Picker("Sort", selection: sortOrder) { Text("Manual").tag(ItemSortOrder.manual) Text("Name").tag(ItemSortOrder.name) Text("Recent").tag(ItemSortOrder.recent) } .pickerStyle(.segmented) + .frame(maxWidth: 260) } } }