diff --git a/ui/src/Components/Grid/AlertGrid/Grid.tsx b/ui/src/Components/Grid/AlertGrid/Grid.tsx
index 682fe870d..3825f4143 100644
--- a/ui/src/Components/Grid/AlertGrid/Grid.tsx
+++ b/ui/src/Components/Grid/AlertGrid/Grid.tsx
@@ -39,6 +39,7 @@ const Grid: FC<{
groupWidth: number;
grid: APIGridT;
outerPadding: number;
+ paddingTop: number;
}> = ({
alertStore,
settingsStore,
@@ -47,6 +48,7 @@ const Grid: FC<{
groupWidth,
grid,
outerPadding,
+ paddingTop,
}) => {
const context = React.useContext(ThemeContext);
const { ref, repack } = useGrid(gridSizesConfig);
@@ -123,6 +125,7 @@ const Grid: FC<{
grid={grid}
isExpanded={isExpanded}
onToggle={onCollapseClick}
+ paddingTop={paddingTop}
/>
void;
-}> = ({ alertStore, settingsStore, grid, isExpanded, onToggle }) => {
+ paddingTop: number;
+}> = ({
+ alertStore,
+ settingsStore,
+ grid,
+ isExpanded,
+ onToggle,
+ paddingTop,
+}) => {
return (
-
+
diff --git a/ui/src/Components/Grid/AlertGrid/index.test.tsx b/ui/src/Components/Grid/AlertGrid/index.test.tsx
index 02a35e699..75bdf0edf 100644
--- a/ui/src/Components/Grid/AlertGrid/index.test.tsx
+++ b/ui/src/Components/Grid/AlertGrid/index.test.tsx
@@ -114,6 +114,7 @@ const ShallowGrid = () => {
groupWidth={420}
grid={MockGrid()}
outerPadding={0}
+ paddingTop={0}
/>
);
};
@@ -128,6 +129,7 @@ const MountedGrid = (theme?: ThemeCtx) => {
groupWidth={420}
grid={MockGrid()}
outerPadding={0}
+ paddingTop={0}
/>,
{
wrappingComponent: ThemeContext.Provider,
@@ -234,6 +236,7 @@ describe("", () => {
groupWidth={420}
grid={alertStore.data.grids[0]}
outerPadding={0}
+ paddingTop={0}
/>,
{
wrappingComponent: ThemeContext.Provider,
@@ -269,6 +272,7 @@ describe("", () => {
groupWidth={420}
grid={alertStore.data.grids[0]}
outerPadding={0}
+ paddingTop={0}
/>,
{
wrappingComponent: ThemeContext.Provider,
diff --git a/ui/src/Components/Grid/AlertGrid/index.tsx b/ui/src/Components/Grid/AlertGrid/index.tsx
index 264b1c6e1..1cbe90332 100644
--- a/ui/src/Components/Grid/AlertGrid/index.tsx
+++ b/ui/src/Components/Grid/AlertGrid/index.tsx
@@ -1,4 +1,4 @@
-import { FC, useEffect, useState, useRef } from "react";
+import { FC, useEffect, useState, useRef, useCallback } from "react";
import { autorun } from "mobx";
import { observer } from "mobx-react-lite";
@@ -57,6 +57,17 @@ const AlertGrid: FC<{
useHotkeys("alt+space", alertStore.status.togglePause);
+ const [paddingTop, setPaddingTop] = useState(0);
+ const onNavbarResize = useCallback((event) => {
+ setPaddingTop(event.detail);
+ }, []);
+ useEffect(() => {
+ window.addEventListener("navbarResize", onNavbarResize);
+ return () => {
+ window.removeEventListener("navbarResize", onNavbarResize);
+ };
+ }, [onNavbarResize]);
+
return (
<>
{alertStore.data.grids.map((grid) => (
-
+
+
+
))}
>
);
diff --git a/ui/src/Components/NavBar/index.tsx b/ui/src/Components/NavBar/index.tsx
index 166e0827c..7c2c7269b 100644
--- a/ui/src/Components/NavBar/index.tsx
+++ b/ui/src/Components/NavBar/index.tsx
@@ -40,6 +40,11 @@ const NavBar: FC<{
const paddingTop = idle ? 0 : height + 8;
document.body.style.paddingTop = `${paddingTop}px`;
setContainerClass(idle ? "invisible" : "visible");
+
+ const toggleEvent = new CustomEvent("navbarResize", {
+ detail: paddingTop,
+ });
+ window.dispatchEvent(toggleEvent);
},
[height]
);
diff --git a/ui/src/Styles/Components/_AlertGrid.scss b/ui/src/Styles/Components/_AlertGrid.scss
index 203ab0c0c..5cc3a2857 100644
--- a/ui/src/Styles/Components/_AlertGrid.scss
+++ b/ui/src/Styles/Components/_AlertGrid.scss
@@ -3,4 +3,7 @@
background-color: $grid-swimlane-bg;
margin-left: 0.3rem;
margin-right: 0.3rem;
+
+ position: sticky;
+ z-index: 101;
}