Page MenuHomePhorge

D15478.1765035771.diff
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

D15478.1765035771.diff

diff --git a/lib/hooks/thread-hooks.js b/lib/hooks/thread-hooks.js
--- a/lib/hooks/thread-hooks.js
+++ b/lib/hooks/thread-hooks.js
@@ -20,6 +20,7 @@
useUpdateFarcasterGroupNameAndDescription,
useModifyFarcasterMembershipInput,
useAcceptInvite,
+ useAcceptOneOnOneInvite,
} from '../shared/farcaster/farcaster-api.js';
import {
useFetchConversation,
@@ -507,6 +508,7 @@
);
const keyserverCall = useJoinKeyserverThread();
const farcasterAcceptInvite = useAcceptInvite();
+ const farcasterAcceptOneOnOneInvite = useAcceptOneOnOneInvite();
const refreshFarcasterConversation = useRefreshFarcasterConversation();
return React.useCallback(
@@ -522,6 +524,7 @@
calendarQuery: input.calendarQuery,
farcasterAcceptInvite,
refreshFarcasterConversation,
+ farcasterAcceptOneOnOneInvite,
},
),
[
@@ -530,6 +533,7 @@
processAndSendDMOperation,
refreshFarcasterConversation,
viewerID,
+ farcasterAcceptOneOnOneInvite,
],
);
}
diff --git a/lib/shared/farcaster/farcaster-api.js b/lib/shared/farcaster/farcaster-api.js
--- a/lib/shared/farcaster/farcaster-api.js
+++ b/lib/shared/farcaster/farcaster-api.js
@@ -854,6 +854,41 @@
);
}
+export type AcceptOneOnOneInviteInput = {
+ +conversationId: string,
+ +category: 'default',
+};
+
+function useAcceptOneOnOneInvite(): (
+ input: AcceptOneOnOneInviteInput,
+) => Promise<void> {
+ const { sendFarcasterRequest } = useTunnelbroker();
+ const { addLog } = useDebugLogs();
+ return React.useCallback(
+ async (input: AcceptOneOnOneInviteInput) => {
+ try {
+ await sendFarcasterRequest({
+ apiVersion: 'v2',
+ endpoint: 'direct-cast-conversation-categorization',
+ method: { type: 'POST' },
+ payload: JSON.stringify(input),
+ });
+ } catch (error) {
+ addLog(
+ 'Farcaster API: Failed to accept one-one-one invite',
+ JSON.stringify({
+ conversationId: input.conversationId,
+ error: getMessageForException(error),
+ }),
+ new Set([logTypes.FARCASTER, logTypes.ERROR]),
+ );
+ throw error;
+ }
+ },
+ [addLog, sendFarcasterRequest],
+ );
+}
+
export {
useSendFarcasterTextMessage,
useFetchFarcasterMessages,
@@ -869,4 +904,5 @@
useSendFarcasterReaction,
useAcceptInvite,
useFetchFarcasterConversationInvites,
+ useAcceptOneOnOneInvite,
};
diff --git a/lib/shared/threads/protocols/farcaster-thread-protocol.js b/lib/shared/threads/protocols/farcaster-thread-protocol.js
--- a/lib/shared/threads/protocols/farcaster-thread-protocol.js
+++ b/lib/shared/threads/protocols/farcaster-thread-protocol.js
@@ -916,10 +916,18 @@
utils: JoinThreadUtils,
): Promise<ThreadJoinPayload> => {
const threadID = input.rawThreadInfo.id;
+ const threadType = input.rawThreadInfo.type;
const conversationID = conversationIDFromFarcasterThreadID(threadID);
- await utils.farcasterAcceptInvite({
- conversationId: conversationID,
- });
+ if (threadTypeIsPersonal(threadType)) {
+ await utils.farcasterAcceptOneOnOneInvite({
+ conversationId: conversationID,
+ category: 'default',
+ });
+ } else {
+ await utils.farcasterAcceptInvite({
+ conversationId: conversationID,
+ });
+ }
await utils.refreshFarcasterConversation(conversationID);
diff --git a/lib/shared/threads/thread-spec.js b/lib/shared/threads/thread-spec.js
--- a/lib/shared/threads/thread-spec.js
+++ b/lib/shared/threads/thread-spec.js
@@ -101,6 +101,7 @@
ModifyFarcasterMembershipInput,
SendReactionInput,
AcceptInviteInput,
+ AcceptOneOnOneInviteInput,
} from '../farcaster/farcaster-api.js';
import type { FarcasterConversation } from '../farcaster/farcaster-conversation-types.js';
import type { FarcasterMessageFetchingContextType } from '../farcaster/farcaster-message-fetching-context.js';
@@ -378,6 +379,9 @@
+keyserverJoinThread: ClientThreadJoinRequest => Promise<ThreadJoinPayload>,
+calendarQuery: () => CalendarQuery,
+farcasterAcceptInvite: (input: AcceptInviteInput) => Promise<void>,
+ +farcasterAcceptOneOnOneInvite: (
+ input: AcceptOneOnOneInviteInput,
+ ) => Promise<void>,
+refreshFarcasterConversation: (conversationId: string) => Promise<mixed>,
};

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 6, 3:42 PM (16 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5838275
Default Alt Text
D15478.1765035771.diff (4 KB)

Event Timeline