Bluesky app fork with some witchin' additions 馃挮
at post-text-option 68 lines 1.8 kB view raw
1import {useCallback} from 'react' 2import {msg} from '@lingui/macro' 3import {useLingui} from '@lingui/react' 4 5import {logEvent} from '#/lib/statsig/statsig' 6import {logger} from '#/logger' 7import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members' 8import * as Toast from '#/view/com/util/Toast' 9import * as Dialog from '#/components/Dialog' 10import {SearchablePeopleList} from '#/components/dialogs/SearchablePeopleList' 11 12export function SendViaChatDialog({ 13 control, 14 onSelectChat, 15}: { 16 control: Dialog.DialogControlProps 17 onSelectChat: (chatId: string) => void 18}) { 19 return ( 20 <Dialog.Outer control={control} testID="sendViaChatChatDialog"> 21 <Dialog.Handle /> 22 <SendViaChatDialogInner control={control} onSelectChat={onSelectChat} /> 23 </Dialog.Outer> 24 ) 25} 26 27function SendViaChatDialogInner({ 28 control, 29 onSelectChat, 30}: { 31 control: Dialog.DialogControlProps 32 onSelectChat: (chatId: string) => void 33}) { 34 const {_} = useLingui() 35 const {mutate: createChat} = useGetConvoForMembers({ 36 onSuccess: data => { 37 onSelectChat(data.convo.id) 38 39 if (!data.convo.lastMessage) { 40 logEvent('chat:create', {logContext: 'SendViaChatDialog'}) 41 } 42 logEvent('chat:open', {logContext: 'SendViaChatDialog'}) 43 }, 44 onError: error => { 45 logger.error('Failed to share post to chat', {message: error}) 46 Toast.show( 47 _(msg`An issue occurred while trying to open the chat`), 48 'xmark', 49 ) 50 }, 51 }) 52 53 const onCreateChat = useCallback( 54 (did: string) => { 55 control.close(() => createChat([did])) 56 }, 57 [control, createChat], 58 ) 59 60 return ( 61 <SearchablePeopleList 62 title={_(msg`Send skeet to...`)} 63 onSelectChat={onCreateChat} 64 showRecentConvos 65 sortByMessageDeclaration 66 /> 67 ) 68}