Revert "fix: layer mobile widget details above header"

This reverts commit a540f07920.
This commit is contained in:
ajnart committed 2026-07-29 20:06:59 +02:00
1 parent ee3b45b73a
commit 55ee5ef063
7 files changed
+4 -38

No files matched your search

+2 -2
View File
@@ -2,7 +2,7 @@ import type { ReactNode } from "react";
import { AppShellHeader, Group, UnstyledButton } from "@mantine/core";
import { Spotlight } from "@homarr/spotlight";
import { appShellHeaderZIndex, Link } from "@homarr/ui";
import { Link } from "@homarr/ui";
import { ClientBurger } from "./header/burger";
import { DesktopSearchInput, MobileSearchButton } from "./header/search";
@@ -31,7 +31,7 @@ export const MainHeader = ({
return (
<AppShellHeader
maw="100vw"
zIndex={appShellHeaderZIndex}
zIndex={201}
style={{
overflowX: "hidden",
paddingTop: withSafeArea ? "env(safe-area-inset-top)" : undefined,
+2 -3
View File
@@ -2,13 +2,12 @@
import type { PropsWithChildren } from "react";
import { createContext, useCallback, useContext, useEffect, useReducer, useRef, useState } from "react";
import { Modal } from "@mantine/core";
import { getDefaultZIndex, Modal } from "@mantine/core";
import { randomId } from "@mantine/hooks";
import type { stringOrTranslation } from "@homarr/translation";
import { translateIfNecessary } from "@homarr/translation";
import { useI18n } from "@homarr/translation/client";
import { managedModalZIndex } from "@homarr/ui";
import type { ConfirmModalProps } from "./confirm-modal";
import { ConfirmModal } from "./confirm-modal";
@@ -100,7 +99,7 @@ const ActiveModal = ({ modal, state, handleCloseModal }: ActiveModalProps) => {
return (
<Modal
key={modal.id}
zIndex={managedModalZIndex}
zIndex={getDefaultZIndex("modal") + 1}
style={{
userSelect: modal.id === state.current?.id ? undefined : "none",
}}
-1
View File
@@ -3,7 +3,6 @@ import type { MantineProviderProps } from "@mantine/core";
import { theme } from "./theme";
export { theme } from "./theme";
export { appShellHeaderZIndex, managedModalZIndex, modalZIndex } from "./theme/layers";
export { modalSizeForm, modalSizeSelect } from "./theme/modal";
export * from "./components";
-6
View File
@@ -1,6 +1,5 @@
import { createTheme, rem } from "@mantine/core";
import { modalZIndex } from "./theme/layers";
import { modalComponent } from "./theme/modal";
export const theme = createTheme({
@@ -102,11 +101,6 @@ export const theme = createTheme({
overlayProps: { radius: "sm", blur: 2 },
},
},
Drawer: {
defaultProps: {
zIndex: modalZIndex,
},
},
Modal: modalComponent,
},
});
-5
View File
@@ -1,5 +0,0 @@
import { getDefaultZIndex } from "@mantine/core";
export const appShellHeaderZIndex = getDefaultZIndex("modal") + 1;
export const modalZIndex = appShellHeaderZIndex + 1;
export const managedModalZIndex = modalZIndex + 1;
-16
View File
@@ -1,16 +0,0 @@
import { getDefaultZIndex } from "@mantine/core";
import { describe, expect, test } from "vitest";
import { theme } from "../theme";
import { appShellHeaderZIndex, managedModalZIndex, modalZIndex } from "./layers";
import { modalComponent } from "./modal";
describe("application layers", () => {
test("keeps dialogs above the fixed header and managed dialogs above regular dialogs", () => {
expect(appShellHeaderZIndex).toBe(getDefaultZIndex("modal") + 1);
expect(modalZIndex).toBe(appShellHeaderZIndex + 1);
expect(managedModalZIndex).toBe(modalZIndex + 1);
expect(modalComponent.defaultProps).toMatchObject({ zIndex: modalZIndex });
expect(theme.components?.Drawer?.defaultProps).toMatchObject({ zIndex: modalZIndex });
});
});
-5
View File
@@ -1,7 +1,5 @@
import type { MantineTheme, MantineThemeComponent, ModalProps } from "@mantine/core";
import { modalZIndex } from "./layers";
export const modalSizeSelect = "xxl";
export const modalSizeForm = "lg";
@@ -10,9 +8,6 @@ const fixedModalSizes = new Set([modalSizeSelect, modalSizeForm]);
const modalWidth = "min(var(--modal-size), calc(100vw - 2 * var(--mantine-spacing-md)))";
export const modalComponent: MantineThemeComponent = {
defaultProps: {
zIndex: modalZIndex,
},
vars: (_theme: MantineTheme, props: Partial<ModalProps>) => {
if (props.size === modalSizeSelect) {
return { root: { "--modal-size": "75rem" } };