Page MenuHomePhorge

D14375.1768607975.diff
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

D14375.1768607975.diff

diff --git a/lib/components/secondary-device-qr-auth-context-provider.react.js b/lib/components/secondary-device-qr-auth-context-provider.react.js
--- a/lib/components/secondary-device-qr-auth-context-provider.react.js
+++ b/lib/components/secondary-device-qr-auth-context-provider.react.js
@@ -3,25 +3,28 @@
import invariant from 'invariant';
import * as React from 'react';
+import { qrCodeLinkURL } from '../facts/links.js';
import { useSecondaryDeviceLogIn } from '../hooks/login-hooks.js';
import { uintArrayToHexString } from '../media/data-utils.js';
import { isLoggedIn } from '../selectors/user-selectors.js';
import { IdentityClientContext } from '../shared/identity-client-context.js';
import { useTunnelbroker } from '../tunnelbroker/tunnelbroker-context.js';
+import { platformToIdentityDeviceType } from '../types/identity-service-types.js';
import {
- tunnelbrokerToDeviceMessageTypes,
type TunnelbrokerToDeviceMessage,
+ tunnelbrokerToDeviceMessageTypes,
} from '../types/tunnelbroker/messages.js';
import {
- type QRCodeAuthMessage,
peerToPeerMessageTypes,
peerToPeerMessageValidator,
+ type QRCodeAuthMessage,
} from '../types/tunnelbroker/peer-to-peer-message-types.js';
import {
- qrCodeAuthMessageTypes,
- type QRCodeAuthMessagePayload,
type QRAuthBackupData,
+ type QRCodeAuthMessagePayload,
+ qrCodeAuthMessageTypes,
} from '../types/tunnelbroker/qr-code-auth-message-types.js';
+import { getConfig } from '../utils/config.js';
import { getContentSigningKey } from '../utils/crypto-utils.js';
import { getMessageForException } from '../utils/errors.js';
import { useSelector } from '../utils/redux-utils.js';
@@ -255,7 +258,37 @@
return context;
}
+function useSecondaryDeviceQRAuthURL(): ?string {
+ const { qrData, openSecondaryQRAuth, closeSecondaryQRAuth } =
+ useSecondaryDeviceQRAuthContext();
+
+ React.useEffect(() => {
+ void openSecondaryQRAuth();
+ return closeSecondaryQRAuth;
+ }, [closeSecondaryQRAuth, openSecondaryQRAuth]);
+
+ const { platform } = getConfig().platformDetails;
+ const qrCodeURL = React.useMemo(() => {
+ if (!qrData) {
+ return undefined;
+ }
+
+ const identityDeviceType = platformToIdentityDeviceType[platform];
+
+ return qrCodeLinkURL(qrData.aesKey, qrData.deviceID, identityDeviceType);
+ }, [platform, qrData]);
+
+ React.useEffect(() => {
+ if (qrCodeURL) {
+ console.log(`QR Code URL: ${qrCodeURL}`);
+ }
+ }, [qrCodeURL]);
+
+ return qrCodeURL;
+}
+
export {
SecondaryDeviceQRAuthContextProvider,
useSecondaryDeviceQRAuthContext,
+ useSecondaryDeviceQRAuthURL,
};
diff --git a/web/account/log-in-form.react.js b/web/account/log-in-form.react.js
--- a/web/account/log-in-form.react.js
+++ b/web/account/log-in-form.react.js
@@ -8,11 +8,8 @@
import ModalOverlay from 'lib/components/modal-overlay.react.js';
import { useModalContext } from 'lib/components/modal-provider.react.js';
-import { useSecondaryDeviceQRAuthContext } from 'lib/components/secondary-device-qr-auth-context-provider.react.js';
-import { qrCodeLinkURL } from 'lib/facts/links.js';
+import { useSecondaryDeviceQRAuthURL } from 'lib/components/secondary-device-qr-auth-context-provider.react.js';
import stores from 'lib/facts/stores.js';
-import { platformToIdentityDeviceType } from 'lib/types/identity-service-types.js';
-import { getConfig } from 'lib/utils/config.js';
import { useDispatch } from 'lib/utils/redux-utils.js';
import { useIsRestoreFlowEnabled } from 'lib/utils/services-utils.js';
@@ -86,30 +83,7 @@
}
function LoginForm() {
- const { qrData, openSecondaryQRAuth, closeSecondaryQRAuth } =
- useSecondaryDeviceQRAuthContext();
-
- React.useEffect(() => {
- void openSecondaryQRAuth();
- return closeSecondaryQRAuth;
- }, [closeSecondaryQRAuth, openSecondaryQRAuth]);
-
- const { platform } = getConfig().platformDetails;
- const qrCodeURL = React.useMemo(() => {
- if (!qrData) {
- return undefined;
- }
-
- const identityDeviceType = platformToIdentityDeviceType[platform];
-
- return qrCodeLinkURL(qrData.aesKey, qrData.deviceID, identityDeviceType);
- }, [platform, qrData]);
-
- React.useEffect(() => {
- if (qrCodeURL) {
- console.log(`QR Code URL: ${qrCodeURL}`);
- }
- }, [qrCodeURL]);
+ const qrCodeURL = useSecondaryDeviceQRAuthURL();
const { pushModal, clearModals, popModal } = useModalContext();
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
@@ -3,33 +3,13 @@
import { QRCodeSVG } from 'qrcode.react';
import * as React from 'react';
-import { useSecondaryDeviceQRAuthContext } from 'lib/components/secondary-device-qr-auth-context-provider.react.js';
-import { qrCodeLinkURL } from 'lib/facts/links.js';
-import { platformToIdentityDeviceType } from 'lib/types/identity-service-types.js';
-import { getConfig } from 'lib/utils/config.js';
+import { useSecondaryDeviceQRAuthURL } from 'lib/components/secondary-device-qr-auth-context-provider.react.js';
import css from './qr-code-login.css';
import LoadingIndicator from '../loading-indicator.react.js';
function QRCodeLogin(): React.Node {
- const { qrData, openSecondaryQRAuth, closeSecondaryQRAuth } =
- useSecondaryDeviceQRAuthContext();
-
- React.useEffect(() => {
- void openSecondaryQRAuth();
- return closeSecondaryQRAuth;
- }, [closeSecondaryQRAuth, openSecondaryQRAuth]);
-
- const { platform } = getConfig().platformDetails;
- const qrCodeURL = React.useMemo(() => {
- if (!qrData) {
- return undefined;
- }
-
- const identityDeviceType = platformToIdentityDeviceType[platform];
-
- return qrCodeLinkURL(qrData.aesKey, qrData.deviceID, identityDeviceType);
- }, [platform, qrData]);
+ const qrCodeURL = useSecondaryDeviceQRAuthURL();
const qrCodeComponent = React.useMemo(() => {
if (qrCodeURL) {

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 16, 11:59 PM (16 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5946493
Default Alt Text
D14375.1768607975.diff (5 KB)

Event Timeline