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