#53 - Refactored various components:

- updated the authentication coordinator to use async await
- replaced the UserSession with a ClientProxy (similar to the RoomProxy)
- renamed `completion` to `callback` on the coordinators and view models
- renamed `viewModelResult` to `viewModelAction`
- introduced back UserSession as a user specific service container
This commit is contained in:
Stefan Ceriu
2022-05-26 16:04:48 +03:00
committed by Stefan Ceriu
parent 608e679723
commit c04e3452ba
33 changed files with 312 additions and 214 deletions

View File

@@ -20,6 +20,11 @@ struct TemplateSimpleScreenCoordinatorParameters {
let promptType: TemplateSimpleScreenPromptType
}
enum TemplateSimpleScreenCoordinatorAction {
case accept
case cancel
}
final class TemplateSimpleScreenCoordinator: Coordinator, Presentable {
// MARK: - Properties
@@ -37,7 +42,7 @@ final class TemplateSimpleScreenCoordinator: Coordinator, Presentable {
// Must be used only internally
var childCoordinators: [Coordinator] = []
var completion: ((TemplateSimpleScreenViewModelResult) -> Void)?
var callback: ((TemplateSimpleScreenCoordinatorAction) -> Void)?
// MARK: - Setup
@@ -56,10 +61,15 @@ final class TemplateSimpleScreenCoordinator: Coordinator, Presentable {
func start() {
MXLog.debug("[TemplateSimpleScreenCoordinator] did start.")
templateSimpleScreenViewModel.completion = { [weak self] result in
templateSimpleScreenViewModel.callback = { [weak self] action in
guard let self = self else { return }
MXLog.debug("[TemplateSimpleScreenCoordinator] TemplateSimpleScreenViewModel did complete with result: \(result).")
self.completion?(result)
MXLog.debug("[TemplateSimpleScreenCoordinator] TemplateSimpleScreenViewModel did complete with result: \(action).")
switch action {
case .accept:
self.callback?(.accept)
case .cancel:
self.callback?(.cancel)
}
}
}

View File

@@ -47,7 +47,7 @@ extension TemplateSimpleScreenPromptType: Identifiable, CaseIterable {
// MARK: View model
enum TemplateSimpleScreenViewModelResult {
enum TemplateSimpleScreenViewModelAction {
case accept
case cancel
}

View File

@@ -26,7 +26,7 @@ class TemplateSimpleScreenViewModel: TemplateSimpleScreenViewModelType, Template
// MARK: Public
var completion: ((TemplateSimpleScreenViewModelResult) -> Void)?
var callback: ((TemplateSimpleScreenViewModelAction) -> Void)?
// MARK: - Setup
@@ -39,9 +39,9 @@ class TemplateSimpleScreenViewModel: TemplateSimpleScreenViewModelType, Template
override func process(viewAction: TemplateSimpleScreenViewAction) async {
switch viewAction {
case .accept:
completion?(.accept)
callback?(.accept)
case .cancel:
completion?(.cancel)
callback?(.cancel)
case .incrementCount:
state.count += 1
case .decrementCount:

View File

@@ -18,6 +18,6 @@ import Foundation
@MainActor
protocol TemplateSimpleScreenViewModelProtocol {
var completion: ((TemplateSimpleScreenViewModelResult) -> Void)? { get set }
var callback: ((TemplateSimpleScreenViewModelAction) -> Void)? { get set }
var context: TemplateSimpleScreenViewModelType.Context { get }
}