Page MenuHomePhorge

D14616.1768462751.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D14616.1768462751.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
@@ -32,7 +32,7 @@
import { getMessageForException } from '../utils/errors.js';
import { useDispatch, useSelector } from '../utils/redux-utils.js';
import { fullBackupSupport } from '../utils/services-utils.js';
-import { waitUntilDatabaseReady } from '../utils/wait-until-db-deleted.js';
+import { waitUntilDatabaseDeleted } from '../utils/wait-until-db-deleted.js';
type Props = {
+children: React.Node,
@@ -77,7 +77,23 @@
const [primaryDeviceID, setPrimaryDeviceID] = React.useState<?string>();
const [qrData, setQRData] = React.useState<?QRData>();
const [qrAuthFinished, setQRAuthFinished] = React.useState(false);
+
const loggedIn = useSelector(isLoggedIn);
+ const prevLoggedIn = React.useRef(loggedIn);
+
+ const logoutStateResetPromise = React.useRef<?Promise<void>>(null);
+
+ if (prevLoggedIn.current !== loggedIn) {
+ if (!loggedIn) {
+ logoutStateResetPromise.current = (async () => {
+ await logoutStateResetPromise.current;
+ await waitUntilDatabaseDeleted();
+ logoutStateResetPromise.current = null;
+ })();
+ }
+
+ prevLoggedIn.current = loggedIn;
+ }
const {
setUnauthorizedDeviceID,
@@ -92,7 +108,7 @@
const identityClient = identityContext?.identityClient;
const openSecondaryQRAuth = React.useCallback(async () => {
- await waitUntilDatabaseReady();
+ await logoutStateResetPromise.current;
const [ed25519, rawAESKey] = await Promise.all([
getContentSigningKey(),

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 15, 7:39 AM (10 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5936728
Default Alt Text
D14616.1768462751.diff (1 KB)

Event Timeline