Михаил Капелько 10 months ago
parent
commit
f983eb9f57
3 changed files with 24 additions and 12 deletions
  1. +0
    -5
      Modules/MeetupIdX/src/MeetupId.Aux.swift
  2. +15
    -0
      Modules/MeetupIdX/src/MeetupId.Shoulds.swift
  3. +9
    -7
      Modules/MeetupIdX/src/MeetupId.V.swift

+ 0
- 5
Modules/MeetupIdX/src/MeetupId.Aux.swift View File

@@ -1,11 +1,6 @@
import Foundation

public extension MeetupId {
static func finishLoading(_ isLoading: Bool) -> Bool? {
guard isLoading else { return nil }
return true
}

static func formatId(_ s: String) -> String? {
let digits = s.components(separatedBy: NSCharacterSet.decimalDigits.inverted).reduce("") { $0 + $1 }
var r = ""


+ 15
- 0
Modules/MeetupIdX/src/MeetupId.Shoulds.swift View File

@@ -25,6 +25,16 @@ public extension MeetupId {
return nil
}

static func shouldFinishLoading(_ c: MeetupIdContext) -> Bool? {
guard
c.isLoading.isRecent,
c.isLoading.value
else {
return nil
}
return true
}

static func shouldResetLoading(_ c: MeetupIdContext) -> Bool? {
if
c.join,
@@ -42,4 +52,9 @@ public extension MeetupId {

return nil
}

static func shouldResetText(_ c: MeetupIdContext) -> String? {
guard c.textUI.isRecent else { return nil }
return formatId(c.textUI.value)
}
}

+ 9
- 7
Modules/MeetupIdX/src/MeetupId.V.swift View File

@@ -7,14 +7,16 @@ extension MeetupId {
@StateObject var isLoading = BusUI.Value(K.isLoading, false)
@StateObject var join = BusUI.Button(K.join)
@StateObject var textField = BusUI.TextField(K.textApp, K.textUI)
let processors: [Any] = [
Bus.Debounce(formatId, 0.2, K.textUI, K.textApp),
Bus.Delay(finishLoading, 5, K.isLoading, K.finishLoading),
Bus.Sync(shouldEnableJoin, K.M, K.isJoinAvailable),
Bus.Sync(shouldResetLoading, K.M, K.isLoading)
]
let processors: [Any]
public init() { }
public init() {
processors = [
Bus.Debounce(shouldResetText, 0.2, K.M, K.textApp),
Bus.Delay(shouldFinishLoading, 5, K.M, K.finishLoading),
Bus.Sync(shouldEnableJoin, K.M, K.isJoinAvailable),
Bus.Sync(shouldResetLoading, K.M, K.isLoading)
]
}
public var body: some View {
VStack(spacing: 8) {


Loading…
Cancel
Save