From cf996d67bb5a1f6bbbdb3c914eec6984bbc18858 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Thu, 23 May 2024 02:37:40 +0200 Subject: [PATCH] Add "isMobileWidth" util function --- src/components/navbar/DefaultNavBar.tsx | 8 +++----- src/components/tracker/TrackerMangaCard.tsx | 8 +++----- src/lib/ui/MediaQuery.tsx | 5 +++++ src/screens/Extensions.tsx | 6 ++---- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/components/navbar/DefaultNavBar.tsx b/src/components/navbar/DefaultNavBar.tsx index 0ab0aab2..031e9523 100644 --- a/src/components/navbar/DefaultNavBar.tsx +++ b/src/components/navbar/DefaultNavBar.tsx @@ -12,8 +12,6 @@ import Toolbar from '@mui/material/Toolbar'; import Typography from '@mui/material/Typography'; import IconButton from '@mui/material/IconButton'; import Box from '@mui/material/Box'; -import useMediaQuery from '@mui/material/useMediaQuery'; -import { useTheme } from '@mui/material/styles'; import CollectionsBookmarkIcon from '@mui/icons-material/CollectionsBookmark'; import CollectionsOutlinedBookmarkIcon from '@mui/icons-material/CollectionsBookmarkOutlined'; import NewReleasesIcon from '@mui/icons-material/NewReleases'; @@ -33,6 +31,7 @@ import { DesktopSideBar } from '@/components/navbar/navigation/DesktopSideBar'; import { MobileBottomBar } from '@/components/navbar/navigation/MobileBottomBar'; import { useBackButton } from '@/util/useBackButton.ts'; import { getOptionForDirection } from '@/theme.ts'; +import { MediaQuery } from '@/lib/ui/MediaQuery.tsx'; const navbarItems: Array = [ { @@ -75,11 +74,10 @@ const navbarItems: Array = [ export function DefaultNavBar() { const { title, action, override } = useContext(NavBarContext); - const theme = useTheme(); const { pathname } = useLocation(); const handleBack = useBackButton(); - const isMobileWidth = useMediaQuery(theme.breakpoints.down('sm')); + const isMobileWidth = MediaQuery.useIsMobileWidth(); const isMainRoute = navbarItems.some(({ path }) => path === pathname); // Allow default navbar to be overrided @@ -102,7 +100,7 @@ export function DefaultNavBar() { ( @@ -107,8 +106,7 @@ export const TrackerMangaCard = ({ onSelect: () => void; }) => { const { t } = useTranslation(); - const theme = useTheme(); - const isMobileWidth = useMediaQuery(theme.breakpoints.down('sm')); + const isMobileWidth = MediaQuery.useIsMobileWidth(); return ( diff --git a/src/lib/ui/MediaQuery.tsx b/src/lib/ui/MediaQuery.tsx index 1c86dcbd..acfd0e02 100644 --- a/src/lib/ui/MediaQuery.tsx +++ b/src/lib/ui/MediaQuery.tsx @@ -7,9 +7,14 @@ */ import useMediaQuery from '@mui/material/useMediaQuery'; +import { getCurrentTheme } from '@/theme.ts'; export class MediaQuery { static useIsTouchDevice(): boolean { return useMediaQuery('not (pointer: fine)'); } + + static useIsMobileWidth(): boolean { + return useMediaQuery(getCurrentTheme().breakpoints.down('sm')); + } } diff --git a/src/screens/Extensions.tsx b/src/screens/Extensions.tsx index 7ef184a3..7a646adb 100644 --- a/src/screens/Extensions.tsx +++ b/src/screens/Extensions.tsx @@ -15,9 +15,7 @@ import Button from '@mui/material/Button'; import Stack from '@mui/material/Stack'; import Tooltip from '@mui/material/Tooltip'; import Typography from '@mui/material/Typography'; -import useMediaQuery from '@mui/material/useMediaQuery'; import { useTranslation } from 'react-i18next'; -import { useTheme } from '@mui/material/styles'; import { Link } from 'react-router-dom'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { extensionDefaultLangs, DefaultLanguage, langSortCmp } from '@/util/language'; @@ -41,6 +39,7 @@ import { StyledGroupHeader } from '@/components/virtuoso/StyledGroupHeader.tsx'; import { StyledGroupItemWrapper } from '@/components/virtuoso/StyledGroupItemWrapper.tsx'; import { EmptyViewAbsoluteCentered } from '@/components/util/EmptyViewAbsoluteCentered.tsx'; import { defaultPromiseErrorHandler } from '@/util/defaultPromiseErrorHandler.ts'; +import { MediaQuery } from '@/lib/ui/MediaQuery.tsx'; const LANGUAGE = 0; const EXTENSIONS = 1; @@ -103,8 +102,7 @@ export function Extensions() { const { t } = useTranslation(); const { setAction } = useContext(NavBarContext); - const theme = useTheme(); - const isMobileWidth = useMediaQuery(theme.breakpoints.down('sm')); + const isMobileWidth = MediaQuery.useIsMobileWidth(); const { data: serverSettingsData,