From 8895865fc694eab119fb8d14acfb5c9c53b34590 Mon Sep 17 00:00:00 2001 From: talksik Date: Thu, 23 Dec 2021 04:39:01 -0800 Subject: [PATCH] fixing issues and navigation smooth now --- .../Views/AddBasicInfo/AddBasicInfoView.swift | 211 +++++++++--------- .../Views/Contacts/FindFriendsView.swift | 48 ++-- .../InnerCircle/CircleNavigationView.swift | 14 +- .../Views/InnerCircle/InnerCircleView.swift | 28 +-- .../Views/OnBoarding/OnboardingOneView.swift | 10 +- 5 files changed, 154 insertions(+), 157 deletions(-) diff --git a/nirvana-ios/Views/AddBasicInfo/AddBasicInfoView.swift b/nirvana-ios/Views/AddBasicInfo/AddBasicInfoView.swift index c7881b7..1545293 100644 --- a/nirvana-ios/Views/AddBasicInfo/AddBasicInfoView.swift +++ b/nirvana-ios/Views/AddBasicInfo/AddBasicInfoView.swift @@ -9,8 +9,6 @@ import SwiftUI import NavigationStack struct AddBasicInfoView: View { - @Environment(\.dismiss) var dismiss - @EnvironmentObject var navigationStack : NavigationStack @EnvironmentObject var authSessionStore: AuthSessionStore @ObservedObject var addInfoViewModel: AddBasicInfoViewModel = AddBasicInfoViewModel() @@ -24,114 +22,123 @@ struct AddBasicInfoView: View { count: 5) var body: some View { - NavigationView { - ZStack { - // bg - WavesGlassBackgroundView() + ZStack { + // bg + WavesGlassBackgroundView() + + // programmatic back button + ZStack(alignment: .topLeading) { + Color.clear - // main content - VStack { - // header logo area - LogoHeaderView() + Button { + self.navigationStack.pop() + } label: { + Label("back", systemImage:"chevron.left") + .labelStyle(.iconOnly) + .font(.title2) + .foregroundColor(NirvanaColor.teal) + } + .padding() + } + + + // main content + VStack { + // header logo area + LogoHeaderView() + + // action text + VStack(alignment: .leading) { + Text("Let's Build A Profile") + .font(.title) + .fontWeight(.medium) + .foregroundColor(NirvanaColor.teal) + .multilineTextAlignment(.center) - // action text - VStack(alignment: .leading) { - Text("Let's Build A Profile") - .font(.title) - .fontWeight(.medium) - .foregroundColor(NirvanaColor.teal) - .multilineTextAlignment(.center) - - Text("Select an avatar you like, then make a username! You can always change this later.") - .font(.subheadline) - .foregroundColor(Color.black.opacity(0.7)) - } - - // Horizontal scroll view to allow user to select the avatar he or she wants - ScrollView([.horizontal, .vertical], showsIndicators: false) { - LazyVGrid(columns: columns) { - ForEach(0..( // get: { self.addInfoViewModel.state == ProfileRegistrationState.failed}, diff --git a/nirvana-ios/Views/Contacts/FindFriendsView.swift b/nirvana-ios/Views/Contacts/FindFriendsView.swift index 60d6d0d..19302fd 100644 --- a/nirvana-ios/Views/Contacts/FindFriendsView.swift +++ b/nirvana-ios/Views/Contacts/FindFriendsView.swift @@ -9,10 +9,8 @@ import SwiftUI import Contacts import NavigationStack - - struct FindFriendsView: View { - @Environment(\.dismiss) var dismiss + @EnvironmentObject var navigationStack : NavigationStack @EnvironmentObject var authSessionStore: AuthSessionStore @StateObject var contactsVM = ContactsViewModel() @@ -20,11 +18,41 @@ struct FindFriendsView: View { @State private var searchQuery: String = "" var body: some View { - NavigationView { + ZStack { + WavesGlassBackgroundView() + + // programmatic back button + ZStack(alignment: .topLeading) { + Color.clear + + Button { + self.navigationStack.pop() + } label: { + Label("back", systemImage:"chevron.left") + .labelStyle(.iconOnly) + .font(.title2) + .foregroundColor(NirvanaColor.teal) + } + .padding() + } + + // main content VStack { - Text("You must have someone in your phone contacts to add them. 🥬") - .font(.subheadline) - .foregroundColor(Color.gray) + // header logo area + LogoHeaderView() + + // action text + VStack(alignment: .leading) { + Text("Let's add some friends.") + .font(.title) + .fontWeight(.medium) + .foregroundColor(NirvanaColor.teal) + .multilineTextAlignment(.center) + + Text("You must have someone in your phone contacts to add them. You can only add 10 people to your circle! 🥬") + .font(.subheadline) + .foregroundColor(NirvanaColor.teal) + } List { ForEach(searchItems, id: \.self) { key in @@ -35,12 +63,6 @@ struct FindFriendsView: View { } .searchable(text: self.$searchQuery) } - .navigationTitle("Find Friends") - .navigationBarItems(trailing: Button(action: { - dismiss() - }, label: { - Text("Cancel") - })) } .onAppear { self.contactsVM.fetchContacts() diff --git a/nirvana-ios/Views/InnerCircle/CircleNavigationView.swift b/nirvana-ios/Views/InnerCircle/CircleNavigationView.swift index 847abeb..057725f 100644 --- a/nirvana-ios/Views/InnerCircle/CircleNavigationView.swift +++ b/nirvana-ios/Views/InnerCircle/CircleNavigationView.swift @@ -13,22 +13,12 @@ struct CircleNavigationView: View { @EnvironmentObject var navigationStack: NavigationStack @EnvironmentObject var authSessionStore: AuthSessionStore - @Binding var sheetView: SheetView? - var body: some View { HStack(alignment: .center) { Menu { - Button(role: .destructive) { - print("manage inbox") - self.sheetView = .inbox - } label: { - Label("inbox", systemImage: "envelope.badge") - .foregroundColor(NirvanaColor.teal) - } - Button { print("going to show contacts now") - self.sheetView = .contacts + self.navigationStack.push(FindFriendsView()) } label: { Label("add peeps", systemImage: "person.2.wave.2") .foregroundColor(NirvanaColor.teal) @@ -146,6 +136,6 @@ struct CircleNavigationView: View { struct CircleNavigationView_Previews: PreviewProvider { static var previews: some View { - CircleNavigationView(sheetView: .constant(SheetView.contacts)).environmentObject(AuthSessionStore(isPreview: true)) + CircleNavigationView().environmentObject(AuthSessionStore(isPreview: true)) } } diff --git a/nirvana-ios/Views/InnerCircle/InnerCircleView.swift b/nirvana-ios/Views/InnerCircle/InnerCircleView.swift index aa78b13..1aaf5ae 100644 --- a/nirvana-ios/Views/InnerCircle/InnerCircleView.swift +++ b/nirvana-ios/Views/InnerCircle/InnerCircleView.swift @@ -8,20 +8,11 @@ import SwiftUI import NavigationStack -enum SheetView : Identifiable { - var id: Self { self } - case contacts - case inbox - case profile -} - struct InnerCircleView: View { @StateObject var innerCircleVM: InnerCircleViewModel = InnerCircleViewModel() @EnvironmentObject var authSessionStore: AuthSessionStore @EnvironmentObject var navigationStack: NavigationStack - @State var sheetView: SheetView? = nil - @State var selectedFriendIndex: Int? = nil let universalSize = UIScreen.main.bounds @@ -40,7 +31,7 @@ struct InnerCircleView: View { .padding(.bottom) Button { - self.sheetView = SheetView.profile + self.navigationStack.push(AddBasicInfoView()) } label: { Text("Create Profile") .fontWeight(.heavy) @@ -69,7 +60,7 @@ struct InnerCircleView: View { .padding(.bottom) Button { - self.sheetView = SheetView.contacts + self.navigationStack.push(FindFriendsView()) } label: { Text("Add Friends") .fontWeight(.heavy) @@ -104,26 +95,13 @@ struct InnerCircleView: View { // header VStack(alignment: .leading) { - CircleNavigationView(sheetView: self.$sheetView).environmentObject(innerCircleVM) + CircleNavigationView().environmentObject(innerCircleVM) Spacer() } CircleFooterView(selectedFriendIndex: self.$selectedFriendIndex) } - .sheet(item: self.$sheetView) {page in - switch page { - case SheetView.contacts: - FindFriendsView() -// case SheetView.inbox: // removing feature for now -// InboxView() - case SheetView.profile: - AddBasicInfoView() - default: - Text("asdf") - } - - } .onAppear() { } } diff --git a/nirvana-ios/Views/OnBoarding/OnboardingOneView.swift b/nirvana-ios/Views/OnBoarding/OnboardingOneView.swift index eddc6c8..7947099 100644 --- a/nirvana-ios/Views/OnBoarding/OnboardingOneView.swift +++ b/nirvana-ios/Views/OnBoarding/OnboardingOneView.swift @@ -26,7 +26,7 @@ struct OnboardingOneView: View { .frame(width: 5, height: 5) .foregroundColor(NirvanaColor.teal) - Circle() + Capsule() .frame(width: 5, height: 5) .foregroundColor(NirvanaColor.teal) @@ -82,7 +82,7 @@ struct OnboardingTwo: View { .frame(width: 20, height: 5) .foregroundColor(NirvanaColor.teal) - Circle() + Capsule() .frame(width: 5, height: 5) .foregroundColor(NirvanaColor.teal) @@ -104,7 +104,7 @@ struct OnboardingTwo: View { } Button { - self.navigationStack.push(OnboardingTwo()) + self.navigationStack.push(OnboardingThree()) } label: { Text("Next") .fontWeight(.heavy) @@ -146,7 +146,7 @@ struct OnboardingThree: View { .frame(width: 5, height: 5) .foregroundColor(NirvanaColor.teal) - Circle() + Capsule() .frame(width: 20, height: 5) .foregroundColor(NirvanaColor.teal) @@ -168,7 +168,7 @@ struct OnboardingThree: View { } Button { - self.navigationStack.push(OnboardingTwo()) + self.navigationStack.push(InnerCircleView()) } label: { Text("Get Started") .fontWeight(.heavy)