Skip to content

Commit 8dbe6ff

Browse files
authored
fix: close menu popovers when clicking inside preview pane (#301)
1 parent 7c162d1 commit 8dbe6ff

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/components/Preview.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,18 @@ function Preview({ markup, variant, forwardedRef, dispatch }) {
3434

3535
const frameRef = useRef();
3636

37-
const refSetter = useCallback((node) => {
38-
frameRef.current = node;
37+
useEffect(() => {
38+
if (!frameRef.current) {
39+
return;
40+
}
41+
42+
frameRef.current.contentWindow.addEventListener('click', () => {
43+
const click = new MouseEvent('mousedown', {
44+
bubbles: true,
45+
cancelable: true,
46+
});
47+
document.body.dispatchEvent(click);
48+
});
3949
}, []);
4050

4151
const handleLoadIframe = useCallback(() => {
@@ -88,7 +98,7 @@ function Preview({ markup, variant, forwardedRef, dispatch }) {
8898
return (
8999
<div className="w-full h-full flex flex-col relative">
90100
<iframe
91-
ref={refSetter}
101+
ref={frameRef}
92102
src="/sandbox.html"
93103
security="restricted"
94104
className="flex-auto"

0 commit comments

Comments
 (0)