From a0f8e2d31effbbe4c146f2de583d1ea40a70d2c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Mon, 29 Jan 2024 17:46:54 +0300 Subject: [PATCH] d --- Modules/MicX/MicItem/src/MicItem.V.swift | 41 +++++++++--------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/Modules/MicX/MicItem/src/MicItem.V.swift b/Modules/MicX/MicItem/src/MicItem.V.swift index 7bc7475..7d9ecb7 100644 --- a/Modules/MicX/MicItem/src/MicItem.V.swift +++ b/Modules/MicX/MicItem/src/MicItem.V.swift @@ -4,14 +4,25 @@ import SwiftUI extension MicItem { public struct V: View { var id: String? - @StateObject var h = BusUI.Holder() + @StateObject var holder = BusUI.Holder() @StateObject var isActive = BusUI.Value(K.isActive, false) public init(_ id: String? = nil) { self.id = id - /**/print("ИГР MicIV.init id: '\(id)'") } - + + func config(_ id: String? = nil) { + /**/print("ИГР MicIV.config id: '\(id)'") + isActive.id = id + holder.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) + } + public var body: some View { Text("Mic activity") .padding(8) @@ -20,28 +31,8 @@ extension MicItem { width: isActive.v ? 3 : 1 ) .animation(.easeInOut(duration: 0.3)) - .onAppear { - /**/print("ИГР MicIV.onA id: '\(id)'") - 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) - } - .onChange(of: id) { newValue in - 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) - } + .onAppear { self.config(id) } + .onChange(of: id) { id in self.config(id) } } } }