From 6653798d275da4d8945b8f41c7d55371278e181d Mon Sep 17 00:00:00 2001 From: Ben Weeks Date: Mon, 13 Feb 2023 10:10:54 +0000 Subject: [PATCH] Sidebar Fixes Closes: #587 --- damus/ContentView.swift | 83 ++++++++++++++++++---------------- damus/Views/SideMenuView.swift | 9 +++- 2 files changed, 51 insertions(+), 41 deletions(-) diff --git a/damus/ContentView.swift b/damus/ContentView.swift index 9e3b495f..a9f5051c 100644 --- a/damus/ContentView.swift +++ b/damus/ContentView.swift @@ -260,62 +260,67 @@ struct ContentView: View { } var body: some View { - VStack(alignment: .leading, spacing: 0) { + ZStack() { if let damus = self.damus_state { NavigationView { - ZStack { - TabView { // Prevents navbar appearance change on scroll - MainContent(damus: damus) - .toolbar() { - ToolbarItem(placement: .navigationBarLeading) { - Button { - isSideBarOpened.toggle() - } label: { - ProfilePicView(pubkey: damus_state!.pubkey, size: 32, highlight: .none, profiles: damus_state!.profiles) - .opacity(isSideBarOpened ? 0 : 1) - .animation(isSideBarOpened ? .none : .default, value: isSideBarOpened) - } - .disabled(isSideBarOpened) - } - - ToolbarItem(placement: .navigationBarTrailing) { - HStack(alignment: .center) { - if home.signal.signal != home.signal.max_signal { - NavigationLink(destination: RelayConfigView(state: damus_state!)) { - Text("\(home.signal.signal)/\(home.signal.max_signal)", comment: "Fraction of how many of the user's relay servers that are operational.") - .font(.callout) - .foregroundColor(.gray) - } + VStack(alignment: .leading, spacing: 0) { + ZStack { + TabView { // Prevents navbar appearance change on scroll + MainContent(damus: damus) + .toolbar() { + ToolbarItem(placement: .navigationBarLeading) { + Button { + isSideBarOpened.toggle() + } label: { + ProfilePicView(pubkey: damus_state!.pubkey, size: 32, highlight: .none, profiles: damus_state!.profiles) + .opacity(isSideBarOpened ? 0 : 1) + .animation(isSideBarOpened ? .none : .default, value: isSideBarOpened) } - - // maybe expand this to other timelines in the future - if selected_timeline == .search { - Button(action: { - //isFilterVisible.toggle() - self.active_sheet = .filter - }) { - // checklist, checklist.checked, lisdt.bullet, list.bullet.circle, line.3.horizontal.decrease..., line.3.horizontail.decrease - Label("Filter", systemImage: "line.3.horizontal.decrease") - .foregroundColor(.gray) + .disabled(isSideBarOpened) + } + + ToolbarItem(placement: .navigationBarTrailing) { + HStack(alignment: .center) { + if home.signal.signal != home.signal.max_signal { + NavigationLink(destination: RelayConfigView(state: damus_state!)) { + Text("\(home.signal.signal)/\(home.signal.max_signal)", comment: "Fraction of how many of the user's relay servers that are operational.") + .font(.callout) + .foregroundColor(.gray) + } + } + + // maybe expand this to other timelines in the future + if selected_timeline == .search { + Button(action: { + //isFilterVisible.toggle() + self.active_sheet = .filter + }) { + // checklist, checklist.checked, lisdt.bullet, list.bullet.circle, line.3.horizontal.decrease..., line.3.horizontail.decrease + Label("Filter", systemImage: "line.3.horizontal.decrease") + .foregroundColor(.gray) //.contentShape(Rectangle()) + } } } } } - } + } + .tabViewStyle(.page(indexDisplayMode: .never)) } - .tabViewStyle(.page(indexDisplayMode: .never)) + + TabBar(new_events: $home.new_events, selected: $selected_timeline, isSidebarVisible: $isSideBarOpened, action: switch_timeline) + .padding([.bottom], 8) } .overlay( SideMenuView(damus_state: damus, isSidebarVisible: $isSideBarOpened.animation()) ) + .navigationBarTitleDisplayMode(.inline) } .navigationViewStyle(.stack) - - TabBar(new_events: $home.new_events, selected: $selected_timeline, isSidebarVisible: $isSideBarOpened, action: switch_timeline) - .padding([.bottom], 8) + } } + .onAppear() { self.connect() setup_notifications() diff --git a/damus/Views/SideMenuView.swift b/damus/Views/SideMenuView.swift index 085df8f5..718cabc1 100644 --- a/damus/Views/SideMenuView.swift +++ b/damus/Views/SideMenuView.swift @@ -166,8 +166,13 @@ struct SideMenuView: View { @ViewBuilder func navLabel(title: String, systemImage: String) -> some View { - Label(title, systemImage: systemImage) - .font(.title2) + Label { + Text(title) + .font(.title2) + } icon: { + Image(systemName: systemImage) + .frame(width:20) + } .foregroundColor(textColor()) .frame(maxWidth: .infinity, alignment: .leading) }