d
This commit is contained in:
@@ -16,6 +16,8 @@ extension BusUI {
|
|||||||
) {
|
) {
|
||||||
self.textApp = textApp
|
self.textApp = textApp
|
||||||
self.textUI = textUI
|
self.textUI = textUI
|
||||||
|
|
||||||
|
/**/print("ИГР BusUTF(\(Unmanaged.passUnretained(self).toOpaque())).init textA/textU: '\(textApp)'/'\(textUI)'")
|
||||||
|
|
||||||
$id
|
$id
|
||||||
.sink { [weak self] v in self?.setup(v) }
|
.sink { [weak self] v in self?.setup(v) }
|
||||||
|
|||||||
@@ -3,17 +3,25 @@ import SwiftUI
|
|||||||
|
|
||||||
extension MeetupId {
|
extension MeetupId {
|
||||||
public struct TV: View {
|
public struct TV: View {
|
||||||
@StateObject var textField = BusUI.TextField(K.testTextApp, K.testTextUI)
|
let id: String
|
||||||
|
@StateObject var vm = TVM()
|
||||||
|
|
||||||
public init(_ id: String) {
|
public init(_ id: String) {
|
||||||
textField.id = id
|
self.id = id
|
||||||
}
|
}
|
||||||
|
|
||||||
public var body: some View {
|
public var body: some View {
|
||||||
TextField("TV", value: $textField.v, formatter: BusUI.TextFieldSource())
|
TextField("TV", value: vm.$textField.v, formatter: BusUI.TextFieldSource())
|
||||||
.padding(8)
|
.padding(8)
|
||||||
.border(Color.blue)
|
.border(Color.blue)
|
||||||
.animation(.easeInOut(duration: 0.3))
|
.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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -4,8 +4,7 @@ import UIKit
|
|||||||
|
|
||||||
struct Content: View {
|
struct Content: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
MeetupId.V()
|
//MeetupId.V()
|
||||||
Divider()
|
|
||||||
MeetupId.TV("uuid-1")
|
MeetupId.TV("uuid-1")
|
||||||
Divider()
|
Divider()
|
||||||
MeetupId.TV("uuid-2")
|
MeetupId.TV("uuid-2")
|
||||||
|
|||||||
Reference in New Issue
Block a user