nice addition of contacts basic list
This commit is contained in:
@@ -35,6 +35,8 @@
|
|||||||
89BDCDE72769616600577829 /* UIImage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDE62769616600577829 /* UIImage+Extension.swift */; };
|
89BDCDE72769616600577829 /* UIImage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDE62769616600577829 /* UIImage+Extension.swift */; };
|
||||||
89BDCDEA27697F9C00577829 /* UserMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDE927697F9C00577829 /* UserMenu.swift */; };
|
89BDCDEA27697F9C00577829 /* UserMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDE927697F9C00577829 /* UserMenu.swift */; };
|
||||||
89BDCDEC2769918D00577829 /* OnboardingTrioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDEB2769918D00577829 /* OnboardingTrioView.swift */; };
|
89BDCDEC2769918D00577829 /* OnboardingTrioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDEB2769918D00577829 /* OnboardingTrioView.swift */; };
|
||||||
|
89BDCDEF2769B50C00577829 /* ContactsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDEE2769B50C00577829 /* ContactsView.swift */; };
|
||||||
|
89BDCDF12769E64200577829 /* Firestore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BDCDF02769E64200577829 /* Firestore.swift */; };
|
||||||
89D99D2E2766FD6B00237814 /* Liquid in Frameworks */ = {isa = PBXBuildFile; productRef = 89D99D2D2766FD6B00237814 /* Liquid */; };
|
89D99D2E2766FD6B00237814 /* Liquid in Frameworks */ = {isa = PBXBuildFile; productRef = 89D99D2D2766FD6B00237814 /* Liquid */; };
|
||||||
89F1386D2767EB19006680ED /* SignInView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F1386C2767EB19006680ED /* SignInView.swift */; };
|
89F1386D2767EB19006680ED /* SignInView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89F1386C2767EB19006680ED /* SignInView.swift */; };
|
||||||
89F138702767F55F006680ED /* GoogleSignIn in Frameworks */ = {isa = PBXBuildFile; productRef = 89F1386F2767F55F006680ED /* GoogleSignIn */; };
|
89F138702767F55F006680ED /* GoogleSignIn in Frameworks */ = {isa = PBXBuildFile; productRef = 89F1386F2767F55F006680ED /* GoogleSignIn */; };
|
||||||
@@ -67,6 +69,8 @@
|
|||||||
89BDCDE62769616600577829 /* UIImage+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extension.swift"; sourceTree = "<group>"; };
|
89BDCDE62769616600577829 /* UIImage+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extension.swift"; sourceTree = "<group>"; };
|
||||||
89BDCDE927697F9C00577829 /* UserMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserMenu.swift; sourceTree = "<group>"; };
|
89BDCDE927697F9C00577829 /* UserMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserMenu.swift; sourceTree = "<group>"; };
|
||||||
89BDCDEB2769918D00577829 /* OnboardingTrioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingTrioView.swift; sourceTree = "<group>"; };
|
89BDCDEB2769918D00577829 /* OnboardingTrioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingTrioView.swift; sourceTree = "<group>"; };
|
||||||
|
89BDCDEE2769B50C00577829 /* ContactsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactsView.swift; sourceTree = "<group>"; };
|
||||||
|
89BDCDF02769E64200577829 /* Firestore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Firestore.swift; sourceTree = "<group>"; };
|
||||||
89F1386C2767EB19006680ED /* SignInView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInView.swift; sourceTree = "<group>"; };
|
89F1386C2767EB19006680ED /* SignInView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInView.swift; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
@@ -140,6 +144,7 @@
|
|||||||
891A15F62765639B00B26659 /* Views */ = {
|
891A15F62765639B00B26659 /* Views */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
89BDCDED2769B3EB00577829 /* Contacts */,
|
||||||
89F1386B2767EB07006680ED /* SignIn */,
|
89F1386B2767EB07006680ED /* SignIn */,
|
||||||
892179E22765FE93001E6C60 /* FooterControlsView */,
|
892179E22765FE93001E6C60 /* FooterControlsView */,
|
||||||
891A16052765726800B26659 /* Templates */,
|
891A16052765726800B26659 /* Templates */,
|
||||||
@@ -186,6 +191,7 @@
|
|||||||
891A15FC276566B800B26659 /* constants.swift */,
|
891A15FC276566B800B26659 /* constants.swift */,
|
||||||
89BDCDE427695DB900577829 /* NirvanaImage.swift */,
|
89BDCDE427695DB900577829 /* NirvanaImage.swift */,
|
||||||
89BDCDE62769616600577829 /* UIImage+Extension.swift */,
|
89BDCDE62769616600577829 /* UIImage+Extension.swift */,
|
||||||
|
89BDCDF02769E64200577829 /* Firestore.swift */,
|
||||||
);
|
);
|
||||||
path = Globals;
|
path = Globals;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -232,6 +238,14 @@
|
|||||||
path = UserMenu;
|
path = UserMenu;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
89BDCDED2769B3EB00577829 /* Contacts */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
89BDCDEE2769B50C00577829 /* ContactsView.swift */,
|
||||||
|
);
|
||||||
|
path = Contacts;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
89F1386B2767EB07006680ED /* SignIn */ = {
|
89F1386B2767EB07006680ED /* SignIn */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -334,6 +348,7 @@
|
|||||||
89288ECB27675B9F00E962C4 /* OnboardingTemplateView.swift in Sources */,
|
89288ECB27675B9F00E962C4 /* OnboardingTemplateView.swift in Sources */,
|
||||||
89B46E71276893E200B74255 /* AuthSessionStore.swift in Sources */,
|
89B46E71276893E200B74255 /* AuthSessionStore.swift in Sources */,
|
||||||
891A15F9276563CA00B26659 /* WelcomeView.swift in Sources */,
|
891A15F9276563CA00B26659 /* WelcomeView.swift in Sources */,
|
||||||
|
89BDCDEF2769B50C00577829 /* ContactsView.swift in Sources */,
|
||||||
891A1611276590B000B26659 /* ChatsCarouselView.swift in Sources */,
|
891A1611276590B000B26659 /* ChatsCarouselView.swift in Sources */,
|
||||||
89BDCDE527695DB900577829 /* NirvanaImage.swift in Sources */,
|
89BDCDE527695DB900577829 /* NirvanaImage.swift in Sources */,
|
||||||
891A16132765A44300B26659 /* ChatsCarouselViewModel.swift in Sources */,
|
891A16132765A44300B26659 /* ChatsCarouselViewModel.swift in Sources */,
|
||||||
@@ -345,6 +360,7 @@
|
|||||||
891A15FD276566B800B26659 /* constants.swift in Sources */,
|
891A15FD276566B800B26659 /* constants.swift in Sources */,
|
||||||
89BDCDE72769616600577829 /* UIImage+Extension.swift in Sources */,
|
89BDCDE72769616600577829 /* UIImage+Extension.swift in Sources */,
|
||||||
89F1386D2767EB19006680ED /* SignInView.swift in Sources */,
|
89F1386D2767EB19006680ED /* SignInView.swift in Sources */,
|
||||||
|
89BDCDF12769E64200577829 /* Firestore.swift in Sources */,
|
||||||
891A160E27657CEA00B26659 /* User.swift in Sources */,
|
891A160E27657CEA00B26659 /* User.swift in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
|||||||
@@ -12,12 +12,13 @@ struct ContentView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ZStack {
|
ZStack {
|
||||||
switch self.authSessionStore.sessionState {
|
ContactsView() // TEMPORARY FOR TESTING
|
||||||
case SessionState.isAuthenticated:
|
// switch self.authSessionStore.sessionState {
|
||||||
HomeView()
|
// case SessionState.isAuthenticated:
|
||||||
case SessionState.isLoggedOut:
|
// HomeView()
|
||||||
WelcomeView()
|
// case SessionState.isLoggedOut:
|
||||||
}
|
// WelcomeView()
|
||||||
|
// }
|
||||||
}.animation(.default, value:authSessionStore.sessionState)
|
}.animation(.default, value:authSessionStore.sessionState)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// Firestore.swift
|
||||||
|
// nirvana-ios
|
||||||
|
//
|
||||||
|
// Created by Arjun Patel on 12/15/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
public class Firestore {
|
||||||
|
// public struct User: Codable {
|
||||||
|
// let id: String
|
||||||
|
// let firstName: String
|
||||||
|
// let lastName: String?
|
||||||
|
// let mainPhoneNumber: String?
|
||||||
|
// let emailAddress:String?
|
||||||
|
// let photoUrl:String?
|
||||||
|
//
|
||||||
|
// let lastLoggedInTimestamp: Date
|
||||||
|
// let createdTimestamp: Date
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public struct Messages: Codable {
|
||||||
|
// let id: String
|
||||||
|
// let senderId: String
|
||||||
|
// let receiverId: String
|
||||||
|
//
|
||||||
|
// let sentTimestamp:Date
|
||||||
|
// let listenedTimestamp:Date
|
||||||
|
// let audioDataUrl:String
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
//
|
||||||
|
// ContactsView.swift
|
||||||
|
// nirvana-ios
|
||||||
|
//
|
||||||
|
// Created by Arjun Patel on 12/14/21.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
struct ContactsView: View {
|
||||||
|
var testUsers:[TestUser] = [
|
||||||
|
TestUser(_profilePic: "liam", _firstN: "Liam", _lastN: "Digregorio"),
|
||||||
|
TestUser(_profilePic: "heran", _firstN: "Heran", _lastN: "Patel"),
|
||||||
|
TestUser(_profilePic: "sarth", _firstN: "Sarth", _lastN: "Shah"),
|
||||||
|
TestUser(_profilePic: "kevin", _firstN: "Kevin", _lastN: "Le"),
|
||||||
|
TestUser(_profilePic: "rohan", _firstN: "Rohan", _lastN: "Chadha")
|
||||||
|
]
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
List {
|
||||||
|
ForEach(testUsers) { user in
|
||||||
|
let fullName = "\(user.firstName) \(user.lastName)"
|
||||||
|
IndividualContactView(name: fullName, imageName: user.profilePictureUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ContactsView_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
ContactsView().environmentObject(AuthSessionStore())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private struct IndividualContactView: View {
|
||||||
|
var name: String
|
||||||
|
var imageName: String
|
||||||
|
|
||||||
|
@Namespace private var animation
|
||||||
|
@State var addedUser = false
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
HStack(alignment: .center, spacing: 0) {
|
||||||
|
Image(imageName)
|
||||||
|
.resizable()
|
||||||
|
.scaledToFit()
|
||||||
|
.clipShape(Circle())
|
||||||
|
.frame(width: 40, height: 40)
|
||||||
|
.padding(.trailing, 10)
|
||||||
|
|
||||||
|
Text(name)
|
||||||
|
.font(.headline)
|
||||||
|
|
||||||
|
Spacer()
|
||||||
|
|
||||||
|
VStack {
|
||||||
|
if addedUser {
|
||||||
|
Label("Added", systemImage: "person.crop.circle.fill.badge.checkmark")
|
||||||
|
.font(.title2)
|
||||||
|
.foregroundColor(NirvanaColor.solidTeal)
|
||||||
|
.labelStyle(IconOnlyLabelStyle())
|
||||||
|
.matchedGeometryEffect(id: "add-contact", in: animation)
|
||||||
|
} else {
|
||||||
|
Button {
|
||||||
|
print("pressed add button")
|
||||||
|
} label: {
|
||||||
|
Label("Add", systemImage: "plus.circle")
|
||||||
|
.font(.title2)
|
||||||
|
.foregroundColor(NirvanaColor.solidTeal)
|
||||||
|
.labelStyle(IconOnlyLabelStyle())
|
||||||
|
.matchedGeometryEffect(id: "add-contact", in: animation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.onTapGesture {
|
||||||
|
withAnimation(Animation.interpolatingSpring(stiffness: 300, damping: 30)) {
|
||||||
|
self.addedUser.toggle()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user