commit 6653798d275da4d8945b8f41c7d55371278e181d
parent e9ea96ffb62430bea581216665ee4197cb88be5d
Author: Ben Weeks <ben.weeks@outlook.com>
Date: Mon, 13 Feb 2023 10:10:54 +0000
Sidebar Fixes
Closes: #587
Diffstat:
2 files changed, 50 insertions(+), 40 deletions(-)
diff --git 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)
+ 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)
+ }
+ .disabled(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)
+
+ 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)
+
+ // 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
@@ -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)
}