mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
fix: re-activate srcDoc transport when exiting Edit mode to prevent blank preview (#2931)
When switching from Edit to Draw mode, the preview could go blank because: 1. exitManualEditModeAfterFlush() clears manualEditFrozenSource 2. previewSource switches back to livePreviewSource 3. But activateSrcDocTransport() was not triggered This fix adds a useEffect that detects when manualEditMode transitions from true to false, and explicitly calls activateSrcDocTransport() to ensure the iframe content is refreshed. Fixes #2912
This commit is contained in:
parent
2bab0c2add
commit
0027aa2037
1 changed files with 17 additions and 0 deletions
|
|
@ -4313,6 +4313,23 @@ function HtmlViewer({
|
|||
wasUrlLoadPreviewRef.current = false;
|
||||
activateSrcDocTransport();
|
||||
}, [activateSrcDocTransport, useUrlLoadPreview]);
|
||||
|
||||
// Re-activate srcDoc transport when exiting manual edit mode to ensure
|
||||
// the preview renders correctly when switching from Edit to Draw mode.
|
||||
// Without this, the preview can remain blank because the frozen source
|
||||
// is cleared but the iframe content is not refreshed.
|
||||
const prevManualEditModeRef = useRef(manualEditMode);
|
||||
useEffect(() => {
|
||||
const wasInEditMode = prevManualEditModeRef.current;
|
||||
const isNowInEditMode = manualEditMode;
|
||||
prevManualEditModeRef.current = isNowInEditMode;
|
||||
|
||||
// When exiting edit mode (was true, now false), re-activate the transport
|
||||
if (wasInEditMode && !isNowInEditMode && !useUrlLoadPreview) {
|
||||
activateSrcDocTransport();
|
||||
}
|
||||
}, [manualEditMode, useUrlLoadPreview, activateSrcDocTransport]);
|
||||
|
||||
useEffect(() => {
|
||||
restorePreviewScrollPosition();
|
||||
}, [boardMode, manualEditMode, srcDoc, restorePreviewScrollPosition]);
|
||||
|
|
|
|||
Loading…
Reference in a new issue