From 7bd4af3a72b3b472bc53ba57a5fc602e61b18c08 Mon Sep 17 00:00:00 2001 From: Ahmet Kilinc Date: Sat, 3 May 2025 22:29:56 +0100 Subject: [PATCH 1/6] fixes drafts saving as new each time --- apps/mail/components/create/email-composer.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/mail/components/create/email-composer.tsx b/apps/mail/components/create/email-composer.tsx index e00458389..d9a1b0ba5 100644 --- a/apps/mail/components/create/email-composer.tsx +++ b/apps/mail/components/create/email-composer.tsx @@ -23,6 +23,7 @@ import { useThread } from '@/hooks/use-threads'; import { useSession } from '@/lib/auth-client'; import { Input } from '@/components/ui/input'; import { EditorContent } from '@tiptap/react'; +import { useParams } from 'next/navigation'; import { useForm } from 'react-hook-form'; import { useRef, useState } from 'react'; import { useQueryState } from 'nuqs'; @@ -98,7 +99,8 @@ export function EmailComposer({ const [isComposeOpen] = useQueryState('isComposeOpen'); const { data: emailData } = useThread(threadId ?? null); const { data: session } = useSession(); - const [draftId] = useQueryState('draftId'); + const [draftId, setDraftId] = useState(null); + // const { data: draft } = useDraft(draftId ?? null); const [aiGeneratedMessage, setAiGeneratedMessage] = useState(null); const [aiIsLoading, setAiIsLoading] = useState(false); @@ -303,6 +305,8 @@ export function EmailComposer({ url: url.pathname + url.search, }; + setDraftId(draftId); + window.history.replaceState(nextState, '', url); }; From 1fd655ac4661178094bf89b4dfddbc1470f637a0 Mon Sep 17 00:00:00 2001 From: Ahmet Kilinc Date: Sat, 3 May 2025 22:29:56 +0100 Subject: [PATCH 2/6] fixes drafts saving as new each time --- apps/mail/components/create/email-composer.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/mail/components/create/email-composer.tsx b/apps/mail/components/create/email-composer.tsx index f0ef47379..7527d9c64 100644 --- a/apps/mail/components/create/email-composer.tsx +++ b/apps/mail/components/create/email-composer.tsx @@ -25,6 +25,7 @@ import { useSession } from '@/lib/auth-client'; import { serializeFiles } from '@/lib/schemas'; import { Input } from '@/components/ui/input'; import { EditorContent } from '@tiptap/react'; +import { useParams } from 'next/navigation'; import { useForm } from 'react-hook-form'; import { useQueryState } from 'nuqs'; import pluralize from 'pluralize'; @@ -100,7 +101,8 @@ export function EmailComposer({ const [isComposeOpen] = useQueryState('isComposeOpen'); const { data: emailData } = useThread(threadId ?? null); const { data: session } = useSession(); - const [draftId] = useQueryState('draftId'); + const [draftId, setDraftId] = useState(null); + // const { data: draft } = useDraft(draftId ?? null); const [aiGeneratedMessage, setAiGeneratedMessage] = useState(null); const [aiIsLoading, setAiIsLoading] = useState(false); @@ -315,6 +317,8 @@ export function EmailComposer({ url: url.pathname + url.search, }; + setDraftId(draftId); + window.history.replaceState(nextState, '', url); }; From dc2d77c4acb3091211756c68add2a1c4fb435f1e Mon Sep 17 00:00:00 2001 From: Ahmet Kilinc Date: Tue, 6 May 2025 14:05:52 +0100 Subject: [PATCH 3/6] remove unused import --- apps/mail/components/create/email-composer.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/mail/components/create/email-composer.tsx b/apps/mail/components/create/email-composer.tsx index 7527d9c64..113cc61dc 100644 --- a/apps/mail/components/create/email-composer.tsx +++ b/apps/mail/components/create/email-composer.tsx @@ -25,7 +25,6 @@ import { useSession } from '@/lib/auth-client'; import { serializeFiles } from '@/lib/schemas'; import { Input } from '@/components/ui/input'; import { EditorContent } from '@tiptap/react'; -import { useParams } from 'next/navigation'; import { useForm } from 'react-hook-form'; import { useQueryState } from 'nuqs'; import pluralize from 'pluralize'; From 86f19fd32ebca6e9463e72107bd157f88d9aef58 Mon Sep 17 00:00:00 2001 From: Ahmet Kilinc Date: Tue, 6 May 2025 14:06:21 +0100 Subject: [PATCH 4/6] remove unused variable --- apps/mail/components/create/email-composer.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/mail/components/create/email-composer.tsx b/apps/mail/components/create/email-composer.tsx index 113cc61dc..bf813f49b 100644 --- a/apps/mail/components/create/email-composer.tsx +++ b/apps/mail/components/create/email-composer.tsx @@ -101,8 +101,6 @@ export function EmailComposer({ const { data: emailData } = useThread(threadId ?? null); const { data: session } = useSession(); const [draftId, setDraftId] = useState(null); - - // const { data: draft } = useDraft(draftId ?? null); const [aiGeneratedMessage, setAiGeneratedMessage] = useState(null); const [aiIsLoading, setAiIsLoading] = useState(false); From 67a450bb5367ec27048c373f85242499a6473b75 Mon Sep 17 00:00:00 2001 From: Ahmet Kilinc Date: Tue, 6 May 2025 14:06:53 +0100 Subject: [PATCH 5/6] spacing --- apps/mail/components/create/email-composer.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/mail/components/create/email-composer.tsx b/apps/mail/components/create/email-composer.tsx index bf813f49b..6abea8099 100644 --- a/apps/mail/components/create/email-composer.tsx +++ b/apps/mail/components/create/email-composer.tsx @@ -313,9 +313,7 @@ export function EmailComposer({ as: url.pathname + url.search, url: url.pathname + url.search, }; - setDraftId(draftId); - window.history.replaceState(nextState, '', url); }; From 63c0f60b043ece805f84bd210bfbf3ca05272b4d Mon Sep 17 00:00:00 2001 From: Ahmet Kilinc Date: Tue, 6 May 2025 22:22:36 +0100 Subject: [PATCH 6/6] fixes emails aving as new email when opening a new draft --- apps/mail/components/create/email-composer.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/mail/components/create/email-composer.tsx b/apps/mail/components/create/email-composer.tsx index 6abea8099..02636c17d 100644 --- a/apps/mail/components/create/email-composer.tsx +++ b/apps/mail/components/create/email-composer.tsx @@ -100,7 +100,8 @@ export function EmailComposer({ const [isComposeOpen] = useQueryState('isComposeOpen'); const { data: emailData } = useThread(threadId ?? null); const { data: session } = useSession(); - const [draftId, setDraftId] = useState(null); + const [urlDraftId] = useQueryState('draftId'); + const [draftId, setDraftId] = useState(urlDraftId ?? null); const [aiGeneratedMessage, setAiGeneratedMessage] = useState(null); const [aiIsLoading, setAiIsLoading] = useState(false); @@ -352,6 +353,12 @@ export function EmailComposer({ } }; + useEffect(() => { + if (urlDraftId !== draftId) { + setDraftId(urlDraftId ?? null); + } + }, [urlDraftId]); + useEffect(() => { if (!hasUnsavedChanges) return;