taboola
remove name/email from header, fix metric heading fonts, rename generate practice
b99c0cf
Raw
History Blame Contribute Delete
2.68 kB
import { clearToken } from "../lib/api";
interface HeaderProps {
onLogout: () => void;
isAdmin?: boolean;
showAdmin?: boolean;
onToggleAdmin?: () => void;
showDashboard?: boolean;
onToggleDashboard?: () => void;
}
export function Header({ onLogout, isAdmin, showAdmin, onToggleAdmin, showDashboard, onToggleDashboard }: HeaderProps) {
const handleLogout = () => {
clearToken();
onLogout();
};
return (
<header className="fixed top-0 left-0 right-0 z-50" style={{ background: "#2e5480" }}>
<div className="max-w-7xl mx-auto px-6 py-3.5 flex items-center justify-between">
<div className="flex items-center gap-3">
<div>
<h1 className="font-display text-lg font-semibold text-white leading-none">
ClassLens
</h1>
<p className="text-[11px] text-white/50 mt-0.5 hidden sm:block tracking-wide">
Exam Analysis
</p>
</div>
</div>
<div className="flex items-center gap-4">
{onToggleDashboard && (
<button
onClick={onToggleDashboard}
className={`text-sm font-medium px-3.5 py-1.5 rounded-md border transition-colors ${
showDashboard
? "bg-white/20 text-white border-white/30"
: "text-white/70 border-white/20 hover:text-white hover:border-white/40"
}`}
>
{showDashboard ? "Upload Exam" : "Dashboard"}
</button>
)}
{onToggleAdmin && (
<button
onClick={onToggleAdmin}
className={`text-sm font-medium px-3.5 py-1.5 rounded-md border transition-colors ${
showAdmin
? "bg-white/20 text-white border-white/30"
: "text-white/70 border-white/20 hover:text-white hover:border-white/40"
}`}
>
{showAdmin ? "返回應用" : isAdmin ? "管理後台" : "我的資料"}
</button>
)}
<button
onClick={handleLogout}
className="flex items-center gap-1.5 text-sm text-white/60 hover:text-white transition-colors"
>
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />
<polyline points="16 17 21 12 16 7" />
<line x1="21" y1="12" x2="9" y2="12" />
</svg>
Log out
</button>
</div>
</div>
</header>
);
}