#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:
committed by
Stefan Ceriu
parent
608e679723
commit
c04e3452ba
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ extension TemplateSimpleScreenPromptType: Identifiable, CaseIterable {
|
||||
|
||||
// MARK: View model
|
||||
|
||||
enum TemplateSimpleScreenViewModelResult {
|
||||
enum TemplateSimpleScreenViewModelAction {
|
||||
case accept
|
||||
case cancel
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user