"use client"; import { ReactNode, useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Menu } from "lucide-react"; import { useSidebarContext } from "@/components/layout/sidebar-context"; import { useIsMobile } from "@/hooks/use-mobile"; interface PageHeaderProps { title: string; description?: string | ReactNode; actions?: ReactNode; rightContent?: ReactNode; } export function PageHeader({ title, description, actions, rightContent, }: PageHeaderProps) { const { setOpen } = useSidebarContext(); const isMobile = useIsMobile(); const [textColor, setTextColor] = useState("var(--foreground)"); useEffect(() => { const checkDarkBackground = () => { const pageBackground = document.querySelector(".page-background"); if (pageBackground?.classList.contains("bg-solid-dark")) { setTextColor("#f5f5f5"); } else { setTextColor("var(--foreground)"); } }; checkDarkBackground(); const observer = new MutationObserver(checkDarkBackground); const pageBackground = document.querySelector(".page-background"); if (pageBackground) { observer.observe(pageBackground, { attributes: true, attributeFilter: ["class"], }); } return () => observer.disconnect(); }, []); return (
{isMobile && ( )}

{title}

{rightContent &&
{rightContent}
}
{description && (
{description}
)}
{actions && (
{actions}
)}
); }