Page MenuHomePhorge

D14919.1768457226.diff
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

D14919.1768457226.diff

diff --git a/native/components/nux-handler.react.js b/native/components/nux-handler.react.js
--- a/native/components/nux-handler.react.js
+++ b/native/components/nux-handler.react.js
@@ -4,6 +4,7 @@
import invariant from 'invariant';
import * as React from 'react';
+import { useIsUserDataReady } from 'lib/hooks/backup-hooks.js';
import { isLoggedIn } from 'lib/selectors/user-selectors.js';
import {
@@ -27,8 +28,9 @@
const { tipsProps } = nuxTipsContext;
const loggedIn = useSelector(isLoggedIn);
+ const userDataReady = useIsUserDataReady();
- if (!tipsProps || !loggedIn) {
+ if (!tipsProps || !loggedIn || !userDataReady) {
return null;
}
diff --git a/native/navigation/deep-links-context-provider.react.js b/native/navigation/deep-links-context-provider.react.js
--- a/native/navigation/deep-links-context-provider.react.js
+++ b/native/navigation/deep-links-context-provider.react.js
@@ -16,6 +16,7 @@
parseDataFromDeepLink,
type ParsedDeepLinkData,
} from 'lib/facts/links.js';
+import { useIsUserDataReady } from 'lib/hooks/backup-hooks.js';
import { useCheckIfPrimaryDevice } from 'lib/hooks/primary-device-hooks.js';
import { usePersistedStateLoaded } from 'lib/selectors/app-state-selectors.js';
import { isLoggedIn } from 'lib/selectors/user-selectors.js';
@@ -105,7 +106,9 @@
const invalidTokenLogOut = useInvalidCSATLogOut();
const showVersionUnsupportedAlert = useShowVersionUnsupportedAlert(false);
- const loggedIn = useSelector(isLoggedIn);
+ const baseLoggedIn = useSelector(isLoggedIn);
+ const userDataReady = useIsUserDataReady();
+ const loggedIn = baseLoggedIn && userDataReady;
const dispatchActionPromise = useDispatchActionPromise();
const validateLink = useVerifyInviteLink(keyserverOverride);
const navigation = useNavigation();
diff --git a/web/invite-links/invite-link-handler.react.js b/web/invite-links/invite-link-handler.react.js
--- a/web/invite-links/invite-link-handler.react.js
+++ b/web/invite-links/invite-link-handler.react.js
@@ -9,6 +9,7 @@
} from 'lib/actions/link-actions.js';
import { useInvalidCSATLogOut } from 'lib/actions/user-actions.js';
import { useModalContext } from 'lib/components/modal-provider.react.js';
+import { useIsUserDataReady } from 'lib/hooks/backup-hooks.js';
import { threadInfoSelector } from 'lib/selectors/thread-selectors.js';
import { isLoggedIn } from 'lib/selectors/user-selectors.js';
import { IdentityClientContext } from 'lib/shared/identity-client-context.js';
@@ -29,7 +30,9 @@
const inviteLinkSecret = React.useRef<?string>(null);
const [keyserverOverride, setKeyserverOverride] =
React.useState<?KeyserverOverride>(undefined);
- const loggedIn = useSelector(isLoggedIn);
+ const baseLoggedIn = useSelector(isLoggedIn);
+ const userDataReady = useIsUserDataReady();
+ const loggedIn = baseLoggedIn && userDataReady;
const identityContext = React.useContext(IdentityClientContext);
invariant(identityContext, 'Identity context should be set');
diff --git a/web/push-notif/push-notifs-handler.js b/web/push-notif/push-notifs-handler.js
--- a/web/push-notif/push-notifs-handler.js
+++ b/web/push-notif/push-notifs-handler.js
@@ -9,6 +9,7 @@
setDeviceTokenActionTypes,
} from 'lib/actions/device-actions.js';
import { useModalContext } from 'lib/components/modal-provider.react.js';
+import { useIsUserDataReady } from 'lib/hooks/backup-hooks.js';
import { isLoggedIn } from 'lib/selectors/user-selectors.js';
import { IdentityClientContext } from 'lib/shared/identity-client-context.js';
import { hasMinCodeVersion } from 'lib/shared/version-utils.js';
@@ -196,6 +197,8 @@
const modalContext = useModalContext();
const loggedIn = useSelector(isLoggedIn);
+ const userDataReady = useIsUserDataReady();
+ const fullyLoggedIn = loggedIn && userDataReady;
const dispatch = useDispatch();
@@ -214,7 +217,7 @@
await createPushSubscription();
} else if (
Notification.permission === 'default' &&
- loggedIn &&
+ fullyLoggedIn &&
!shouldSkipPushPermissionAlert(notifPermissionAlertInfo)
) {
// Ask existing users that are already logged in for permission
@@ -235,13 +238,13 @@
}, []);
// Ask for permission on login
- const prevLoggedIn = React.useRef(loggedIn);
+ const prevLoggedIn = React.useRef(fullyLoggedIn);
React.useEffect(() => {
if (!navigator.serviceWorker || !supported) {
return;
}
- if (!prevLoggedIn.current && loggedIn) {
+ if (!prevLoggedIn.current && fullyLoggedIn) {
if (Notification.permission === 'granted') {
void createPushSubscription();
} else if (
@@ -261,11 +264,11 @@
});
}
}
- prevLoggedIn.current = loggedIn;
+ prevLoggedIn.current = fullyLoggedIn;
}, [
createPushSubscription,
dispatch,
- loggedIn,
+ fullyLoggedIn,
modalContext,
notifPermissionAlertInfo,
prevLoggedIn,

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 15, 6:07 AM (13 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5936473
Default Alt Text
D14919.1768457226.diff (4 KB)

Event Timeline