much better overall header and adding log out ability

This commit is contained in:
talksik
2021-12-14 17:58:44 -08:00
parent 798fbc9e06
commit 6cea5ff0d6
2 changed files with 43 additions and 35 deletions
@@ -8,15 +8,9 @@
import SwiftUI
struct UserMenuView: View {
@Environment(\.dismiss) var dismiss
var body: some View {
Button("Press to dismiss") {
dismiss()
}
.font(.title)
.padding()
.background(Color.black)
Text("different menu options")
}
}
+42 -28
View File
@@ -13,35 +13,49 @@ struct HeaderView: View {
@State var showingMenu: Bool = false
var body: some View {
HStack(alignment:.center) {
Image("undraw_handcrafts_leaf")
.resizable()
.frame(width: 20.0, height: 32.132)
.padding(.leading, 20)
Spacer()
if self.authStore.sessionState == SessionState.isAuthenticated {
RemoteImage(url: self.authStore.user?.profilePictureUrl?.absoluteString ?? "https://avatars.githubusercontent.com/u/41487836")
.background(NirvanaColor.teal)
.aspectRatio(contentMode: .fill)
.frame(width: 40, height: 40)
.clipShape(Circle())
.padding(5)
.sheet(isPresented: $showingMenu) {
UserMenuView()
}
if authStore.sessionState == SessionState.isLoggedOut {
HStack {
Image("undraw_handcrafts_leaf")
.resizable()
.frame(width: 20.0, height: 32.132)
.padding()
Spacer()
}
}
.frame(maxWidth: .infinity)
// .background(Color(self.averageColor)) // color based on user's profilepicture dominant color
.background(NirvanaColor.solidBlue)
.cornerRadius(100)
.padding(.horizontal)
.shadow(radius: 10)
.onAppear{
// set background color based on profile picture tint
if authStore.sessionState == SessionState.isAuthenticated {
} else {
HStack(alignment:.center) {
Image("undraw_handcrafts_leaf")
.resizable()
.frame(width: 20.0, height: 32.132)
.padding(.leading, 20)
Spacer()
Menu {
Button("Log out") {
print("log out button clicked")
self.authStore.logOut()
}
Button("Friends") {
print("manage friends page")
}
} label: {
RemoteImage(url: self.authStore.user?.profilePictureUrl?.absoluteString ?? "https://avatars.githubusercontent.com/u/41487836")
.background(NirvanaColor.teal)
.aspectRatio(contentMode: .fill)
.frame(width: 40, height: 40)
.clipShape(Circle())
.padding(5)
}
}
.frame(maxWidth: .infinity)
// .background(Color(self.averageColor)) // color based on user's profilepicture dominant color
.background(NirvanaColor.solidBlue)
.cornerRadius(100)
.padding(.horizontal)
.shadow(radius: 10)
.onAppear{
// set background color based on profile picture tint
if let userPicUrl = authStore.user?.profilePictureUrl {
if let avgColor = NirvanaImage.getAverageColor(url: userPicUrl.absoluteString) {
self.averageColor = avgColor