```extension ChatView{ @MainActor class vi...
# multiplatform
r
Copy code
extension ChatView{
    @MainActor
    class viewModel: ObservableObject{
        private let sendMessageUseCase:SendMessages = SendMessages()
        private let disconnectMessageUseCase: DisconnectMessages = DisconnectMessages()
        private let retrieveMessagesUseCase: RetrieveMessages = RetrieveMessages()
        @Published var messages: [Message] = []
        
        
        func retriveMessages() async{
            do{
                let messageFlow = try await retrieveMessagesUseCase.invoke()
                for await message in messageFlow{
                    
                }
            }
            catch{
                print(error)
            }
        }
    
        
        func disconnect() async{
            do{
                try await disconnectMessageUseCase.invoke()
            }catch{
                print(error)
            }
        }
    }
}