import { Button } from "@pram/ui/components/button";
import { MaterialIcon } from "@/components/ui/MaterialIcon";
import { formatLabel } from "@/lib/format";
import type { Question } from "@/lib/types";
interface QuestionCardProps {
q: Question;
isFeatured?: boolean;
isInBundle: boolean;
disabled?: boolean;
selected?: boolean;
bulkSelect?: boolean;
onToggle: () => void;
onOpenDetail: () => void;
isOwner: boolean;
onTogglePublic: () => void;
onDelete: () => void;
}
export function QuestionCard({
q,
isFeatured = false,
isInBundle,
disabled = false,
selected = false,
bulkSelect = false,
onToggle,
onOpenDetail,
isOwner,
onTogglePublic,
onDelete,
}: QuestionCardProps) {
const isPrivate = isOwner && !q.isPublic;
return (
{ if (!disabled) onOpenDetail(); }}
className={`border-2 rounded-[var(--radius-xl)] h-full flex flex-col transition-all ${
disabled
? "bg-[var(--oat-light)] border-[var(--oat-border)] opacity-40 cursor-not-allowed"
: selected
? "bg-[var(--matcha-100)] border-[var(--matcha-600)] clay-hover cursor-pointer ring-2 ring-[var(--matcha-400)]"
: isInBundle
? "bg-[var(--matcha-100)] border-[var(--clay-black)] clay-shadow clay-hover cursor-pointer"
: isPrivate
? "bg-[var(--pure-white)] border-[var(--oat-border)] border-l-[var(--warm-charcoal)] border-l-4 clay-shadow clay-hover cursor-pointer"
: "bg-[var(--pure-white)] border-[var(--oat-border)] clay-shadow clay-hover cursor-pointer"
}`}
>
{bulkSelect && (
{selected ? "Terpilih" : "Pilih"}
)}
{q.examTypeName}
{q.sectionTypeName}
{disabled && (
Terkunci
)}
{q.avgRating && (
{q.avgRating}
)}
{q.questionText}
{q.passageText}
{formatLabel(q.format ?? "")}
Lv.{q.difficulty}
{q.usageCount}x digunakan
{/* Actions row */}
{isOwner && !bulkSelect && (
e.stopPropagation()}>
)}
{!bulkSelect && (
)}
);
}