Newer
Older
import HUD
import Combine
import Integration
import Foundation
import DependencyInjection
final class AccountDeleteViewModel {
@Dependency private var session: SessionType
var deleting = false
var hud: AnyPublisher<HUDStatus, Never> { hudRelay.eraseToAnyPublisher() }
private let hudRelay = CurrentValueSubject<HUDStatus, Never>(.none)
func didTapDelete() {
guard deleting == false else { return }
deleting = true
DispatchQueue.main.async { [weak self] in
}
do {
try session.deleteMyself()
DependencyInjection.Container.shared.unregister(SessionType.self)
DispatchQueue.main.async { [weak self] in
self?.hudRelay.send(.error(.init(
content: "Now kill the app and re-open",
title: "Account deleted",
dismissable: false
)))
}
} catch {
DispatchQueue.main.async { [weak self] in
self?.hudRelay.send(.error(.init(with: error)))
}
}
}
}