summaryrefslogtreecommitdiff
path: root/Rune/ViewModels/SettingsViewModel.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-13 22:37:22 -0500
committerChristian Cleberg <[email protected]>2026-04-13 22:37:22 -0500
commit5dcfe0f147c7871eaf5f3a88bd9e9fded38d4633 (patch)
tree6bcbda4f02a131d3e3b870a3904ccd42f4af2f26 /Rune/ViewModels/SettingsViewModel.swift
parentfcf864a15b70e4ecb5bd789b1db3116221c34394 (diff)
downloadrune-1.2.0.tar.gz
rune-1.2.0.tar.bz2
rune-1.2.0.zip
v1.2.0 domain management and wallet expansionv1.2.0
Complete v1.1-aligned domain flows with forwards and glue CRUD, improve API payload resilience, and add wallet transaction/payment views. Harden error handling and UX states across domain screens, remove out-of-scope DNSSEC/renewal record flows for now, and keep auth/session behavior aligned with token-based usage.
Diffstat (limited to 'Rune/ViewModels/SettingsViewModel.swift')
-rw-r--r--Rune/ViewModels/SettingsViewModel.swift20
1 files changed, 14 insertions, 6 deletions
diff --git a/Rune/ViewModels/SettingsViewModel.swift b/Rune/ViewModels/SettingsViewModel.swift
index 6b773eb..c253ab8 100644
--- a/Rune/ViewModels/SettingsViewModel.swift
+++ b/Rune/ViewModels/SettingsViewModel.swift
@@ -83,12 +83,12 @@ final class SettingsViewModel: ObservableObject {
}
}
- func logout() throws {
+ func logout() async throws {
+ if let client {
+ try await client.logout()
+ }
try keychainManager.deleteToken()
- client = nil
- balance = nil
- isAuthenticated = false
- errorMessage = nil
+ clearLocalSession()
}
func logoutIfCurrentTokenDeleted(_ key: String) throws -> Bool {
@@ -96,7 +96,15 @@ final class SettingsViewModel: ObservableObject {
return false
}
- try logout()
+ try keychainManager.deleteToken()
+ clearLocalSession()
return true
}
+
+ private func clearLocalSession() {
+ client = nil
+ balance = nil
+ isAuthenticated = false
+ errorMessage = nil
+ }
}