Проверка шаблона шины для iOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MeetupId.V.swift 1.2KB

1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
1 anno fa
123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import BusX
  2. import SwiftUI
  3. extension MeetupId {
  4. public struct V: View {
  5. @StateObject var isJoinAvailable = BusUI.Value(K.isJoinAvailable, false)
  6. @StateObject var isLoading = BusUI.Value(K.isLoading, false)
  7. @StateObject var join = BusUI.Button(K.join)
  8. @StateObject var textField = BusUI.TextField(K.textApp, K.textUI)
  9. public init() {
  10. }
  11. public var body: some View {
  12. VStack(spacing: 8) {
  13. HStack {
  14. TextField("Binding-3", value: $textField.v, formatter: BusUI.TextFieldSource())
  15. .disabled(isLoading.v)
  16. .padding(8)
  17. .border(
  18. !isLoading.v ? Color.black : Color.gray,
  19. width: !isLoading.v ? 2 : 1
  20. )
  21. if isLoading.v {
  22. ProgressView()
  23. .padding(8)
  24. }
  25. }
  26. Button(action: join.v.send) {
  27. Text("Join")
  28. .padding(8)
  29. .border(
  30. isJoinAvailable.v ? Color.green : Color.gray,
  31. width: isJoinAvailable.v ? 2 : 1
  32. )
  33. }
  34. .disabled(!isJoinAvailable.v)
  35. }
  36. .frame(width: 320)
  37. .padding()
  38. .animation(.easeInOut(duration: 0.3))
  39. }
  40. }
  41. }