|
- 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,
- _ id: String? = nil
- ) {
- var ka = textApp
- var ku = textUI
- if let id {
- ka = ka + id
- ku = ku + id
- }
-
- Bus.sendSync(
- ku,
- $v
- .removeDuplicates()
- .compactMap(onlyUIText)
- .eraseToAnyPublisher(),
- &subscriptions
- )
-
- Bus.receiveSync(
- [ka],
- { [weak self] (_, v: String) in self?.v = "a:\(v)" },
- &subscriptions
- )
- }
- }
- }
|