diff --git a/src/components/middle/composer/MessageInput.tsx b/src/components/middle/composer/MessageInput.tsx index 5b0788105..1eb8a0bea 100644 --- a/src/components/middle/composer/MessageInput.tsx +++ b/src/components/middle/composer/MessageInput.tsx @@ -146,7 +146,15 @@ const MessageInput: FC = ({ const [isTextFormatterDisabled, setIsTextFormatterDisabled] = useState(false); const { isMobile } = useAppLayout(); - useInputCustomEmojis(getHtml, inputRef, sharedCanvasRef, sharedCanvasHqRef, absoluteContainerRef); + useInputCustomEmojis( + getHtml, + inputRef, + sharedCanvasRef, + sharedCanvasHqRef, + absoluteContainerRef, + isAttachmentModalInput ? 'attachment' : undefined, + isActive, + ); const maxInputHeight = isMobile ? 256 : 416; const updateInputHeight = useCallback((willSend = false) => { diff --git a/src/components/middle/composer/hooks/useInputCustomEmojis.ts b/src/components/middle/composer/hooks/useInputCustomEmojis.ts index 763fa92ef..85c0c2e26 100644 --- a/src/components/middle/composer/hooks/useInputCustomEmojis.ts +++ b/src/components/middle/composer/hooks/useInputCustomEmojis.ts @@ -37,6 +37,8 @@ export default function useInputCustomEmojis( sharedCanvasRef: React.RefObject, sharedCanvasHqRef: React.RefObject, absoluteContainerRef: React.RefObject, + prefixId?: string, + isActive?: boolean, ) { const mapRef = useRef>(new Map()); @@ -59,7 +61,7 @@ export default function useInputCustomEmojis( const customEmojies = Array.from(inputRef.current.querySelectorAll('.custom-emoji')); customEmojies.forEach((element) => { - const id = element.dataset.uniqueId!; + const id = `${prefixId || ''}${element.dataset.uniqueId!}`; const documentId = element.dataset.documentId!; if (!id) { return; @@ -105,7 +107,10 @@ export default function useInputCustomEmojis( }); removeContainers(Array.from(removedContainers)); - }, [absoluteContainerRef, inputRef, isMobile, removeContainers, sharedCanvasHqRef, sharedCanvasRef]); + }, [ + absoluteContainerRef, inputRef, prefixId, isMobile, removeContainers, sharedCanvasHqRef, + sharedCanvasRef, + ]); useEffect(() => { addCustomEmojiInputRenderCallback(synchronizeElements); @@ -116,13 +121,13 @@ export default function useInputCustomEmojis( }, [synchronizeElements]); useEffect(() => { - if (!getHtml() || !inputRef.current || !sharedCanvasRef.current) { + if (!getHtml() || !inputRef.current || !sharedCanvasRef.current || !isActive) { removeContainers(Array.from(mapRef.current.keys())); return; } synchronizeElements(); - }, [getHtml, synchronizeElements, inputRef, removeContainers, sharedCanvasRef]); + }, [getHtml, synchronizeElements, inputRef, removeContainers, sharedCanvasRef, isActive]); useResizeObserver(sharedCanvasRef, synchronizeElements, true);