This commit is contained in:
Михаил Капелько
2024-01-29 18:09:14 +03:00
parent a0f8e2d31e
commit 49cee91239
106 changed files with 112 additions and 12 deletions

View File

@@ -1,4 +1,11 @@
public extension MicItem {
/// Следует задать активность элемента
///
/// Условия:
/// 1. Пришла актуальная дата завершения активности
/// 2. Таймер сообщил о завершении активности
///
/// - Returns: Состояние активности элемента
static func shouldResetActivity(_ c: MicItemContext) -> Bool? {
if
c.activityDate.isRecent,
@@ -15,6 +22,12 @@ public extension MicItem {
return nil
}
/// Следует задать время истечения активности
///
/// Условия:
/// 1. Пришла актуальная дата завершения активности
///
/// - Returns: Время истечения активности
static func shouldResetTimeout(_ c: MicItemContext) -> TimeInterval? {
if
c.activityDate.isRecent,

View File

@@ -3,7 +3,7 @@ import SwiftUI
extension MicItem {
public struct V: View {
var id: String?
let id: String?
@StateObject var holder = BusUI.Holder()
@StateObject var isActive = BusUI.Value(K.isActive, false)
@@ -11,13 +11,12 @@ extension MicItem {
self.id = id
}
func config(_ id: String? = nil) {
/**/print("ИГР MicIV.config id: '\(id)'")
func configure(_ id: String? = nil) {
isActive.id = id
holder.items = [
Bus.Delay(shouldResetTimeout, K.MI, K.timeout, id),
Bus.Sync(shouldResetActivity, K.MI, K.isActive, id),
MicItem.Controller(id)
MicItem.Controller(id),
]
// Запрашиваем актуальные данные при (пере)создании.
Bus.send(K.requestActivityDate, id)
@@ -31,8 +30,8 @@ extension MicItem {
width: isActive.v ? 3 : 1
)
.animation(.easeInOut(duration: 0.3))
.onAppear { self.config(id) }
.onChange(of: id) { id in self.config(id) }
.onAppear { self.configure(id) }
.onChange(of: id) { id in self.configure(id) }
}
}
}

View File

@@ -20,7 +20,6 @@ extension MicItem {
if let id {
sid = " : \(id)"
}
/**/print("MicIC.init\(sid)")
super.init(
MicItem.Model(),
debugClassName: "MicICtrl",