This commit is contained in:
Михаил Капелько
2024-01-06 18:35:45 +03:00
parent f3807b76f6
commit 676a1ada17
7 changed files with 24 additions and 70 deletions

View File

@@ -45,13 +45,12 @@ public extension Bus {
_ subscriptions: inout [AnyCancellable]
) {
node
.sink { v in send(key, v) }
.sink { v in e.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,17 +5,9 @@ extension BusUI {
public let v = PassthroughSubject<Void, Never>()
var subscriptions = [AnyCancellable]()
public init(
_ key: String,
_ id: String? = nil
) {
var k = key
if let id {
k = k + id
}
public init(_ key: String) {
Bus.sendSync(
k,
key,
v.map { true }.eraseToAnyPublisher(),
&subscriptions
)

View File

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

View File

@@ -7,18 +7,11 @@ extension BusUI {
public init(
_ key: String,
_ defaultValue: T,
_ id: String? = nil
_ defaultValue: T
) {
v = defaultValue
var k = key
if let id {
k = k + id
}
Bus.receiveSync(
[k],
[key],
{ [weak self] (_, v: T) in self?.v = v },
&subscriptions
)