d
This commit is contained in:
@@ -1,4 +1,18 @@
|
||||
extension Bus {
|
||||
public extension Bus {
|
||||
/// Пропускаем далее предоставленный ключ.
|
||||
static func convertKeyValue<T>(
|
||||
_ key: String,
|
||||
_ v: (key: String, value: Any)
|
||||
) -> (String, T)? {
|
||||
guard
|
||||
key == v.key,
|
||||
let value = v.value as? T
|
||||
else {
|
||||
return nil
|
||||
}
|
||||
return (key, value)
|
||||
}
|
||||
|
||||
/// Пропускаем далее предоставленные ключи.
|
||||
static func convertKeyValue<T>(
|
||||
_ keys: Set<String>,
|
||||
|
||||
@@ -7,6 +7,10 @@ public extension Bus {
|
||||
enum Option {
|
||||
case async
|
||||
}
|
||||
|
||||
static var events: AnyPublisher<(key: String, value: Any), Never> {
|
||||
Service.singleton.events.eraseToAnyPublisher()
|
||||
}
|
||||
}
|
||||
|
||||
extension Bus {
|
||||
|
||||
@@ -87,7 +87,10 @@ extension MeetupId {
|
||||
ctrl.pipeValue(
|
||||
dbg: "textA",
|
||||
sub: nil,
|
||||
K.meetupIdTextApp.eraseToAnyPublisher(),
|
||||
Bus.events
|
||||
.compactMap { Bus.convertKeyValue(K.meetupIdTextApp.rawValue, $0) }
|
||||
.map { (k: String, v: String) -> String in v }
|
||||
.eraseToAnyPublisher(),
|
||||
{
|
||||
$0.textApp.value = $1
|
||||
$0.textApp.isRecent = true
|
||||
@@ -100,7 +103,10 @@ extension MeetupId {
|
||||
ctrl.pipeValue(
|
||||
dbg: "textUI",
|
||||
sub: nil,
|
||||
K.meetupIdTextUI.eraseToAnyPublisher(),
|
||||
Bus.events
|
||||
.compactMap { Bus.convertKeyValue(K.meetupIdTextUI.rawValue, $0) }
|
||||
.map { (k: String, v: String) -> String in v }
|
||||
.eraseToAnyPublisher(),
|
||||
{
|
||||
$0.textUI.value = $1
|
||||
$0.textUI.isRecent = true
|
||||
|
||||
Reference in New Issue
Block a user