From 9a988e82c42dec240593cc3f62c7d2b5a378bc35 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Mon, 14 Jul 2025 00:53:56 -0400 Subject: [PATCH] Refactor z-index management by introducing Z_INDEX constants and updating components to use them for consistent layering --- src/components/common/FadeModal.jsx | 4 +++ src/constants/zIndex.js | 35 ++++++++++++++++++++++++++ src/service/AlertsProvider.jsx | 3 ++- src/views/components/NavBar.jsx | 7 ++++-- src/views/components/NetworkBanner.jsx | 3 ++- 5 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 src/constants/zIndex.js diff --git a/src/components/common/FadeModal.jsx b/src/components/common/FadeModal.jsx index 745cada..88e11de 100644 --- a/src/components/common/FadeModal.jsx +++ b/src/components/common/FadeModal.jsx @@ -1,4 +1,5 @@ import { Modal, ModalDialog, ModalOverflow } from '@mui/joy' +import Z_INDEX from '../../constants/zIndex' /** * FadeModal component with consistent fade-in/out animations @@ -18,8 +19,10 @@ const FadeModal = ({ open={open} onClose={onClose} sx={{ + zIndex: Z_INDEX.MODAL_BACKDROP, '& .MuiModal-backdrop': { backdropFilter: backdropBlur ? 'blur(3px)' : 'none', + zIndex: Z_INDEX.MODAL_BACKDROP, }, }} keepMounted @@ -39,6 +42,7 @@ const FadeModal = ({ { top: 0, left: 0, width: '100%', - zIndex: 10000, + zIndex: Z_INDEX.ALERTS, overflow: 'hidden', }} > diff --git a/src/views/components/NavBar.jsx b/src/views/components/NavBar.jsx index a1fd787..bd8bb2e 100644 --- a/src/views/components/NavBar.jsx +++ b/src/views/components/NavBar.jsx @@ -22,6 +22,7 @@ import { ListItemDecorator, Typography, } from '@mui/joy' + import { useState } from 'react' import { useLocation, useNavigate } from 'react-router-dom' import { version } from '../../../package.json' @@ -81,6 +82,8 @@ const links = [ }, ] +import Z_INDEX from '../../constants/zIndex' + const NavBar = () => { const navigate = useNavigate() const [drawerOpen, setDrawerOpen] = useState(false) @@ -110,7 +113,7 @@ const NavBar = () => { style={{ paddingTop: `calc( env(safe-area-inset-top, 0px))`, position: 'sticky', - zIndex: 10000, + zIndex: Z_INDEX.NAVBAR, top: 0, minHeight: '45px', backgroundColor: 'var(--joy-palette-background-body)', @@ -164,7 +167,7 @@ const NavBar = () => { height: 'calc(100vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))', overflow: 'auto', - zIndex: 999, + zIndex: Z_INDEX.DRAWER, }, }} > diff --git a/src/views/components/NetworkBanner.jsx b/src/views/components/NetworkBanner.jsx index 50c9806..ca22991 100644 --- a/src/views/components/NetworkBanner.jsx +++ b/src/views/components/NetworkBanner.jsx @@ -1,6 +1,7 @@ import { WifiOff } from '@mui/icons-material' import { Alert, Box } from '@mui/joy' import { useEffect, useState } from 'react' +import Z_INDEX from '../../constants/zIndex' import { networkManager } from '../../hooks/NetworkManager' const NetworkBanner = () => { @@ -23,7 +24,7 @@ const NetworkBanner = () => { position: 'fixed', top: 0, left: 0, - zIndex: 10001, + zIndex: Z_INDEX.NETWORK_BANNER, padding: '4px', pt: `calc( env(safe-area-inset-top, 0px))`, width: '100%',