diff --git a/lib/components/platform-details-synchronizer.react.js b/lib/components/platform-details-synchronizer.react.js
new file mode 100644
--- /dev/null
+++ b/lib/components/platform-details-synchronizer.react.js
@@ -0,0 +1,36 @@
+// @flow
+
+import * as React from 'react';
+
+import { isLoggedIn } from '../selectors/user-selectors.js';
+import { IdentityClientContext } from '../shared/identity-client-context.js';
+import { useSelector } from '../utils/redux-utils.js';
+
+function PlatformDetailsSynchronizer(): null {
+ const client = React.useContext(IdentityClientContext);
+ const identityClient = client?.identityClient;
+
+ const loggedIn = useSelector(isLoggedIn);
+
+ const syncPlatformDetails = React.useCallback(async () => {
+ if (!identityClient) {
+ throw new Error('Identity service client is not initialized');
+ }
+ if (!loggedIn) {
+ return;
+ }
+ try {
+ await identityClient.syncPlatformDetails();
+ } catch (error) {
+ console.log('Error syncing platform details:', error);
+ }
+ }, [identityClient, loggedIn]);
+
+ React.useEffect(() => {
+ void syncPlatformDetails();
+ }, [syncPlatformDetails]);
+
+ return null;
+}
+
+export default PlatformDetailsSynchronizer;
diff --git a/native/root.react.js b/native/root.react.js
--- a/native/root.react.js
+++ b/native/root.react.js
@@ -30,6 +30,7 @@
import IntegrityHandler from 'lib/components/integrity-handler.react.js';
import { MediaCacheProvider } from 'lib/components/media-cache-provider.react.js';
import { NeynarClientProvider } from 'lib/components/neynar-client-provider.react.js';
+import PlatformDetailsSynchronizer from 'lib/components/platform-details-synchronizer.react.js';
import PrekeysHandler from 'lib/components/prekeys-handler.react.js';
import { StaffContextProvider } from 'lib/components/staff-provider.react.js';
import { DBOpsHandler } from 'lib/handlers/db-ops-handler.react.js';
@@ -338,6 +339,7 @@
}
/>
+
diff --git a/web/app.react.js b/web/app.react.js
--- a/web/app.react.js
+++ b/web/app.react.js
@@ -20,6 +20,7 @@
useModalContext,
} from 'lib/components/modal-provider.react.js';
import { NeynarClientProvider } from 'lib/components/neynar-client-provider.react.js';
+import PlatformDetailsSynchronizer from 'lib/components/platform-details-synchronizer.react.js';
import { StaffContextProvider } from 'lib/components/staff-provider.react.js';
import { IdentitySearchProvider } from 'lib/identity-search/identity-search-context.js';
import {
@@ -234,6 +235,7 @@
+
{content}