Triviaverse / src /components /game /GameHeader.tsx
Simeon Garratt
feat: upgrade game UI components with Lucide icons and glass-card styling
7c0c979
Raw
History Blame Contribute Delete
1.41 kB
"use client";
import { Clock } from "lucide-react";
import { TimerBar } from "./TimerBar";
import { ScoreDisplay } from "./ScoreDisplay";
import { StreakCounter } from "./StreakCounter";
interface GameHeaderProps {
timeRemaining: number;
totalTime: number;
questionNumber: number;
totalQuestions: number;
score: number;
streak: number;
showTimer?: boolean;
}
export function GameHeader({
timeRemaining, totalTime, questionNumber, totalQuestions, score, streak, showTimer = true,
}: GameHeaderProps) {
return (
<div className="w-full max-w-2xl space-y-3">
<div className="glass-card p-3 flex items-center justify-between gap-2 flex-wrap">
{showTimer && (
<div className="flex items-center gap-2 px-3 py-1.5 rounded-lg bg-white/10">
<Clock size={14} className="text-gray-400" />
<span className="text-sm font-bold tabular-nums text-gold">{timeRemaining}s</span>
</div>
)}
<div className="flex items-center gap-2 px-3 py-1.5 rounded-lg bg-white/10">
<span className="text-sm text-gray-400">Q</span>
<span className="text-sm font-bold">{questionNumber}/{totalQuestions}</span>
</div>
<ScoreDisplay score={score} />
<StreakCounter streak={streak} />
</div>
{showTimer && <TimerBar timeRemaining={timeRemaining} totalTime={totalTime} />}
</div>
);
}