diff --git a/src/components/Chat/ChatList.tsx b/src/components/Chat/ChatList.tsx index 3b8f717..82dc915 100644 --- a/src/components/Chat/ChatList.tsx +++ b/src/components/Chat/ChatList.tsx @@ -271,7 +271,11 @@ export const ChatList = ({ initialMessages, myAddress, tempMessages, chatId, onR message.isEdit = true message.editTimestamp = chatReferences[message.signature]?.edit?.timestamp } - + if (chatReferences[message.signature]?.edit?.images) { + message.images = + chatReferences[message.signature]?.edit?.images; + message.isEdit = true; + } } // Check if message is updating diff --git a/src/components/Chat/MessageItem.tsx b/src/components/Chat/MessageItem.tsx index e21c2cc..5fc742b 100644 --- a/src/components/Chat/MessageItem.tsx +++ b/src/components/Chat/MessageItem.tsx @@ -33,6 +33,8 @@ import level7Img from "../../assets/badges/level-7.png" import level8Img from "../../assets/badges/level-8.png" import level9Img from "../../assets/badges/level-9.png" import level10Img from "../../assets/badges/level-10.png" +import { Embed } from "../Embeds/Embed"; +import { buildImageEmbedLink, messageHasImage } from "../../utils/chat"; const getBadgeImg = (level)=> { switch(level?.toString()){ @@ -346,6 +348,9 @@ const onSeenFunc = useCallback(()=> { ) : ( )} + {message?.images && messageHasImage(message) && ( + + )} diff --git a/src/qortalRequests/get.ts b/src/qortalRequests/get.ts index cf04b2f..ab45220 100644 --- a/src/qortalRequests/get.ts +++ b/src/qortalRequests/get.ts @@ -1531,7 +1531,7 @@ if (!skip) { }; const messageObject = fullMessageObject ? fullMessageObject : { messageText: tiptapJson, - images: [""], + images: [], repliedTo: "", version: 3, }; diff --git a/src/utils/chat.ts b/src/utils/chat.ts new file mode 100644 index 0000000..c7099c0 --- /dev/null +++ b/src/utils/chat.ts @@ -0,0 +1,22 @@ +export function buildImageEmbedLink(image?: { + name?: string; + identifier?: string; + service?: string; + timestamp?: number; +}): string | null { + if (!image?.name || !image.identifier || !image.service) return null; + + const base = `qortal://use-embed/IMAGE?name=${image.name}&identifier=${image.identifier}&service=${image.service}&mimeType=image%2Fpng×tamp=${image?.timestamp || ''}`; + + const isEncrypted = image.identifier.startsWith('grp-q-manager_0'); + return isEncrypted ? `${base}&encryptionType=group` : base; +} + +export const messageHasImage = (message) => { + return ( + Array.isArray(message?.images) && + message.images[0]?.identifier && + message.images[0]?.name && + message.images[0]?.service + ); +};