Михаил Капелько 10 miesięcy temu
rodzic
commit
1f501d8276
2 zmienionych plików z 49 dodań i 19 usunięć
  1. +49
    -0
      Modules/BusX/BusUI/src/BusUI.ManyTextField.swift
  2. +0
    -19
      Modules/BusX/BusUI/src/BusUI.TextField.swift

+ 49
- 0
Modules/BusX/BusUI/src/BusUI.ManyTextField.swift Wyświetl plik

@@ -0,0 +1,49 @@
import Combine
import SwiftUI

extension BusUI {
public final class ManyTextField: ObservableObject {
let textApp: String
let textUI: String
@Published public var id: String?
@Published public var v = "a:"
var subscriptions = [AnyCancellable]()
var sub = [AnyCancellable]()
public init(
_ textApp: String,
_ textUI: String
) {
self.textApp = textApp
self.textUI = textUI
/**///print("ИГР BusUTF(\(Unmanaged.passUnretained(self).toOpaque())).init textA/textU: '\(textApp)'/'\(textUI)'")

$id
.sink { [weak self] v in self?.setup(v) }
.store(in: &sub)
}

private func setup(_ id: String?) {
/**/print("ИГР BusUTF(\(Unmanaged.passUnretained(self).toOpaque())).setup id: '\(id)'")

subscriptions = []

Bus.sendSync(
textUI,
$v
.removeDuplicates()
.compactMap(onlyUIText)
.compactMap { .... + id? }
.eraseToAnyPublisher(),
&subscriptions
)
Bus.receiveSync(
[textApp],
{ [weak self] (_, v: String) in self?.v = "a:\(v)" },
&subscriptions
)
}
}
}

+ 0
- 19
Modules/BusX/BusUI/src/BusUI.TextField.swift Wyświetl plik

@@ -3,32 +3,13 @@ import SwiftUI

extension BusUI {
public final class TextField: ObservableObject {
let textApp: String
let textUI: String
@Published public var id: String?
@Published public var v = "a:"
var subscriptions = [AnyCancellable]()
var sub = [AnyCancellable]()
public init(
_ textApp: String,
_ textUI: String
) {
self.textApp = textApp
self.textUI = textUI
/**///print("ИГР BusUTF(\(Unmanaged.passUnretained(self).toOpaque())).init textA/textU: '\(textApp)'/'\(textUI)'")

$id
.sink { [weak self] v in self?.setup(v) }
.store(in: &sub)
}

private func setup(_ id: String?) {
/**/print("ИГР BusUTF(\(Unmanaged.passUnretained(self).toOpaque())).setup id: '\(id)'")

subscriptions = []

Bus.sendSync(
textUI,
$v


Ładowanie…
Anuluj
Zapisz