d
This commit is contained in:
@@ -16,6 +16,8 @@ extension BusUI {
|
||||
) {
|
||||
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) }
|
||||
|
||||
@@ -3,17 +3,25 @@ import SwiftUI
|
||||
|
||||
extension MeetupId {
|
||||
public struct TV: View {
|
||||
@StateObject var textField = BusUI.TextField(K.testTextApp, K.testTextUI)
|
||||
let id: String
|
||||
@StateObject var vm = TVM()
|
||||
|
||||
public init(_ id: String) {
|
||||
textField.id = id
|
||||
self.id = id
|
||||
}
|
||||
|
||||
public var body: some View {
|
||||
TextField("TV", value: $textField.v, formatter: BusUI.TextFieldSource())
|
||||
TextField("TV", value: vm.$textField.v, formatter: BusUI.TextFieldSource())
|
||||
.padding(8)
|
||||
.border(Color.blue)
|
||||
.animation(.easeInOut(duration: 0.3))
|
||||
.onAppear {
|
||||
vm.setup(id)
|
||||
}
|
||||
.onChange(of: id) { newValue in
|
||||
vm.setup(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
17
Modules/MeetupIdX/src/MeetupId.TVM.swift
Normal file
17
Modules/MeetupIdX/src/MeetupId.TVM.swift
Normal file
@@ -0,0 +1,17 @@
|
||||
import BusX
|
||||
|
||||
extension MeetupId {
|
||||
public final class VM: ObservableObject {
|
||||
let textField = BusUI.TextField(K.testTextApp, K.testTextUI)
|
||||
@Published public var id: String?
|
||||
var subscriptions = [AnyCancellable]()
|
||||
|
||||
public init() { }
|
||||
|
||||
public setup(_ id: String) {
|
||||
/**/print("ИГР MeetupIV(\(Unmanaged.passUnretained(self).toOpaque())).setup id: '\(id)'")
|
||||
textField.id = id
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user