Skip to content

Commit 32f889a

Browse files
prevent isolated view canvas from redrawing when exit full screen (change display instead)
1 parent 2dd397a commit 32f889a

2 files changed

Lines changed: 37 additions & 20 deletions

File tree

editor/scaffolds/canvas/canvas.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,13 @@ export function VisualContentArea() {
2020
const { highlightedLayer, highlightLayer } = useWorkspace();
2121
const dispatch = useDispatch();
2222

23-
const { selectedPage, design, selectedNodes, canvasMode } = state;
23+
const {
24+
selectedPage,
25+
design,
26+
selectedNodes,
27+
canvasMode,
28+
canvasMode_previous,
29+
} = state;
2430

2531
const thisPageNodes = selectedPage
2632
? design.pages.find((p) => p.id == selectedPage).children.filter(Boolean)
@@ -76,8 +82,15 @@ export function VisualContentArea() {
7682
show={canvasMode == "fullscreen-preview"}
7783
onExit={exitFullscreenPreview}
7884
/>
79-
{canvasMode == "isolated-view" && (
85+
{(canvasMode == "isolated-view" ||
86+
(canvasMode == "fullscreen-preview" &&
87+
canvasMode_previous === "isolated-view")) && (
8088
<IsolateModeCanvas
89+
hidden={
90+
// if prev mode is this, hide, not remove.
91+
canvasMode == "fullscreen-preview" &&
92+
canvasMode_previous === "isolated-view"
93+
}
8194
onClose={endIsolatedViewMode}
8295
onEnterFullscreen={startFullscreenPreviewMode}
8396
/>

editor/scaffolds/canvas/isolate-mode.tsx

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ import { useEditorState } from "core/states";
55
import { VanillaDedicatedPreviewRenderer } from "components/app-runner";
66

77
export function IsolateModeCanvas({
8+
hidden = false,
89
onClose,
910
onEnterFullscreen,
1011
}: {
12+
hidden?: boolean;
1113
onClose: () => void;
1214
onEnterFullscreen: () => void;
1315
}) {
@@ -26,24 +28,26 @@ export function IsolateModeCanvas({
2628
};
2729

2830
return (
29-
<IsolatedCanvas
30-
key={widgetKey?.id}
31-
building={isBuilding}
32-
onExit={onClose}
33-
onFullscreen={onEnterFullscreen}
34-
defaultSize={{
35-
width: initialSize?.width ?? 375,
36-
height: initialSize?.height ?? 812,
37-
}}
38-
>
39-
<>
40-
{source ? (
41-
<VanillaDedicatedPreviewRenderer {...state.currentPreview} />
42-
) : (
43-
<EditorCanvasSkeleton />
44-
)}
45-
</>
46-
</IsolatedCanvas>
31+
<div style={{ display: hidden && "hidden" }}>
32+
<IsolatedCanvas
33+
key={widgetKey?.id}
34+
building={isBuilding}
35+
onExit={onClose}
36+
onFullscreen={onEnterFullscreen}
37+
defaultSize={{
38+
width: initialSize?.width ?? 375,
39+
height: initialSize?.height ?? 812,
40+
}}
41+
>
42+
<>
43+
{source ? (
44+
<VanillaDedicatedPreviewRenderer {...state.currentPreview} />
45+
) : (
46+
<EditorCanvasSkeleton />
47+
)}
48+
</>
49+
</IsolatedCanvas>
50+
</div>
4751
);
4852
}
4953

0 commit comments

Comments
 (0)