From f8897cce34ea411fcaf8acd8a4f5a61e22eccd40 Mon Sep 17 00:00:00 2001 From: Chandler Copeland Date: Fri, 20 Mar 2026 00:55:22 -0600 Subject: [PATCH] fix(05-04): sync defaultEmail into state after hydration --- .../documents/[docId]/_components/PreparePanel.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/PreparePanel.tsx b/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/PreparePanel.tsx index 1b232bf..1c1f65d 100644 --- a/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/PreparePanel.tsx +++ b/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/PreparePanel.tsx @@ -1,5 +1,5 @@ 'use client'; -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { TextFillForm } from './TextFillForm'; @@ -21,6 +21,10 @@ function isValidEmail(email: string): boolean { export function PreparePanel({ docId, defaultEmail, clientName, currentStatus }: PreparePanelProps) { const router = useRouter(); const [recipients, setRecipients] = useState(defaultEmail ?? ''); + // Sync if defaultEmail arrives after initial render (streaming / hydration timing) + useEffect(() => { + if (defaultEmail) setRecipients(defaultEmail); + }, [defaultEmail]); const [textFillData, setTextFillData] = useState>({}); const [loading, setLoading] = useState(false); const [result, setResult] = useState<{ ok: boolean; message: string } | null>(null);