Newer
Older
@Dependency var messenger: Messenger
@KeyObject(.username, defaultValue: nil) var username: String?
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
let fact = Fact(fact: username!, type: FactType.username.rawValue)
try messenger.ud.get()!.permanentDeleteAccount(username: fact)
try messenger.destroy()
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)))
}
}
}
}