cpns / apps /web /src /components /bank /CalloutCard.tsx
pramudya-yb
Rename project from Labas to Pram
2b62b0c
Raw
History Blame Contribute Delete
2.1 kB
import { Button } from "@pram/ui/components/button";
import { MaterialIcon } from "@/components/ui/MaterialIcon";
interface CalloutCardProps {
privateCount: number;
label?: string;
onPublishAll: () => void;
onDismiss: () => void;
}
export function CalloutCard({ privateCount, label = "soal", onPublishAll, onDismiss }: CalloutCardProps) {
if (privateCount <= 0) return null;
return (
<div className="md:col-span-2 mb-4">
<div className="flex items-start gap-3 p-4 rounded-[var(--radius-xl)] bg-[var(--slushie-500)]/10 border-l-4 border-[var(--slushie-500)] border-2 border-[var(--slushie-500)]/20">
<div className="shrink-0 mt-0.5">
<div className="w-8 h-8 rounded-full bg-[var(--slushie-500)]/20 flex items-center justify-center">
<MaterialIcon name="info" className="text-sm text-[var(--slushie-800)]" />
</div>
</div>
<div className="flex-1 min-w-0">
<p className="text-sm font-semibold text-[var(--clay-black)]">
Kamu punya <span className="text-[var(--slushie-800)]">{privateCount} {label} privat</span>
</p>
<p className="text-xs text-[var(--warm-charcoal)] mt-1 leading-relaxed">
Soal privat hanya bisa kamu lihat. Jadikan publik agar soal bisa muncul di daftar paket soal dan diakses pengguna lain.
</p>
<div className="flex items-center gap-2 mt-3">
<Button
size="sm"
onClick={onPublishAll}
className="rounded-[var(--radius-lg)] bg-[var(--clay-black)] text-[var(--pure-white)] hover:bg-[var(--warm-charcoal)] text-xs cursor-pointer"
>
<MaterialIcon name="public" className="text-xs mr-1" />
Jadikan Semua Publik
</Button>
<button
onClick={onDismiss}
className="text-xs text-[var(--warm-charcoal)] hover:text-[var(--clay-black)] transition-colors cursor-pointer font-medium"
>
Tutup
</button>
</div>
</div>
</div>
</div>
);
}