Something went wrong. Try again.
Bluesky app fork with some witchin' additions 💫
Something went wrong. Try again.
1.8 kB · 69 lines
TSX
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970import {useCallback} from 'react'import {msg} from '@lingui/macro'import {useLingui} from '@lingui/react'
import {logger} from '#/logger'import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members'import * as Toast from '#/view/com/util/Toast'import * as Dialog from '#/components/Dialog'import {SearchablePeopleList} from '#/components/dialogs/SearchablePeopleList'import {useAnalytics} from '#/analytics'
export function SendViaChatDialog({ control, onSelectChat,}: { control: Dialog.DialogControlProps onSelectChat: (chatId: string) => void}) { return ( <Dialog.Outer control={control} testID="sendViaChatChatDialog"> <Dialog.Handle /> <SendViaChatDialogInner control={control} onSelectChat={onSelectChat} /> </Dialog.Outer> )}
function SendViaChatDialogInner({ control, onSelectChat,}: { control: Dialog.DialogControlProps onSelectChat: (chatId: string) => void}) { const {_} = useLingui() const ax = useAnalytics() const {mutate: createChat} = useGetConvoForMembers({ onSuccess: data => { onSelectChat(data.convo.id)
if (!data.convo.lastMessage) { ax.metric('chat:create', {logContext: 'SendViaChatDialog'}) } ax.metric('chat:open', {logContext: 'SendViaChatDialog'}) }, onError: error => { logger.error('Failed to share post to chat', {message: error}) Toast.show( _(msg`An issue occurred while trying to open the chat`), 'xmark', ) }, })
const onCreateChat = useCallback( (did: string) => { control.close(() => createChat([did])) }, [control, createChat], )
return ( <SearchablePeopleList title={_(msg`Send skeet to...`)} onSelectChat={onCreateChat} showRecentConvos sortByMessageDeclaration /> )}