feat(waybar): hide groups based on screen size

This commit is contained in:
Pihkaal
2024-08-22 14:57:13 +02:00
parent 67a03668a4
commit 03d90db620
6 changed files with 95 additions and 43 deletions

View File

@@ -0,0 +1,31 @@
import { useState, type ReactNode, useEffect } from "react";
import { cn } from "~/utils/react";
export const Responsive = (props: {
className?: string;
minScreenWidth?: number;
children: ReactNode;
}) => {
const [hidden, setHidden] = useState(false);
useEffect(() => {
if (!props.minScreenWidth) return;
const handleResize = () => {
setHidden(
props.minScreenWidth !== undefined &&
window.innerWidth < props.minScreenWidth,
);
};
window.addEventListener("resize", handleResize);
handleResize();
return () => {
window.removeEventListener("resize", handleResize);
};
}, [props.minScreenWidth]);
return hidden ? null : props.children;
};