Page MenuHomePhorge

D15257.1765056245.diff
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

D15257.1765056245.diff

diff --git a/lib/components/farcaster-data-handler.react.js b/lib/components/farcaster-data-handler.react.js
--- a/lib/components/farcaster-data-handler.react.js
+++ b/lib/components/farcaster-data-handler.react.js
@@ -19,6 +19,7 @@
useSetLocalFID,
useSetLocalCurrentUserSupportsDCs,
useCurrentUserSupportsDCs,
+ useFarcasterDCsLoaded,
} from '../utils/farcaster-utils.js';
import { useDispatchActionPromise } from '../utils/redux-promise-utils.js';
import { useSelector, useDispatch } from '../utils/redux-utils.js';
@@ -241,8 +242,9 @@
const syncFarcasterConversations = useFarcasterConversationsSync();
const currentUserSupportsDCs = useCurrentUserSupportsDCs();
+ const farcasterDCsLoaded = useFarcasterDCsLoaded();
const [syncType, setSyncType] = React.useState<'none' | 'partial' | 'full'>(
- 'partial',
+ farcasterDCsLoaded ? 'partial' : 'full',
);
const tunnelbroker = useTunnelbroker();
diff --git a/lib/shared/farcaster/farcaster-hooks.js b/lib/shared/farcaster/farcaster-hooks.js
--- a/lib/shared/farcaster/farcaster-hooks.js
+++ b/lib/shared/farcaster/farcaster-hooks.js
@@ -16,6 +16,7 @@
import {
convertFarcasterMessageToCommMessages,
createFarcasterRawThreadInfo,
+ useSetFarcasterDCsLoaded,
} from '../../utils/farcaster-utils.js';
import { useDispatch } from '../../utils/redux-utils.js';
import { useSendDMOperationUtils } from '../dm-ops/dm-op-utils.js';
@@ -79,6 +80,7 @@
);
const [inProgress, setInProgress] = React.useState(false);
+ const setFarcasterDCsLoaded = useSetFarcasterDCsLoaded();
React.useEffect(() => {
if (!fullInbox || conversations.length === 0 || inProgress) {
return;
@@ -203,6 +205,7 @@
setConversations([]);
setInProgress(false);
+ setFarcasterDCsLoaded(true);
})();
}, [
conversations,
@@ -214,6 +217,7 @@
messagesNumberLimit,
sendFarcasterTextMessage,
utils,
+ setFarcasterDCsLoaded,
]);
return React.useCallback(
diff --git a/lib/types/synced-metadata-types.js b/lib/types/synced-metadata-types.js
--- a/lib/types/synced-metadata-types.js
+++ b/lib/types/synced-metadata-types.js
@@ -9,6 +9,7 @@
const syncedMetadataNames = Object.freeze({
CURRENT_USER_FID: 'current_user_fid',
CURRENT_USER_SUPPORTS_DCS: 'current_user_supports_dcs',
+ FARCASTER_DCS_LOADED: 'farcaster_dcs_loaded',
STORE_VERSION: 'store_version',
ENABLED_APPS: 'enabled_apps',
GLOBAL_THEME_INFO: 'global_theme_info',
diff --git a/lib/utils/farcaster-utils.js b/lib/utils/farcaster-utils.js
--- a/lib/utils/farcaster-utils.js
+++ b/lib/utils/farcaster-utils.js
@@ -87,6 +87,17 @@
return currentUserFIDDCs === 'true';
}
+function useFarcasterDCsLoaded(): boolean {
+ const farcasterDCsLoaded = useSelector(
+ state =>
+ state.syncedMetadataStore.syncedMetadata[
+ syncedMetadataNames.FARCASTER_DCS_LOADED
+ ] ?? 'false',
+ );
+
+ return farcasterDCsLoaded === 'true';
+}
+
function useSetLocalFID(): (fid: ?string) => void {
const dispatch = useDispatch();
const { invalidateCacheForUser } = useUserIdentityCache();
@@ -136,6 +147,22 @@
);
}
+function useSetFarcasterDCsLoaded(): (loaded: boolean) => void {
+ const dispatch = useDispatch();
+ return React.useCallback(
+ (loaded: boolean) => {
+ dispatch({
+ type: setSyncedMetadataEntryActionType,
+ payload: {
+ name: syncedMetadataNames.FARCASTER_DCS_LOADED,
+ data: String(loaded),
+ },
+ });
+ },
+ [dispatch],
+ );
+}
+
function useLinkFID(): (fid: string) => Promise<void> {
const identityClientContext = React.useContext(IdentityClientContext);
invariant(identityClientContext, 'identityClientContext should be set');
@@ -160,7 +187,9 @@
function useClearFarcasterThreads(): () => void {
const threads = useSelector(state => state.threadStore.threadInfos);
const dispatch = useDispatch();
+ const setFarcasterDCsLoaded = useSetFarcasterDCsLoaded();
return React.useCallback(() => {
+ setFarcasterDCsLoaded(false);
const farcasterThreadIDs = Object.values(threads)
.filter(thread => thread.farcaster)
.map(thread => thread.id);
@@ -178,7 +207,7 @@
updateInfos: updates,
},
});
- }, [dispatch, threads]);
+ }, [dispatch, setFarcasterDCsLoaded, threads]);
}
function useUnlinkFID(): () => void {
@@ -518,8 +547,10 @@
NO_DCS_SUPPORT_METADATA,
useCurrentUserFID,
useCurrentUserSupportsDCs,
+ useFarcasterDCsLoaded,
useSetLocalFID,
useSetLocalCurrentUserSupportsDCs,
+ useSetFarcasterDCsLoaded,
useLinkFID,
useUnlinkFID,
useLinkFarcasterDCs,

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 9:24 PM (19 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5840918
Default Alt Text
D15257.1765056245.diff (4 KB)

Event Timeline