diff --git a/nirvana-ios/Views/Convos/ConvoViewModel.swift b/nirvana-ios/Views/Convos/ConvoViewModel.swift index fa8ed49..447a149 100644 --- a/nirvana-ios/Views/Convos/ConvoViewModel.swift +++ b/nirvana-ios/Views/Convos/ConvoViewModel.swift @@ -8,10 +8,29 @@ import Foundation import AgoraRtcKit import Firebase +import SwiftUI class ConvoViewModel: NSObject, ObservableObject { + enum Error: Identifiable { + var id: Self { self } + + case notAuthenticated + case maxLimitUsers + case convoNotFound + + var alert: Alert { + switch self { + case .notAuthenticated: + return Alert(title: Text("Not Authenticated!")) + default: + return Alert(title: Text("There was a problem")) + } + } + } + @Published var selectedConvoId:String? = nil @Published var connectionState: AgoraConnectionStateType? + @Published var error: Error? let firestoreService = FirestoreService() private var db = Firestore.firestore() @@ -464,3 +483,4 @@ extension ConvoViewModel: AgoraRtcEngineDelegate { self.selectedConvoId = nil } } + diff --git a/nirvana-ios/Views/InnerCircle/CircleGridView.swift b/nirvana-ios/Views/InnerCircle/CircleGridView.swift index 43134d2..0661fc6 100644 --- a/nirvana-ios/Views/InnerCircle/CircleGridView.swift +++ b/nirvana-ios/Views/InnerCircle/CircleGridView.swift @@ -337,6 +337,9 @@ struct CircleGridView: View { } self.animateLiveConvos = true + }// univseral alert TODO: move to inner circle view and use this pattern for all view models + .alert(item: self.$convoVM.error) {error in + error.alert } } // scrollview reader } @@ -485,7 +488,6 @@ extension CircleGridView { return } // if I am in a convo, don't allow listening to a message or expanding details of a friend in my circle else if self.convoVM.isInCall() { - // TODO: show toast print("can't select this friend as you are in a convo") return }