Skip to content

Commit 7490aa2

Browse files
authored
fix: mfa enrollment qr integrate with continue method (#62)
1 parent e19e66c commit 7490aa2

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

react/src/__mocks__/@auth0/auth0-acul-react/mfa-push-enrollment-qr.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type {
1111
* This provides a single, type-safe object to control in our tests.
1212
*/
1313
export interface MockMfaPushEnrollmentQRInstance {
14+
continue: jest.Mock;
1415
pickAuthenticator: jest.Mock;
1516
screen: ScreenMembersOnMfaPushEnrollmentQr;
1617
transaction: TransactionMembers;
@@ -24,6 +25,7 @@ export interface MockMfaPushEnrollmentQRInstance {
2425
*/
2526
export const createMockMfaPushEnrollmentQRInstance =
2627
(): MockMfaPushEnrollmentQRInstance => ({
28+
continue: jest.fn(),
2729
pickAuthenticator: jest.fn(),
2830
screen: {
2931
name: "mfa-push-enrollment-qr",
@@ -98,6 +100,7 @@ export const pickAuthenticator =
98100

99101
export const useMfaPushEnrollmentQr = jest.fn(() => ({
100102
screen: mockMfaPushEnrollmentQRInstance.screen,
103+
continue: mockMfaPushEnrollmentQRInstance.continue,
101104
pickAuthenticator: mockMfaPushEnrollmentQRInstance.pickAuthenticator,
102105
}));
103106

react/src/screens/mfa-push-enrollment-qr/components/MfaPushEnrollmentQRForm.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,14 @@ import { ULThemeAlert, ULThemeAlertTitle } from "@/components/ULThemeError";
1414
import { useMfaPushEnrollmentQRManager } from "../hooks/useMfaPushEnrollmentQRManager";
1515

1616
function MfaPushEnrollmentQRForm() {
17-
const { data, texts, locales, enrolledFactors, handlePickAuthenticator } =
18-
useMfaPushEnrollmentQRManager();
17+
const {
18+
data,
19+
texts,
20+
locales,
21+
enrolledFactors,
22+
handlePickAuthenticator,
23+
handleContinueMfaPushEnrollmentQR,
24+
} = useMfaPushEnrollmentQRManager();
1925

2026
// Initialize the form using react-hook-form
2127
const form = useForm<CustomOptions>({});
@@ -40,6 +46,9 @@ function MfaPushEnrollmentQRForm() {
4046
// Automatically start polling when the page loads
4147
const { startPolling, stopPolling } = useMfaPolling({
4248
intervalMs: 3000,
49+
onCompleted: () => {
50+
handleContinueMfaPushEnrollmentQR();
51+
},
4352
onError: (error: unknown) =>
4453
console.error("Push Enrollment Polling error:", error),
4554
});

react/src/screens/mfa-push-enrollment-qr/hooks/useMfaPushEnrollmentQRManager.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
import {
77
CustomOptions,
88
MfaPushEnrollmentQrMembers,
9+
MfaPushEnrollmentQrWithRememberOptions,
910
ScreenMembersOnMfaPushEnrollmentQr,
1011
UserMembers,
1112
} from "@auth0/auth0-acul-react/types";
@@ -22,6 +23,15 @@ export const useMfaPushEnrollmentQRManager = () => {
2223
const { texts, data } = screen;
2324
const { enrolledFactors } = userInfo || {};
2425

26+
const handleContinueMfaPushEnrollmentQR = async (
27+
payload?: MfaPushEnrollmentQrWithRememberOptions
28+
): Promise<void> => {
29+
await executeSafely(
30+
`Continue MFA Push Enrollment QR with options: ${JSON.stringify(payload)}`,
31+
() => mfaPushEnrollmentQR.continue(payload)
32+
);
33+
};
34+
2535
const handlePickAuthenticator = async (
2636
payload?: CustomOptions
2737
): Promise<void> => {
@@ -37,6 +47,7 @@ export const useMfaPushEnrollmentQRManager = () => {
3747
enrolledFactors,
3848
mfaPushEnrollmentQR,
3949
handlePickAuthenticator,
50+
handleContinueMfaPushEnrollmentQR,
4051
texts: (texts || {}) as ScreenMembersOnMfaPushEnrollmentQr["texts"],
4152
};
4253
};

0 commit comments

Comments
 (0)