Composer: Preserve input when sending sticker (#1297)

This commit is contained in:
Alexander Zinchuk 2021-07-20 15:47:49 +03:00
parent 65b5284e22
commit ad647b50a0

View File

@ -392,8 +392,10 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
setHtml(deleteLastCharacterOutsideSelection(htmlRef.current!)); setHtml(deleteLastCharacterOutsideSelection(htmlRef.current!));
}, []); }, []);
const resetComposer = useCallback(() => { const resetComposer = useCallback((shouldPreserveInput = false) => {
setHtml(''); if (!shouldPreserveInput) {
setHtml('');
}
setAttachments([]); setAttachments([]);
closeStickerTooltip(); closeStickerTooltip();
closeCalendar(); closeCalendar();
@ -530,7 +532,7 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
} }
// Wait until message animation starts // Wait until message animation starts
requestAnimationFrame(resetComposer); requestAnimationFrame(() => { resetComposer(); });
}, [ }, [
connectionState, attachments, activeVoiceRecording, isForwarding, serverTimeOffset, clearDraft, chatId, connectionState, attachments, activeVoiceRecording, isForwarding, serverTimeOffset, clearDraft, chatId,
resetComposer, stopRecordingVoice, showDialog, slowMode, isAdmin, sendMessage, forwardMessages, lang, resetComposer, stopRecordingVoice, showDialog, slowMode, isAdmin, sendMessage, forwardMessages, lang,
@ -547,7 +549,7 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
openCalendar(); openCalendar();
} else { } else {
sendMessage({ sticker }); sendMessage({ sticker });
requestAnimationFrame(resetComposer); requestAnimationFrame(() => { resetComposer(true); });
} }
}, [shouldSchedule, openCalendar, sendMessage, resetComposer]); }, [shouldSchedule, openCalendar, sendMessage, resetComposer]);
@ -557,7 +559,7 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
openCalendar(); openCalendar();
} else { } else {
sendMessage({ gif }); sendMessage({ gif });
requestAnimationFrame(resetComposer); requestAnimationFrame(() => { resetComposer(true); });
} }
}, [shouldSchedule, openCalendar, sendMessage, resetComposer]); }, [shouldSchedule, openCalendar, sendMessage, resetComposer]);
@ -577,7 +579,7 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
} }
clearDraft({ chatId, localOnly: true }); clearDraft({ chatId, localOnly: true });
requestAnimationFrame(resetComposer); requestAnimationFrame(() => { resetComposer(); });
}, [chatId, clearDraft, connectionState, resetComposer, sendInlineBotResult]); }, [chatId, clearDraft, connectionState, resetComposer, sendInlineBotResult]);
const handlePollSend = useCallback((poll: ApiNewPoll) => { const handlePollSend = useCallback((poll: ApiNewPoll) => {
@ -614,7 +616,7 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
...scheduledMessageArgs, ...scheduledMessageArgs,
scheduledAt, scheduledAt,
}); });
requestAnimationFrame(resetComposer); requestAnimationFrame(() => { resetComposer(); });
} }
closeCalendar(); closeCalendar();
}, [closeCalendar, handleSend, resetComposer, scheduledMessageArgs, sendMessage, serverTimeOffset]); }, [closeCalendar, handleSend, resetComposer, scheduledMessageArgs, sendMessage, serverTimeOffset]);
@ -684,7 +686,7 @@ const Composer: FC<OwnProps & StateProps & DispatchProps> = ({
openCalendar(); openCalendar();
} else { } else {
handleSend(); handleSend();
requestAnimationFrame(resetComposer); requestAnimationFrame(() => { resetComposer(); });
} }
break; break;
case MainButtonState.Record: case MainButtonState.Record: