From 8c462565de7d8781083f67de691e9ef96bd72b44 Mon Sep 17 00:00:00 2001 From: GleidsonDaniel Date: Wed, 27 Mar 2024 14:30:09 -0300 Subject: [PATCH] fix: checks if any text has been changed before saving the draft on return --- .../MessageComposer/hooks/useAutoSaveDraft.ts | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts b/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts index 90f8259f7..5d575ea30 100644 --- a/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts +++ b/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts @@ -12,16 +12,19 @@ export const useAutoSaveDraft = (text = '') => { const oldText = useRef(''); const intervalRef = useRef(); - const saveMessageDraft = useCallback(() => { - if (route.name === 'ShareView') return; - if (action === 'edit') return; - - const draftMessage = selectedMessages?.length ? JSON.stringify({ quotes: selectedMessages, msg: text }) : text; - if (oldText.current !== draftMessage) { - oldText.current = draftMessage; - saveDraftMessage({ rid, tmid, draftMessage }); - } - }, [action, rid, tmid, text, selectedMessages?.length]); + const saveMessageDraft = useCallback( + (back?: boolean) => { + if (route.name === 'ShareView') return; + if (action === 'edit') return; + if (back && oldText.current === '') return; + const draftMessage = selectedMessages?.length ? JSON.stringify({ quotes: selectedMessages, msg: text }) : text; + if (oldText.current !== draftMessage) { + oldText.current = draftMessage; + saveDraftMessage({ rid, tmid, draftMessage }); + } + }, + [action, rid, tmid, text, selectedMessages?.length, route.name] + ); useEffect(() => { if (focused) { @@ -32,7 +35,7 @@ export const useAutoSaveDraft = (text = '') => { return () => { clearInterval(intervalRef.current); - saveMessageDraft(); + saveMessageDraft(true); }; }, [focused, saveMessageDraft]); };