From f395819acdbeb0010bbd9a7cd23b78dd0a2d22aa Mon Sep 17 00:00:00 2001 From: Chandler Copeland Date: Sat, 21 Mar 2026 16:25:51 -0600 Subject: [PATCH] feat(12.1-02): extend DocumentPageClient with selectedFieldId + textFillData shared state - Add selectedFieldId and textFillData state variables - Add handleFieldValueChange and handleQuickFill callbacks (both call setPreviewToken(null)) - Pass selectedFieldId, textFillData, onFieldSelect, onFieldValueChange to PdfViewerWrapper - Pass textFillData, selectedFieldId, onQuickFill to PreparePanel - textFillData starts as {} (no clientPropertyAddress seeding) --- .../_components/DocumentPageClient.tsx | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/DocumentPageClient.tsx b/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/DocumentPageClient.tsx index 8f5bf75..b28a615 100644 --- a/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/DocumentPageClient.tsx +++ b/teressa-copeland-homes/src/app/portal/(protected)/documents/[docId]/_components/DocumentPageClient.tsx @@ -23,15 +23,35 @@ export function DocumentPageClient({ clientPropertyAddress, }: DocumentPageClientProps) { const [previewToken, setPreviewToken] = useState(null); + const [selectedFieldId, setSelectedFieldId] = useState(null); + const [textFillData, setTextFillData] = useState>({}); const handleFieldsChanged = useCallback(() => { setPreviewToken(null); }, []); + const handleFieldValueChange = useCallback((fieldId: string, value: string) => { + setTextFillData(prev => ({ ...prev, [fieldId]: value })); + setPreviewToken(null); // TXTF-03: reset staleness on any text value change + }, []); + + const handleQuickFill = useCallback((fieldId: string, value: string) => { + setTextFillData(prev => ({ ...prev, [fieldId]: value })); + setPreviewToken(null); // TXTF-03: reset staleness on quick fill + }, []); + return (
- +