From 6d868030ae714dc0d2d57ae74e186542c87c7d7d Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Thu, 8 Dec 2022 15:37:42 -0800 Subject: [PATCH] CompositionArea: Only reset message contents if id has changed --- ts/components/CompositionArea.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ts/components/CompositionArea.tsx b/ts/components/CompositionArea.tsx index 7607cea345..fe564f5676 100644 --- a/ts/components/CompositionArea.tsx +++ b/ts/components/CompositionArea.tsx @@ -58,6 +58,7 @@ import { import { MediaEditor } from './MediaEditor'; import { isImageTypeSupported } from '../util/GoogleChrome'; import * as KeyboardLayout from '../services/keyboardLayout'; +import { usePrevious } from '../hooks/usePrevious'; export type CompositionAPIType = | { @@ -342,13 +343,18 @@ export function CompositionArea({ }; } + const previousMessageCompositionId = usePrevious( + messageCompositionId, + messageCompositionId + ); useEffect(() => { if (!inputApiRef.current) { return; } - - inputApiRef.current.reset(); - }, [messageCompositionId]); + if (previousMessageCompositionId !== messageCompositionId) { + inputApiRef.current.reset(); + } + }, [messageCompositionId, previousMessageCompositionId]); const insertEmoji = useCallback( (e: EmojiPickDataType) => {