d
This commit is contained in:
@@ -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 = ""
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
let processors: [Any]
|
||||
|
||||
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 init() { }
|
||||
}
|
||||
|
||||
public var body: some View {
|
||||
VStack(spacing: 8) {
|
||||
|
||||
Reference in New Issue
Block a user