30 line
582 B
Swift
30 line
582 B
Swift
import Combine
|
|
import SwiftUI
|
|
|
|
extension BusUI {
|
|
public final class TextField: ObservableObject {
|
|
@Published public var v = "a:"
|
|
var subscriptions = [AnyCancellable]()
|
|
|
|
public init(
|
|
_ textApp: String,
|
|
_ textUI: String
|
|
) {
|
|
Bus.sendSync(
|
|
textUI,
|
|
$v
|
|
.removeDuplicates()
|
|
.compactMap(onlyUIText)
|
|
.eraseToAnyPublisher(),
|
|
&subscriptions
|
|
)
|
|
|
|
Bus.receiveSync(
|
|
[textApp],
|
|
{ [weak self] (_, v: String) in self?.v = "a:\(v)" },
|
|
&subscriptions
|
|
)
|
|
}
|
|
}
|
|
}
|