// * Packages import { usePage } from "@inertiajs/react"; import { CheckIcon, XIcon } from "lucide-react"; // * Components shadcn import { Badge } from "@/components/ui/badge"; // * Other import { LaravelEnum } from "@/back/types/global"; type DocumentStatusBadgeProps = { value: number; }; export default function DocumentStatusBadge({ value, }: DocumentStatusBadgeProps) { const { enumDocumentStatus } = usePage().props as unknown as { enumDocumentStatus: LaravelEnum; }; const statusStyles = { [enumDocumentStatus.unpublished.value]: { color: "bg-red-200 dark:bg-red-900", Icon: XIcon, }, [enumDocumentStatus.published?.value ?? "default"]: { color: "bg-green-200 dark:bg-green-900", Icon: CheckIcon, }, }; const enumValue = Object.values(enumDocumentStatus).find( (status) => status.value === value, ); const { color, Icon } = statusStyles[ enumValue?.value as keyof typeof statusStyles ] ?? { color: "bg-green-200 dark:bg-green-900", Icon: CheckIcon, }; return ( {enumValue?.label} ); }