This commit is contained in:
Михаил Капелько
2024-01-17 18:34:18 +03:00
parent a5bff85223
commit cca1543856
3 changed files with 17 additions and 2 deletions

View File

@@ -3,5 +3,6 @@ public extension Mic {
public static let activityDate = "Mic.activityDate" public static let activityDate = "Mic.activityDate"
public static let isActive = "Mic.isActive" public static let isActive = "Mic.isActive"
public static let MI = "Mic.Model.Item" public static let MI = "Mic.Model.Item"
public static let timeout = "Mic.timeout"
} }
} }

View File

@@ -10,4 +10,17 @@ public extension MicItem {
return nil return nil
} }
static func shouldResetTimeout(_ c: MicItemContext) -> (delay: Int, value: Bool)? {
if
c.activityDate.isRecent,
let end = c.activityDate.value
{
let now = Date()
let timeout = now < end
return (timeout, true)
}
return nil
}
} }

View File

@@ -5,11 +5,12 @@ extension MicItem {
public struct V: View { public struct V: View {
var id: String? var id: String?
@StateObject var isActive = BusUI.Value(K.isActive, false) @StateObject var isActive = BusUI.Value(K.isActive, false)
let processors: [Any] let proc: [Any]
public init(_ id: String? = nil) { public init(_ id: String? = nil) {
self.id = id self.id = id
self.processors = [ self.proc = [
Bus.DelayV(shouldResetTimeout, K.MI, K.timeout)
Bus.Sync(shouldResetActivity, K.MI, K.isActive), Bus.Sync(shouldResetActivity, K.MI, K.isActive),
MicItem.Controller() MicItem.Controller()
] ]