diff --git a/native/qr-code/qr-code-screen.react.js b/native/qr-code/qr-code-screen.react.js --- a/native/qr-code/qr-code-screen.react.js +++ b/native/qr-code/qr-code-screen.react.js @@ -42,21 +42,6 @@ const [qrData, setQRData] = React.useState(); - const logInSecondaryDevice = useSecondaryDeviceLogIn(); - const performRegistration = React.useCallback( - async (userID: string) => { - try { - await logInSecondaryDevice(userID); - } catch (err) { - console.error('Secondary device registration error:', err); - Alert.alert('Registration failed', 'Failed to upload device keys', [ - { text: 'OK' }, - ]); - } - }, - [logInSecondaryDevice], - ); - const { setUnauthorizedDeviceID } = useTunnelbroker(); const generateQRCode = React.useCallback(async () => { try { @@ -73,6 +58,22 @@ } }, [setUnauthorizedDeviceID]); + const logInSecondaryDevice = useSecondaryDeviceLogIn(); + const performRegistration = React.useCallback( + async (userID: string) => { + try { + await logInSecondaryDevice(userID); + } catch (err) { + console.error('Secondary device registration error:', err); + Alert.alert('Registration failed', 'Failed to upload device keys', [ + { text: 'OK' }, + ]); + void generateQRCode(); + } + }, + [logInSecondaryDevice, generateQRCode], + ); + React.useEffect(() => { void generateQRCode(); }, [generateQRCode]); diff --git a/web/account/qr-code-login.react.js b/web/account/qr-code-login.react.js --- a/web/account/qr-code-login.react.js +++ b/web/account/qr-code-login.react.js @@ -66,18 +66,6 @@ const [qrData, setQRData] = React.useState(); - const logInSecondaryDevice = useSecondaryDeviceLogIn(); - const performRegistration = React.useCallback( - async (userID: string) => { - try { - await logInSecondaryDevice(userID); - } catch (err) { - console.error('Secondary device registration error:', err); - } - }, - [logInSecondaryDevice], - ); - const { setUnauthorizedDeviceID } = useTunnelbroker(); const generateQRCode = React.useCallback(async () => { try { @@ -94,6 +82,19 @@ } }, [setUnauthorizedDeviceID]); + const logInSecondaryDevice = useSecondaryDeviceLogIn(); + const performRegistration = React.useCallback( + async (userID: string) => { + try { + await logInSecondaryDevice(userID); + } catch (err) { + console.error('Secondary device registration error:', err); + void generateQRCode(); + } + }, + [logInSecondaryDevice, generateQRCode], + ); + React.useEffect(() => { void generateQRCode(); }, [generateQRCode]);