29 lines
1.0 KiB
Swift
29 lines
1.0 KiB
Swift
/*
|
|
Copyright 2021-2024 New Vector Ltd.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
Please see LICENSE in the repository root for full details.
|
|
*/
|
|
|
|
import Foundation
|
|
|
|
protocol TemplateScreenViewModelViewDelegate: AnyObject {
|
|
func templateScreenViewModel(_ viewModel: TemplateScreenViewModelProtocol, didUpdateViewState viewSate: TemplateScreenViewState)
|
|
}
|
|
|
|
protocol TemplateScreenViewModelCoordinatorDelegate: AnyObject {
|
|
func templateScreenViewModel(_ viewModel: TemplateScreenViewModelProtocol, didCompleteWithUserDisplayName userDisplayName: String?)
|
|
func templateScreenViewModelDidCancel(_ viewModel: TemplateScreenViewModelProtocol)
|
|
}
|
|
|
|
/// Protocol describing the view model used by `TemplateScreenViewController`
|
|
protocol TemplateScreenViewModelProtocol {
|
|
|
|
var viewDelegate: TemplateScreenViewModelViewDelegate? { get set }
|
|
var coordinatorDelegate: TemplateScreenViewModelCoordinatorDelegate? { get set }
|
|
|
|
func process(viewAction: TemplateScreenViewAction)
|
|
|
|
var viewState: TemplateScreenViewState { get }
|
|
}
|