diff --git a/Modules/MicX/Mic/src/Mic.Shoulds.swift b/Modules/MicX/Mic/src/Mic.Shoulds.swift index 1791c67..bd35a11 100644 --- a/Modules/MicX/Mic/src/Mic.Shoulds.swift +++ b/Modules/MicX/Mic/src/Mic.Shoulds.swift @@ -3,7 +3,8 @@ public extension Mic { /// /// Условия: /// 1. Изменились даты активности - /// 2. Элемент запросил свою дату активности + /// 2. Элемент запросил свою дату активности при наличии валидной даты + /// 2. Элемент запросил свою дату активности без наличия валидной даты /// /// - Returns: Словарь состояний static func shouldDeliverActivityDates(_ c: MicContext) -> [String: Date]? { @@ -19,6 +20,10 @@ public extension Mic { return [id: timeout] } + if let id = c.requestActivityDate { + return [id: .distantPast] + } + return nil } diff --git a/Modules/MicX/MicItem/src/MicItem.V.swift b/Modules/MicX/MicItem/src/MicItem.V.swift index 6b31a90..7bc7475 100644 --- a/Modules/MicX/MicItem/src/MicItem.V.swift +++ b/Modules/MicX/MicItem/src/MicItem.V.swift @@ -28,10 +28,19 @@ extension MicItem { Bus.Sync(shouldResetActivity, K.MI, K.isActive, id), MicItem.Controller(id) ] - //Bus.send(K.requestActivityDate, id) + + Bus.send(K.requestActivityDate, id) } .onChange(of: id) { newValue in - isActive.id = newValue + let id = newValue + isActive.id = id + h.items = [ + Bus.Delay(shouldResetTimeout, K.MI, K.timeout, id), + Bus.Sync(shouldResetActivity, K.MI, K.isActive, id), + MicItem.Controller(id) + ] + + Bus.send(K.requestActivityDate, id) } } }