diff --git a/nirvana-ios/Services/AuthSessionStore.swift b/nirvana-ios/Services/AuthSessionStore.swift index 0cf764d..33cda4a 100644 --- a/nirvana-ios/Services/AuthSessionStore.swift +++ b/nirvana-ios/Services/AuthSessionStore.swift @@ -143,6 +143,12 @@ final class AuthSessionStore: ObservableObject, SessionStore { } } } + + // TODO: listener for getting user's sent and received messages + + // TODO: listener for getting user's circle members + + } else { // if we don't have a user, set our session to nil self.user = nil diff --git a/nirvana-ios/Views/Contacts/FindFriendsView.swift b/nirvana-ios/Views/Contacts/FindFriendsView.swift index b091afe..4022e3a 100644 --- a/nirvana-ios/Views/Contacts/FindFriendsView.swift +++ b/nirvana-ios/Views/Contacts/FindFriendsView.swift @@ -20,7 +20,7 @@ struct FindFriendsView: View { var body: some View { NavigationView { - // list with search bar + // TODO: add search bar + have secondary sort List { ForEach(contactsVM.contacts.sorted { $0.isExisting && !$1.isExisting }) { contact in ListContactRow(contact: contact) @@ -47,6 +47,8 @@ struct FindFriendsView_Previews: PreviewProvider { } } + + struct ListContactRow: View { var contact: ContactsViewModelContact @@ -56,6 +58,7 @@ struct ListContactRow: View { var body: some View { if contact.isExisting { // add to circle + // TODO: check if this contact is already in user's circle HStack(alignment: .center, spacing: 0) { Image(contact.user?.avatar ?? Avatars.avatarSystemNames[1]) .resizable() @@ -99,6 +102,15 @@ struct ListContactRow: View { Button { print("inviting user now") // text message to him/her + + if contact.cnPhoneNumber != nil { + let sms: String = "sms://\(contact.cnPhoneNumber)&body=Join me on Nirvana! I sent you a message there! https://usenirvana.com" + let strUrl: String = sms.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! + + UIApplication.shared.open(URL(string: strUrl)!, options: [:], completionHandler: nil) + } else { + print("phone number is nil of contact") + } } label: { Label("Invite", systemImage: "paperplane") .font(.title2)