"use client" import * as React from "react" // --- UI Primitives --- import { Button } from "@/components/tiptap-ui-primitive/button" // --- Icons --- import { MoonStarIcon } from "@/components/tiptap-icons/moon-star-icon" import { SunIcon } from "@/components/tiptap-icons/sun-icon" export function ThemeToggle() { const [isDarkMode, setIsDarkMode] = React.useState(false) React.useEffect(() => { const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)") const handleChange = () => setIsDarkMode(mediaQuery.matches) mediaQuery.addEventListener("change", handleChange) return () => mediaQuery.removeEventListener("change", handleChange) }, []) React.useEffect(() => { const initialDarkMode = !!document.querySelector('meta[name="color-scheme"][content="dark"]') || window.matchMedia("(prefers-color-scheme: dark)").matches setIsDarkMode(initialDarkMode) }, []) React.useEffect(() => { document.documentElement.classList.toggle("dark", isDarkMode) }, [isDarkMode]) const toggleDarkMode = () => setIsDarkMode((isDark) => !isDark) return ( ) }