From 0f1b08b3ea31c0da111179b86f0a80d76671da34 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun <cheeaun@gmail.com> Date: Thu, 23 Mar 2023 15:54:17 +0800 Subject: [PATCH] Very experimental handle "back" to close media modal Don't try this at home, kids --- src/components/media-modal.jsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/media-modal.jsx b/src/components/media-modal.jsx index 6c85b3dd..9fdb5b0f 100644 --- a/src/components/media-modal.jsx +++ b/src/components/media-modal.jsx @@ -22,6 +22,17 @@ function MediaModal({ const carouselFocusItem = useRef(null); useLayoutEffect(() => { carouselFocusItem.current?.scrollIntoView(); + + history.pushState({ mediaModal: true }, ''); + const handlePopState = (e) => { + if (e.state?.mediaModal) { + onClose(); + } + }; + window.addEventListener('popstate', handlePopState); + return () => { + window.removeEventListener('popstate', handlePopState); + }; }, []); const prevStatusID = useRef(statusID); useEffect(() => {