diff --git a/lib/shared/community-utils.js b/lib/shared/community-utils.js --- a/lib/shared/community-utils.js +++ b/lib/shared/community-utils.js @@ -29,6 +29,7 @@ import type { SetState } from '../types/hook-types.js'; import { defaultKeyserverInfo } from '../types/keyserver-types.js'; import type { ThreadInfo } from '../types/minimally-encoded-thread-permissions-types.js'; +import type { ThreadSubscription } from '../types/subscription-types.js'; import { threadPermissions } from '../types/thread-permission-types.js'; import { threadTypes } from '../types/thread-types-enum.js'; import { useCurrentUserFID } from '../utils/farcaster-utils.js'; @@ -185,9 +186,10 @@ +setOngoingJoinData: SetState, +step: JoinCommunityStep, +setStep: SetState, - +inviteSecret: string, - +setLinkStatus: SetState, + +inviteSecret?: string, + +setLinkStatus?: SetState, +threadID?: string, + +defaultSubscription?: ThreadSubscription, }; function useJoinCommunity(params: UseJoinCommunityParams): () => Promise { const { @@ -201,6 +203,7 @@ inviteSecret, setLinkStatus, threadID, + defaultSubscription, } = params; const dispatch = useDispatch(); @@ -238,7 +241,7 @@ keyserverID !== extractKeyserverIDFromID(communityID) ) { reject(); - setLinkStatus('invalid'); + setLinkStatus?.('invalid'); setOngoingJoinData(null); return; } @@ -246,7 +249,7 @@ reject(); setOngoingJoinData(oldData => { if (oldData) { - setLinkStatus('timed_out'); + setLinkStatus?.('timed_out'); } return null; }); @@ -289,7 +292,7 @@ const isValid = await isKeyserverURLValid(); if (!isValid || !keyserverURL) { - setLinkStatus('invalid'); + setLinkStatus?.('invalid'); ongoingJoinData.reject(); setOngoingJoinData(null); return; @@ -339,6 +342,7 @@ ], }, inviteLinkSecret: inviteSecret, + defaultSubscription, }); void dispatchActionPromise(joinThreadActionTypes, joinThreadPromise); @@ -346,7 +350,9 @@ await joinThreadPromise; setStep('join_thread'); } catch (e) { - setLinkStatus(status => (status === 'valid' ? 'invalid' : status)); + setLinkStatus?.((status: LinkStatus) => + status === 'valid' ? 'invalid' : status, + ); ongoingJoinData.reject(); setOngoingJoinData(null); } @@ -354,6 +360,7 @@ }, [ calendarQuery, callJoinThread, + defaultSubscription, dispatchActionPromise, inviteSecret, ongoingJoinData, @@ -395,7 +402,9 @@ setStep('finished'); ongoingJoinData.resolve(); } catch (e) { - setLinkStatus(status => (status === 'valid' ? 'invalid' : status)); + setLinkStatus?.((status: LinkStatus) => + status === 'valid' ? 'invalid' : status, + ); ongoingJoinData.reject(); } finally { setOngoingJoinData(null);