@@ -26,6 +26,7 @@ private enum FocusableField: Hashable {
2626@MainActor
2727public struct MFAEnrolmentView {
2828 @Environment ( AuthService . self) private var authService
29+ @Environment ( \. reportError) private var reportError
2930
3031 @State private var selectedFactorType : SecondFactorType = . sms
3132 @State private var phoneNumber = " "
@@ -81,12 +82,16 @@ public struct MFAEnrolmentView {
8182 isLoading = true
8283 defer { isLoading = false }
8384
84- let session = try await authService. startMfaEnrollment (
85- type: selectedFactorType,
86- accountName: authService. currentUser? . email,
87- issuer: authService. configuration. mfaIssuer
88- )
89- currentSession = session
85+ do {
86+ let session = try await authService. startMfaEnrollment (
87+ type: selectedFactorType,
88+ accountName: authService. currentUser? . email,
89+ issuer: authService. configuration. mfaIssuer
90+ )
91+ currentSession = session
92+ } catch {
93+ reportError ? ( error)
94+ }
9095 }
9196 }
9297
@@ -97,23 +102,27 @@ public struct MFAEnrolmentView {
97102 isLoading = true
98103 defer { isLoading = false }
99104
100- let fullPhoneNumber = selectedCountry. dialCode + phoneNumber
101- let verificationId = try await authService. sendSmsVerificationForEnrollment (
102- session: session,
103- phoneNumber: fullPhoneNumber
104- )
105- // Update session status
106- currentSession = EnrollmentSession (
107- id: session. id,
108- type: session. type,
109- session: session. session,
110- totpInfo: session. totpInfo,
111- phoneNumber: fullPhoneNumber,
112- verificationId: verificationId,
113- status: . verificationSent,
114- createdAt: session. createdAt,
115- expiresAt: session. expiresAt
116- )
105+ do {
106+ let fullPhoneNumber = selectedCountry. dialCode + phoneNumber
107+ let verificationId = try await authService. sendSmsVerificationForEnrollment (
108+ session: session,
109+ phoneNumber: fullPhoneNumber
110+ )
111+ // Update session status
112+ currentSession = EnrollmentSession (
113+ id: session. id,
114+ type: session. type,
115+ session: session. session,
116+ totpInfo: session. totpInfo,
117+ phoneNumber: fullPhoneNumber,
118+ verificationId: verificationId,
119+ status: . verificationSent,
120+ createdAt: session. createdAt,
121+ expiresAt: session. expiresAt
122+ )
123+ } catch {
124+ reportError ? ( error)
125+ }
117126 }
118127 }
119128
@@ -124,18 +133,22 @@ public struct MFAEnrolmentView {
124133 isLoading = true
125134 defer { isLoading = false }
126135
127- let code = session. type == . sms ? verificationCode : totpCode
128- try await authService. completeEnrollment (
129- session: session,
130- verificationId: session. verificationId,
131- verificationCode: code,
132- displayName: displayName
133- )
134-
135- // Reset form state on success
136- resetForm ( )
137-
138- authService. navigator. clear ( )
136+ do {
137+ let code = session. type == . sms ? verificationCode : totpCode
138+ try await authService. completeEnrollment (
139+ session: session,
140+ verificationId: session. verificationId,
141+ verificationCode: code,
142+ displayName: displayName
143+ )
144+
145+ // Reset form state on success
146+ resetForm ( )
147+
148+ authService. navigator. clear ( )
149+ } catch {
150+ reportError ? ( error)
151+ }
139152 }
140153 }
141154
0 commit comments