Spaces:
Runtime error
Runtime error
File size: 1,493 Bytes
a45ece3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import { useEffect, useState } from 'react'
import { Moon, Sun } from 'lucide-react'
export function Header() {
return (
<header className="border-b bg-background/60 backdrop-blur supports-[backdrop-filter]:bg-background/60">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 h-14 flex items-center justify-between">
<div className="flex items-center gap-3">
<span className="text-lg font-bold">ClaimCheck.AI</span>
<span className="text-xs px-2 py-1 rounded-full border bg-muted text-muted-foreground">IBM watsonx powered</span>
</div>
<ThemeToggle />
</div>
</header>
)
}
function ThemeToggle() {
const [isDark, setIsDark] = useState(false)
useEffect(() => {
const saved = localStorage.getItem('cc_theme')
const prefers = window.matchMedia('(prefers-color-scheme: dark)').matches
const dark = saved ? saved === 'dark' : prefers
setIsDark(dark)
}, [])
function toggle() {
const next = !isDark
setIsDark(next)
document.documentElement.classList.toggle('dark', next)
localStorage.setItem('cc_theme', next ? 'dark' : 'light')
}
return (
<button
className="inline-flex items-center gap-2 text-sm px-3 py-2 rounded-md border hover:bg-muted"
aria-label="Toggle color theme"
onClick={toggle}
>
{isDark ? <Sun size={16} /> : <Moon size={16} />}
<span className="hidden sm:inline">{isDark ? 'Light' : 'Dark'} mode</span>
</button>
)
} |