This commit is contained in:
Михаил Капелько
2024-02-09 08:23:45 +03:00
parent 4bb34d212a
commit b63dbd4aab

View File

@@ -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 }