This commit is contained in:
Михаил Капелько
2024-01-08 18:12:59 +03:00
parent 567d322516
commit d2a948e7c7

View File

@@ -0,0 +1,35 @@
import Combine
extension BusUI {
public final class ManyButton: ObservableObject {
let key: String
public let v = PassthroughSubject<Void, Never>()
@Published public var id: String?
var sub = [AnyCancellable]()
var subscriptions = [AnyCancellable]()
public init(_ key: String) {
self.key = key
$id
.sink { [weak self] id in self?.setup(id) }
.store(in: &sub)
}
private func setup(_ id: String?) {
subscriptions = []
Bus.sendSync(
key,
v
.compactMap { v -> Any? in
guard let id else { return nil }
var d = [String: Bool]()
return MPAK.Many([id], d)
}
.eraseToAnyPublisher(),
&subscriptions
)
}
}
}