diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index 3de15e661d..2725fab410 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -16,6 +16,7 @@ import {HITSLOP_10} from '#/lib/constants' import {useHaptics} from 'lib/haptics' import {atoms as a, useTheme} from '#/alf' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' +import {MessageInputEmbed} from './MessageInputEmbed' export function MessageInput({ onSendMessage, @@ -68,43 +69,48 @@ export function MessageInput({ - - - - + + + + + + + ) diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index a2f255bdc1..469a81f1dc 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -6,6 +6,7 @@ import TextareaAutosize from 'react-textarea-autosize' import {atoms as a, useTheme} from '#/alf' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' +import {MessageInputEmbed} from './MessageInputEmbed' export function MessageInput({ onSendMessage, @@ -47,47 +48,52 @@ export function MessageInput({ - - - - + + + + + + + ) diff --git a/src/screens/Messages/Conversation/MessageInputEmbed.tsx b/src/screens/Messages/Conversation/MessageInputEmbed.tsx new file mode 100644 index 0000000000..e7c5a24020 --- /dev/null +++ b/src/screens/Messages/Conversation/MessageInputEmbed.tsx @@ -0,0 +1,81 @@ +import React, {useEffect, useState} from 'react' +import {ActivityIndicator, View} from 'react-native' +import {AppBskyEmbedRecord, AppBskyFeedDefs} from '@atproto/api' +import {useQuery} from '@tanstack/react-query' + +import {useAgent} from '#/state/session' +import {MaybeQuoteEmbed} from '#/view/com/util/post-embeds/QuoteEmbed' +import {atoms as a, useTheme} from '#/alf' +import {PostMeta} from '#/view/com/util/PostMeta' +import {RichText} from '#/components/RichText' + +export function MessageInputEmbed({ + message, +}: { + message: string + setMessage: (message: string) => void +}) { + const {getAgent} = useAgent() + const t = useTheme() + const [url, setUrl] = useState( + 'https://bsky.app/profile/retr0.id/post/3krylejlvke2j', + ) + + useEffect(() => {}, [message]) + + const query = useQuery({ + queryKey: ['post-message-embed', url], + queryFn: async () => { + if (!url) return null + const urlp = new URL(url) + const [, , didOrHandle, _, rkey] = urlp.pathname.split('/') + let did = didOrHandle + if (!didOrHandle.startsWith('did:')) { + did = (await getAgent().resolveHandle({handle: didOrHandle})).data.did + } + const uri = `at://${did}/app.bsky.feed.post/${rkey}` + const {data} = await getAgent().api.app.bsky.feed.getPostThread({ + uri, + depth: 1, + parentHeight: 0, + }) + return data + }, + enabled: !!url, + }) + + if (!url || query.isError) { + return null + } + + if (query.isPending) { + //temp + return + } + + if (query.data) { + if (!AppBskyFeedDefs.isThreadViewPost(query.data.thread)) return null + return ( + + + {richText ? ( + + ) : null} + + ) + } + + return null +}