-
Notifications
You must be signed in to change notification settings - Fork 491
Expand file tree
/
Copy pathSignedInView.swift
More file actions
53 lines (49 loc) · 1.33 KB
/
SignedInView.swift
File metadata and controls
53 lines (49 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import SwiftUI
@MainActor
public struct SignedInView {
@Environment(AuthService.self) private var authService
}
extension SignedInView: View {
private var isShowingPasswordPrompt: Binding<Bool> {
Binding(
get: { authService.passwordPrompt.isPromptingPassword },
set: { authService.passwordPrompt.isPromptingPassword = $0 }
)
}
public var body: some View {
if authService.authView == .updatePassword {
UpdatePasswordView()
} else {
VStack {
Text("Signed in")
Text("User: \(authService.currentUser?.email ?? "Unknown")")
if authService.currentUser?.isEmailVerified == false {
VerifyEmailView()
}
Divider()
Button("Update password") {
authService.authView = .updatePassword
}
Divider()
Button("Sign out") {
Task {
do {
try await authService.signOut()
} catch {}
}
}
Divider()
Button("Delete account") {
Task {
do {
try await authService.deleteUser()
} catch {}
}
}
Text(authService.errorMessage).foregroundColor(.red)
}.sheet(isPresented: isShowingPasswordPrompt) {
PasswordPromptSheet(coordinator: authService.passwordPrompt)
}
}
}
}