From ba376e17a9c3afb080728a67a8840572c24ceacc Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 4 Jan 2024 17:00:24 +0100 Subject: [PATCH] fix: mobile nav on ios could scroll its background --- src/components/Common/Search/Search.tsx | 17 +++++++++++++---- src/theme/Layout/index.js | 1 - src/utils/use-lock-body-scroll.ts | 23 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 src/utils/use-lock-body-scroll.ts diff --git a/src/components/Common/Search/Search.tsx b/src/components/Common/Search/Search.tsx index ecdb87835c..c4f1863043 100644 --- a/src/components/Common/Search/Search.tsx +++ b/src/components/Common/Search/Search.tsx @@ -6,6 +6,7 @@ import { PageSearchResult } from "@site/search/src/declarations/search/search.di import { createFocusTrap } from "focus-trap"; import Link from "@docusaurus/Link"; import { trackEvent } from "@site/src/utils/matomo"; +import useLockBodyScroll from "../../../utils/use-lock-body-scroll"; let initialTerm = ""; let initialResults: PageSearchResult[] | null = null; @@ -26,6 +27,8 @@ const Search: FC<{ onClose: () => void }> = ({ onClose }) => { >({}); const [loading, setLoading] = useState(false); + useLockBodyScroll(dialogRef); + useEffect(() => { actorRefPromise.current = import("./actor").then(({ createActor }) => { console.log("search module loaded"); @@ -52,9 +55,7 @@ const Search: FC<{ onClose: () => void }> = ({ onClose }) => { window.addEventListener("keydown", onKeydown); - document.body.style.overflow = "hidden"; return () => { - document.body.style.overflow = "unset"; window.removeEventListener("keydown", onKeydown); trap.deactivate(); }; @@ -104,7 +105,15 @@ const Search: FC<{ onClose: () => void }> = ({ onClose }) => { return ( <> + void }> = ({ onClose }) => { aria-modal="true" >
{!noFooter &&