()
| 504 | }; |
| 505 | |
| 506 | function useJoinThread(): ( |
| 507 | input: UseJoinThreadInput, |
| 508 | ) => Promise<ThreadJoinPayload> { |
| 509 | const processAndSendDMOperation = useProcessAndSendDMOperation(); |
| 510 | const viewerID = useSelector( |
| 511 | state => state.currentUserInfo && state.currentUserInfo.id, |
| 512 | ); |
| 513 | const keyserverCall = useJoinKeyserverThread(); |
| 514 | const farcasterAcceptInvite = useAcceptInvite(); |
| 515 | const farcasterAcceptOneOnOneInvite = useAcceptOneOnOneInvite(); |
| 516 | const refreshFarcasterConversation = useRefreshFarcasterConversation(); |
| 517 | |
| 518 | return React.useCallback( |
| 519 | async (input: UseJoinThreadInput) => |
| 520 | threadSpecs[input.rawThreadInfo.type].protocol().joinThread( |
| 521 | { |
| 522 | rawThreadInfo: input.rawThreadInfo, |
| 523 | viewerID, |
| 524 | }, |
| 525 | { |
| 526 | processAndSendDMOperation, |
| 527 | keyserverJoinThread: keyserverCall, |
| 528 | calendarQuery: input.calendarQuery, |
| 529 | farcasterAcceptInvite, |
| 530 | refreshFarcasterConversation, |
| 531 | farcasterAcceptOneOnOneInvite, |
| 532 | }, |
| 533 | ), |
| 534 | [ |
| 535 | farcasterAcceptInvite, |
| 536 | keyserverCall, |
| 537 | processAndSendDMOperation, |
| 538 | refreshFarcasterConversation, |
| 539 | viewerID, |
| 540 | farcasterAcceptOneOnOneInvite, |
| 541 | ], |
| 542 | ); |
| 543 | } |
| 544 | |
| 545 | export type LeaveThreadInput = { |
| 546 | +threadID: string, |
no test coverage detected