Skip to content

Commit 10dfd2e

Browse files
committed
refactor(MermaidDiagramFrame): remove theme synchronization in fullscreen mode
Eliminate the useEffect that mirrored the document's data-theme attribute onto the fullscreen root, simplifying the component's logic. This change enhances performance by reducing unnecessary observers and event listeners. Made-with: Cursor
1 parent 36460e6 commit 10dfd2e

1 file changed

Lines changed: 0 additions & 24 deletions

File tree

  • website/src/components/MermaidDiagramFrame

website/src/components/MermaidDiagramFrame/index.tsx

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -61,30 +61,6 @@ export default function MermaidDiagramFrame({ children, hint }: MermaidDiagramFr
6161
return () => document.removeEventListener('fullscreenchange', onFs);
6262
}, []);
6363

64-
/** Mirror site light/dark onto the fullscreen root so backgrounds and color-scheme stay correct. */
65-
useEffect(() => {
66-
const el = rootRef.current;
67-
if (!el) return;
68-
69-
if (!fullscreen) {
70-
el.removeAttribute('data-theme');
71-
return;
72-
}
73-
74-
const syncTheme = () => {
75-
const t = document.documentElement.getAttribute('data-theme') || 'light';
76-
el.setAttribute('data-theme', t);
77-
};
78-
79-
syncTheme();
80-
const obs = new MutationObserver(syncTheme);
81-
obs.observe(document.documentElement, { attributes: true, attributeFilter: ['data-theme'] });
82-
return () => {
83-
obs.disconnect();
84-
el.removeAttribute('data-theme');
85-
};
86-
}, [fullscreen]);
87-
8864
const zoomIn = () => setScale((prev) => clamp(prev + STEP, MIN, MAX));
8965
const zoomOut = () => setScale((prev) => clamp(prev - STEP, MIN, MAX));
9066
const resetZoom = () => setScale(1);

0 commit comments

Comments
 (0)