diff options
Diffstat (limited to 'src/screens/Messages/Conversation/MessageInput.web.tsx')
-rw-r--r-- | src/screens/Messages/Conversation/MessageInput.web.tsx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index 2ee03bb31..b9506b5bb 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -6,6 +6,10 @@ import Graphemer from 'graphemer' import TextareaAutosize from 'react-textarea-autosize' import {MAX_DM_GRAPHEME_LENGTH} from '#/lib/constants' +import { + useMessageDraft, + useSaveMessageDraft, +} from '#/state/messages/message-drafts' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' @@ -18,7 +22,8 @@ export function MessageInput({ }) { const {_} = useLingui() const t = useTheme() - const [message, setMessage] = React.useState('') + const {getDraft, clearDraft} = useMessageDraft() + const [message, setMessage] = React.useState(getDraft) const onSubmit = React.useCallback(() => { if (message.trim() === '') { @@ -28,9 +33,10 @@ export function MessageInput({ Toast.show(_(msg`Message is too long`)) return } + clearDraft() onSendMessage(message.trimEnd()) setMessage('') - }, [message, onSendMessage, _]) + }, [message, onSendMessage, _, clearDraft]) const onKeyDown = React.useCallback( (e: React.KeyboardEvent<HTMLTextAreaElement>) => { @@ -50,6 +56,8 @@ export function MessageInput({ [], ) + useSaveMessageDraft(message) + return ( <View style={a.p_sm}> <View |