121 lines
2.5 KiB
Swift
121 lines
2.5 KiB
Swift
// ВНИМАНИЕ Сгенерировано автоматом из файла MeetupId.yml
|
||
// ВНИМАНИЕ Не менять руками!
|
||
|
||
import AELog
|
||
import BusX
|
||
import Combine
|
||
import CordX
|
||
import Foundation
|
||
import MPAKX
|
||
import UIKit
|
||
|
||
// MARK: - Context
|
||
|
||
public protocol MeetupIdContext {
|
||
var textApp: MPAK.Recent<String> { get }
|
||
var textUI: MPAK.Recent<String> { get }
|
||
}
|
||
|
||
// MARK: - Controller
|
||
|
||
extension MeetupId {
|
||
final class Controller: MPAK.Controller<MeetupId.Model> {
|
||
init() {
|
||
super.init(
|
||
MeetupId.Model(),
|
||
debugClassName: "MeetupICtrl",
|
||
debugLog: { aelog($0) }
|
||
)
|
||
}
|
||
}
|
||
|
||
|
||
|
||
// MARK: - Model
|
||
|
||
public struct Model: MeetupIdContext {
|
||
public var textApp: MPAK.Recent<String> = .init("")
|
||
public var textUI: MPAK.Recent<String> = .init("")
|
||
}
|
||
|
||
// MARK: - Service
|
||
|
||
public final class Service {
|
||
let ctrl = Controller()
|
||
let world: World
|
||
|
||
var subscriptions = [AnyCancellable]()
|
||
static private(set) weak var singleton: Service?
|
||
|
||
public init(_ world: World) {
|
||
self.world = world
|
||
Self.singleton = self
|
||
SectionGenerated.setupPlatform(ctrl, self, world)
|
||
}
|
||
}
|
||
|
||
// MARK: - World
|
||
|
||
public struct World {
|
||
let textApp = PassthroughSubject<String, Never>()
|
||
let textUI = PassthroughSubject<String, Never>()
|
||
|
||
public init(
|
||
|
||
) {
|
||
|
||
}
|
||
}
|
||
|
||
enum SectionGenerated {
|
||
|
||
|
||
|
||
// MARK: - SectionGenerated Service
|
||
|
||
static func setupPlatform(
|
||
_ ctrl: Controller,
|
||
_ service: Service,
|
||
_ world: World
|
||
) {
|
||
// MARK: - SectionGenerated Service Actions
|
||
|
||
ctrl.m
|
||
.sink { v in Bus.send("MeetupId", v) }
|
||
.store(in: &service.subscriptions)
|
||
|
||
|
||
// MARK: - SectionGenerated Service Pipes
|
||
|
||
ctrl.pipeValue(
|
||
dbg: "textA",
|
||
sub: nil,
|
||
Bus.events.compactMap { Bus.convertKeyValue(K.meetupIdTextApp.rawValue, $0) }.map { (k: String, v: String) in v }.eraseToAnyPublisher().eraseToAnyPublisher(),
|
||
{
|
||
$0.textApp.value = $1
|
||
$0.textApp.isRecent = true
|
||
},
|
||
{ m, _ in m.textApp.isRecent = false }
|
||
)
|
||
|
||
|
||
|
||
ctrl.pipeValue(
|
||
dbg: "textUI",
|
||
sub: nil,
|
||
Bus.events.compactMap { Bus.convertKeyValue(K.meetupIdTextUI.rawValue, $0) }.map { (k: String, v: String) in v }.eraseToAnyPublisher().eraseToAnyPublisher(),
|
||
{
|
||
$0.textUI.value = $1
|
||
$0.textUI.isRecent = true
|
||
},
|
||
{ m, _ in m.textUI.isRecent = false }
|
||
)
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
}
|
||
}
|