meta/Sources/Model/Data Flow/StateManager.swift

39 lines
1.1 KiB
Swift

//
// StateManager.swift
// Meta
//
// Created by david-swift on 21.06.24.
//
import Foundation
/// This type manages view updates.
public enum StateManager {
/// Whether to block updates in general.
public static var blockUpdates = false
/// The application identifier.
static var appID: String?
/// The functions handling view updates.
static var updateHandlers: [(Bool) -> Void] = []
/// Update all of the views.
/// - Parameter force: Whether to force all views to update.
///
/// Nothing happens if ``StateManager/blockUpdates`` is true.
public static func updateViews(force: Bool = false) {
if !blockUpdates {
for handler in updateHandlers {
handler(force)
}
}
}
/// Add a handler that is called when the user interface should update.
/// - Parameter handler: The handler. The parameter defines whether the whole UI should be force updated.
static func addUpdateHandler(handler: @escaping (Bool) -> Void) {
updateHandlers.append(handler)
}
}