This commit is contained in:
Михаил Капелько
2024-01-06 18:31:59 +03:00
parent 56512ca26a
commit f3807b76f6
5 changed files with 29 additions and 10 deletions

View File

@@ -45,12 +45,13 @@ public extension Bus {
_ subscriptions: inout [AnyCancellable]
) {
node
.sink { v in e.send((key, v)) }
.sink { v in send(key, v) }
.store(in: &subscriptions)
}
/// Единоразово синхронно отправляем событие в шину.
static func send(_ key: String, _ value: Any) {
/**/print("ИГР Bus.send k/v: '\(key)'/'\(value)'")
e.send((key, value))
}
}

View File

@@ -5,9 +5,17 @@ extension BusUI {
public let v = PassthroughSubject<Void, Never>()
var subscriptions = [AnyCancellable]()
public init(_ key: String) {
public init(
_ key: String,
_ id: String? = nil
) {
var k = key
if let id {
k = k + id
}
Bus.sendSync(
key,
k,
v.map { true }.eraseToAnyPublisher(),
&subscriptions
)

View File

@@ -8,10 +8,18 @@ extension BusUI {
public init(
_ textApp: String,
_ textUI: String
_ textUI: String,
_ id: String? = nil
) {
var ka = textApp
var ku = textUI
if let id {
ka = ka + id
ku = ku + id
}
Bus.sendSync(
textUI,
ku,
$v
.removeDuplicates()
.compactMap(onlyUIText)
@@ -20,7 +28,7 @@ extension BusUI {
)
Bus.receiveSync(
[textApp],
[ka],
{ [weak self] (_, v: String) in self?.v = "a:\(v)" },
&subscriptions
)

View File

@@ -1,3 +1,5 @@
import BusX
extension MeetupId {
final class Component: ObservableObject {
var isJoinAvailable: BusUI.Value<Bool>
@@ -13,8 +15,8 @@ extension MeetupId {
/**/print("ИГР MeetupIC.init")
isJoinAvailable = .init(K.isJoinAvailable, false, id)
isLoading = .init(K.isLoading, false, id)
join = .init(K.join)
textField = .init(K.textApp, K.textUI)
join = .init(K.join, id)
textField = .init(K.textApp, K.textUI, id)
}
}
}