import useMediaQuery from '@/hooks/useMediaQuery'; import useNavbar from '@/hooks/useNavbar'; import Link from 'next/link'; import { FC, useEffect, useState } from 'react'; import { MdDarkMode, MdLightMode } from 'react-icons/md'; import { GiHamburgerMenu } from 'react-icons/gi'; const DesktopLinks: FC = () => { const { pages, currentURL } = useNavbar(); return (
); }; const MobileLinks: FC = () => { const { pages } = useNavbar(); return (
); }; const useTheme = () => { const [theme, setTheme] = useState<'light' | 'dark'>('light'); const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)'); useEffect(() => { const savedTheme = localStorage.getItem('theme'); if (prefersDarkMode && !savedTheme) { setTheme('dark'); localStorage.setItem('theme', 'dark'); return; } setTheme(savedTheme as 'light' | 'dark'); }, [prefersDarkMode, theme]); return { theme, setTheme }; }; const Navbar = () => { const isDesktopView = useMediaQuery('(min-width: 1024px)'); const { theme, setTheme } = useTheme(); return ( ); }; export default Navbar;