yattee/Model/MenuModel.swift

22 lines
575 B
Swift
Raw Permalink Normal View History

2021-11-08 23:14:28 +00:00
import Combine
import Foundation
final class MenuModel: ObservableObject {
static let shared = MenuModel()
2021-11-08 23:14:28 +00:00
private var cancellables = [AnyCancellable]()
init() {
registerChildModel(AccountsModel.shared)
registerChildModel(NavigationModel.shared)
registerChildModel(PlayerModel.shared)
}
2021-11-08 23:14:28 +00:00
func registerChildModel<T: ObservableObject>(_ model: T?) {
guard !model.isNil else {
return
}
cancellables.append(model!.objectWillChange.sink { [weak self] _ in self?.objectWillChange.send() })
}
}