From cb527c2154f60cfa873ba557bcf942da13d8e1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Wed, 10 Jan 2024 10:38:45 +0300 Subject: [PATCH] d --- Modules/MPAKX/src/MPAK.Many.swift | 2 + Modules/MeetupIdX/MeetupId.yml | 4 +- Modules/MeetupIdX/src/MeetupId.Shoulds.swift | 52 ++++++++++++++++++-- 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/Modules/MPAKX/src/MPAK.Many.swift b/Modules/MPAKX/src/MPAK.Many.swift index 8b8241b..ad7220b 100644 --- a/Modules/MPAKX/src/MPAK.Many.swift +++ b/Modules/MPAKX/src/MPAK.Many.swift @@ -3,6 +3,8 @@ extension MPAK { public var keys: Set public var dict: [String: T] + public var isRecent: Bool { !keys.isEmpty } + public init( _ keys: Set = [], _ dict: [String: T] = [:] diff --git a/Modules/MeetupIdX/MeetupId.yml b/Modules/MeetupIdX/MeetupId.yml index ad8e58d..4b4bde0 100644 --- a/Modules/MeetupIdX/MeetupId.yml +++ b/Modules/MeetupIdX/MeetupId.yml @@ -12,9 +12,9 @@ service: busModel pipes: finishLoading: [toggle, K.finishLoading] - isLoading: [recent, K.isLoading] + isLoading: [many, K.isLoading] join: [toggle, K.join] - textUI: [recent, K.textUI] + textUI: [many, K.textUI] testTextUI: [many, K.testTextUI] world: diff --git a/Modules/MeetupIdX/src/MeetupId.Shoulds.swift b/Modules/MeetupIdX/src/MeetupId.Shoulds.swift index a273269..faba1c0 100644 --- a/Modules/MeetupIdX/src/MeetupId.Shoulds.swift +++ b/Modules/MeetupIdX/src/MeetupId.Shoulds.swift @@ -2,6 +2,7 @@ import Foundation import MPAKX public extension MeetupId { + /* static func shouldEnableJoin(_ c: MeetupIdContext) -> Bool? { guard !c.isLoading.value else { return nil } @@ -25,6 +26,47 @@ public extension MeetupId { return nil } + */ + + static func shouldManyEnableJoin(_ c: MeetupIdContext) -> MPAK.Many? { + var d = [String: Bool]() + + // TODO: Когда копировать dict isLoading? + + if c.textUI.isRecent { + for id in c.textUI.keys { + guard + c.isLoading.dict[id] == nil + let text = c.testTextUI.dict[id] + else { + continue + } + let sid = formatId(text) + d[id] = sid.count > 2 + } + if !d.isEmpty { + return .init(Set(d.keys), d) + } + } + /* + + if c.join, + !c.isLoading.value + { + return false + } + + if + c.isLoading.isRecent, + !c.isLoading.value + !c.isLoading.value + { + return true + } + */ + + return nil + } /* static func shouldFinishLoading(_ c: MeetupIdContext) -> Bool? { @@ -38,6 +80,10 @@ public extension MeetupId { } */ +/* + +это ещё конвертнуть надо в Many + static func shouldResetLoading(_ c: MeetupIdContext) -> Bool? { if c.join, @@ -55,6 +101,7 @@ public extension MeetupId { return nil } + */ /* static func shouldResetText(_ c: MeetupIdContext) -> String? { @@ -63,11 +110,9 @@ public extension MeetupId { } */ - // MARK: - Many static func shouldManyFinishLoading(_ c: MeetupIdContext) -> MPAK.Many? { - guard !c.isLoading.keys.isEmpty else { return nil } + guard c.isLoading.isRecent else { return nil } var keys = Set() - var d = [String: Bool]() for id in c.isLoading.keys { if let isLoading = c.isLoading.dict[id], @@ -76,6 +121,7 @@ public extension MeetupId { keys.insert(id) } } + let d = [String: Bool]() return MPAK.Many(keys, d) }