Skip to content

Commit 847d431

Browse files
committed
fix(session): reset document synchronously during render
Move resetDocument from useEffect to render-time execution so the Zustand store has correct data before child effects fire. Prevents onChange from emitting a stale empty document on template switch.
1 parent 45a10c2 commit 847d431

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/app/index.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -261,14 +261,14 @@ const EmailEditor = forwardRef<EmailEditorRef, EmailEditorProps>((props, ref) =>
261261
[initialTemplateProp],
262262
);
263263

264-
// Reset the editor when a different template is provided
264+
// Reset the editor synchronously during render (not in an effect) so the
265+
// Zustand store is up-to-date before child components mount / effects fire.
266+
// This prevents the onChange callback from emitting a stale empty document.
265267
const prevTemplateRef = useRef<TEditorConfiguration | undefined>(undefined);
266-
useEffect(() => {
267-
if (resolvedTemplate && resolvedTemplate !== prevTemplateRef.current) {
268-
prevTemplateRef.current = resolvedTemplate;
269-
resetDocument(resolvedTemplate);
270-
}
271-
}, [resolvedTemplate]);
268+
if (resolvedTemplate && resolvedTemplate !== prevTemplateRef.current) {
269+
prevTemplateRef.current = resolvedTemplate;
270+
resetDocument(resolvedTemplate);
271+
}
272272

273273
// Update persistence mode when it changes
274274
useEffect(() => {

0 commit comments

Comments
 (0)