feat(ManaAccountView): onDeleted-Callback nach Konto-Löschung
Optionaler async-Callback, der nach erfolgreicher Account-Löschung läuft — für App-lokalen Cleanup (z.B. wordeck wischt SwiftData-Cache, DSGVO: anderer User am selben Gerät). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1a491c3358
commit
0b276fe903
1 changed files with 7 additions and 1 deletions
|
|
@ -61,6 +61,7 @@ public struct ManaAccountView<Extra: View>: View {
|
|||
private let config: Config
|
||||
private let onSignIn: () -> Void
|
||||
private let onSignOut: () async -> Void
|
||||
private let onDeleted: (() async -> Void)?
|
||||
private let extra: () -> Extra
|
||||
|
||||
@State private var showChangeEmail = false
|
||||
|
|
@ -78,12 +79,14 @@ public struct ManaAccountView<Extra: View>: View {
|
|||
config: Config = .init(),
|
||||
onSignIn: @escaping () -> Void,
|
||||
onSignOut: (() async -> Void)? = nil,
|
||||
onDeleted: (() async -> Void)? = nil,
|
||||
@ViewBuilder extra: @escaping () -> Extra = { EmptyView() }
|
||||
) {
|
||||
self.auth = auth
|
||||
self.config = config
|
||||
self.onSignIn = onSignIn
|
||||
self.onSignOut = onSignOut ?? { await auth.signOut() }
|
||||
self.onDeleted = onDeleted
|
||||
self.extra = extra
|
||||
}
|
||||
|
||||
|
|
@ -119,7 +122,10 @@ public struct ManaAccountView<Extra: View>: View {
|
|||
ManaChangePasswordView(auth: auth, onDone: { showChangePassword = false })
|
||||
}
|
||||
.sheet(isPresented: $showDeleteAccount) {
|
||||
ManaDeleteAccountView(auth: auth, onDone: { showDeleteAccount = false })
|
||||
ManaDeleteAccountView(auth: auth, onDone: {
|
||||
showDeleteAccount = false
|
||||
if let onDeleted { Task { await onDeleted() } }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue