fix(05-04): sync defaultEmail into state after hydration
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
'use client';
|
'use client';
|
||||||
import { useState } from 'react';
|
import { useState, useEffect } from 'react';
|
||||||
import { useRouter } from 'next/navigation';
|
import { useRouter } from 'next/navigation';
|
||||||
import { TextFillForm } from './TextFillForm';
|
import { TextFillForm } from './TextFillForm';
|
||||||
|
|
||||||
@@ -21,6 +21,10 @@ function isValidEmail(email: string): boolean {
|
|||||||
export function PreparePanel({ docId, defaultEmail, clientName, currentStatus }: PreparePanelProps) {
|
export function PreparePanel({ docId, defaultEmail, clientName, currentStatus }: PreparePanelProps) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const [recipients, setRecipients] = useState(defaultEmail ?? '');
|
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<Record<string, string>>({});
|
const [textFillData, setTextFillData] = useState<Record<string, string>>({});
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [result, setResult] = useState<{ ok: boolean; message: string } | null>(null);
|
const [result, setResult] = useState<{ ok: boolean; message: string } | null>(null);
|
||||||
|
|||||||
Reference in New Issue
Block a user