diff --git a/native/account/qr-auth/primary-device-qr-auth-context-provider.js b/native/account/qr-auth/primary-device-qr-auth-context-provider.js --- a/native/account/qr-auth/primary-device-qr-auth-context-provider.js +++ b/native/account/qr-auth/primary-device-qr-auth-context-provider.js @@ -6,6 +6,7 @@ import { logTypes, useDebugLogs } from 'lib/components/debug-logs-context.js'; import { parseDataFromDeepLink } from 'lib/facts/links.js'; +import { useGetAndUpdateDeviceListsForUsers } from 'lib/hooks/peer-list-hooks.js'; import { useWaitForConnection } from 'lib/hooks/wait-for-connection.js'; import { getOwnPeerDevices, @@ -64,6 +65,7 @@ useTunnelbroker(); const { addLog } = useDebugLogs(); const waitForConnection = useWaitForConnection('tunnelbroker'); + const updateDeviceListsForUsers = useGetAndUpdateDeviceListsForUsers(); const identityContext = React.useContext(IdentityClientContext); invariant(identityContext, 'identity context not set'); @@ -81,6 +83,19 @@ }; }, []); + const refetchPlatformDetails = React.useCallback(async () => { + try { + const { userID } = await identityContext.getAuthMetadata(); + await updateDeviceListsForUsers([userID]); + } catch (e) { + console.log( + `Refetching platform details failed: ${ + getMessageForException(e) ?? '' + }`, + ); + } + }, [identityContext, updateDeviceListsForUsers]); + const tunnelbrokerMessageListener = React.useCallback( async (message: TunnelbrokerToDeviceMessage) => { if (!connectingInProgress) { @@ -124,8 +139,9 @@ clearTimeout(timeout.current); timeout.current = null; navigate(SecondaryDeviceConnectedRouteName); + void refetchPlatformDetails(); }, - [connectingInProgress, navigate], + [connectingInProgress, navigate, refetchPlatformDetails], ); React.useEffect(() => {