fix: layer mobile widget details above header

This commit is contained in:
ajnart committed 2026-08-14 11:32:09 +02:00
1 parent 251a4c8ae8
commit 35b7c4fc2d
6 files changed
+36 -2

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
import { getDefaultZIndex } from "@mantine/core";
export const appShellHeaderZIndex = getDefaultZIndex("modal") + 1;
export const modalZIndex = appShellHeaderZIndex + 1;
export const managedModalZIndex = modalZIndex + 1;
+16
View File
@@ -0,0 +1,16 @@
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,5 +1,7 @@
import type { MantineTheme, MantineThemeComponent, ModalProps } from "@mantine/core";
import { modalZIndex } from "./layers";
export const modalSizeSelect = "xxl";
export const modalSizeForm = "lg";
@@ -8,6 +10,9 @@ 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" } };