/
sberpay
/
AgeGate-iOS
Обзор
Документация
Войти
/
sberpay
/
AgeGate-iOS
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
develop
AgeGateSDK/KeyGen/AGTKeyGenAssembly.swift
53 строки
2 KB
SergeyGladkiy
[0.2.0] БДСЧ сценарий
30 июл 2026, 21:57
30 июл 2026, 21:57
cbcdfcb
Код
Авторство
О чём код?
// // AGTKeyGenAssembly.swift // AgeGateSDK // // Created by Гладкий Сергей Игоревич on 24.07.2026. // import UIKit /// Сборка сценария БДСЧ. Первый экран — компактная шторка онбординга, /// экран энтропии открывается отдельным полноэкранным контейнером, /// успех возвращается в исходную шторку. final class AGTKeyGenAssembly { private let windowManager: AGTWindowManager init(windowManager: AGTWindowManager) { self.windowManager = windowManager } @MainActor func start(from viewController: UIViewController?, completion: @escaping (AGTKeyGenResult) -> Void) { // Локальная ссылка: замыкания захватывают её, а не свойство класса, // поэтому [weak] работает без явного self. let windowManager = self.windowManager let router = AGTKeyGenRouteMap(windowManager: windowManager, completion: completion, onFinish: { [weak windowManager] in windowManager?.dismiss() }) let transition = AGTWrapInContainerTransition( windowManager: windowManager, on: viewController ) { container in /// Свайп вниз на онбординге = отказ, его надо донести до партнёра. container.onSwipeDismissed = { [weak windowManager] in completion(.cancelled) windowManager?.dismiss() } router.attach(container: container) } let presenter = AGTKeyGenOnboardingPresenter(router: router) let view = AGTKeyGenOnboardingVC(presenter: presenter) presenter.view = view transition.performTransition(for: view) } }