d
This commit is contained in:
@@ -4,7 +4,7 @@ public extension Mic {
|
|||||||
public static let activityDate = "Mic.activityDate"
|
public static let activityDate = "Mic.activityDate"
|
||||||
public static let activityDates = "Mic.activityDates"
|
public static let activityDates = "Mic.activityDates"
|
||||||
public static let isActive = "Mic.isActive"
|
public static let isActive = "Mic.isActive"
|
||||||
public static let MI = "MicItem.Model"
|
public static let MI = "MicItem"
|
||||||
public static let requestActivityDate = "Mic.requestActivityDate"
|
public static let requestActivityDate = "Mic.requestActivityDate"
|
||||||
public static let timeout = "Mic.timeout"
|
public static let timeout = "Mic.timeout"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
|
// ВНИМАНИЕ Сгенерировано автоматом из файла MicItem.yml
|
||||||
|
// ВНИМАНИЕ Не менять руками!
|
||||||
|
|
||||||
|
import AELog
|
||||||
import BusX
|
import BusX
|
||||||
|
import Combine
|
||||||
|
import Foundation
|
||||||
import MPAKX
|
import MPAKX
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
// MARK: - Context
|
||||||
|
|
||||||
public protocol MicItemContext {
|
public protocol MicItemContext {
|
||||||
var activityDate: MPAK.Recent<Date?> { get }
|
var activityDate: MPAK.Recent<Date?> { get }
|
||||||
@@ -7,13 +16,16 @@ public protocol MicItemContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extension MicItem {
|
extension MicItem {
|
||||||
|
|
||||||
|
// MARK: - Model
|
||||||
|
|
||||||
public struct Model: MicItemContext {
|
public struct Model: MicItemContext {
|
||||||
public var activityDate: MPAK.Recent<Date?> = .init(nil)
|
public var activityDate: MPAK.Recent<Date?> = .init(nil)
|
||||||
public var timeout: Bool = false
|
public var timeout: Bool = false
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
extension MicItem {
|
// MARK: - Controller
|
||||||
|
|
||||||
final class Controller: MPAK.Controller<MicItem.Model> {
|
final class Controller: MPAK.Controller<MicItem.Model> {
|
||||||
init(_ id: String? = nil) {
|
init(_ id: String? = nil) {
|
||||||
var sid = ""
|
var sid = ""
|
||||||
@@ -22,19 +34,17 @@ extension MicItem {
|
|||||||
}
|
}
|
||||||
super.init(
|
super.init(
|
||||||
MicItem.Model(),
|
MicItem.Model(),
|
||||||
debugClassName: "MicICtrl",
|
debugClassName: "MicItemCtrl",
|
||||||
debugLog: { print("\($0)\(sid)") }
|
debugLog: { aelog("\($0)\(sid)") }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Отправляем модель в Шину.
|
||||||
// Нижеследующее предстоит сгенерить.
|
|
||||||
m
|
m
|
||||||
.sink { v in Bus.send(Bus.keyId(K.MI, id), v) }
|
.sink { v in Bus.send(Bus.keyId("MicItem", id), v) }
|
||||||
.store(in: &subscriptions)
|
.store(in: &subscriptions)
|
||||||
|
|
||||||
pipeValue(
|
pipeValue(
|
||||||
dbg: "activityD",
|
dbg: "activityD",
|
||||||
sub: nil,
|
|
||||||
Bus.events.compactMap { Bus.convertKeyValue(Bus.keyId(K.activityDate, id), $0) }.map { (k: String, v: Date?) in v }.eraseToAnyPublisher(),
|
Bus.events.compactMap { Bus.convertKeyValue(Bus.keyId(K.activityDate, id), $0) }.map { (k: String, v: Date?) in v }.eraseToAnyPublisher(),
|
||||||
{
|
{
|
||||||
$0.activityDate.value = $1
|
$0.activityDate.value = $1
|
||||||
@@ -42,10 +52,8 @@ extension MicItem {
|
|||||||
},
|
},
|
||||||
{ m, _ in m.activityDate.isRecent = false }
|
{ m, _ in m.activityDate.isRecent = false }
|
||||||
)
|
)
|
||||||
|
|
||||||
pipe(
|
pipe(
|
||||||
dbg: "timeout",
|
dbg: "timeout",
|
||||||
sub: nil,
|
|
||||||
Bus.events.compactMap { Bus.convertKeyValue(Bus.keyId(K.timeout, id), $0) }.map { (k: String, v: Bool) in v }.eraseToAnyPublisher(),
|
Bus.events.compactMap { Bus.convertKeyValue(Bus.keyId(K.timeout, id), $0) }.map { (k: String, v: Bool) in v }.eraseToAnyPublisher(),
|
||||||
{ $0.timeout = true },
|
{ $0.timeout = true },
|
||||||
{ $0.timeout = false }
|
{ $0.timeout = false }
|
||||||
Reference in New Issue
Block a user