import { useEffect, useState } from "react"; // Same storage key/values as main.tsx and FreightDashboardLayout so the // vendored IAM UI toggle and the host dashboard toggle stay in sync. const THEME_STORAGE_KEY = "edr-theme"; export const useDarkMode = () => { const [isDarkMode, setIsDarkMode] = useState(() => { // Initialize from localStorage or system preference const savedTheme = localStorage.getItem(THEME_STORAGE_KEY); if (savedTheme === "dark" || savedTheme === "light") { return savedTheme === "dark"; } return window.matchMedia("(prefers-color-scheme: dark)").matches; }); useEffect(() => { // Apply dark mode class on mount and when isDarkMode changes if (isDarkMode) { document.documentElement.classList.add("dark"); localStorage.setItem(THEME_STORAGE_KEY, "dark"); } else { document.documentElement.classList.remove("dark"); localStorage.setItem(THEME_STORAGE_KEY, "light"); } }, [isDarkMode]); const toggleDarkMode = () => { setIsDarkMode((prev) => !prev); }; return { isDarkMode, toggleDarkMode }; };