'use client' import { useState, useEffect } from 'react' import { Input } from '@/components/ui/input' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Menu, Search, Archive, StickyNote, Tag, Moon, Sun } from 'lucide-react' import Link from 'next/link' import { usePathname } from 'next/navigation' import { cn } from '@/lib/utils' import { searchNotes } from '@/app/actions/notes' import { useRouter } from 'next/navigation' import { LabelFilter } from './label-filter' interface HeaderProps { selectedLabels?: string[] onLabelFilterChange?: (labels: string[]) => void } export function Header({ selectedLabels = [], onLabelFilterChange }: HeaderProps = {}) { const [searchQuery, setSearchQuery] = useState('') const [isSearching, setIsSearching] = useState(false) const [theme, setTheme] = useState<'light' | 'dark'>('light') const pathname = usePathname() const router = useRouter() useEffect(() => { // Check for saved theme or system preference const savedTheme = localStorage.getItem('theme') as 'light' | 'dark' | null const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' const initialTheme = savedTheme || systemTheme setTheme(initialTheme) document.documentElement.classList.toggle('dark', initialTheme === 'dark') }, []) const toggleTheme = () => { const newTheme = theme === 'light' ? 'dark' : 'light' setTheme(newTheme) localStorage.setItem('theme', newTheme) document.documentElement.classList.toggle('dark', newTheme === 'dark') } const handleSearch = async (query: string) => { setSearchQuery(query) if (query.trim()) { setIsSearching(true) // Search functionality will be handled by the parent component // For now, we'll just update the URL router.push(`/?search=${encodeURIComponent(query)}`) setIsSearching(false) } else { router.push('/') } } return (
{/* Mobile Menu */} Notes Archive {/* Logo */} Memento {/* Search Bar */}
handleSearch(e.target.value)} />
{onLabelFilterChange && ( )}
{/* Theme Toggle */}
{/* Desktop Navigation */}
) }