import { ChevronDown, Pencil, Trash2 } from 'lucide-react'; import { RowActions } from '@/components/data-display'; import { ToggleStatus } from '@/components/data-display'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { useCan } from '@/hooks/use-can'; import { formatNumber } from '@/lib/format'; import { formatCurrency } from '@/lib/utils'; import type { RawMaterial } from './columns'; export type RawMaterialCardRowParams = { rawMaterial: RawMaterial; index: number; isExpanded: boolean; onToggleExpand: () => void; onEdit: (rawMaterial: RawMaterial) => void; onDelete: (rawMaterial: RawMaterial) => void; toggleStatusUrl: (id: number) => string; }; export function RawMaterialCardRow({ rawMaterial, index, isExpanded, onToggleExpand, onEdit, onDelete, toggleStatusUrl, }: RawMaterialCardRowParams) { const { can } = useCan(); const variantCount = rawMaterial.variants_count ?? 0; const totalStock = rawMaterial.total_stock ?? 0; const totalValue = rawMaterial.total_value ?? 0; return (
{index}.

{rawMaterial.name}

{variantCount} varian Total Stok:{' '} {formatNumber(totalStock)} Total Nilai:{' '} {formatCurrency(totalValue)}
{(can('raw_materials.update') || can('raw_materials.delete')) && ( , show: can('raw_materials.update'), onClick: () => onEdit(rawMaterial), }, { label: 'Hapus', icon: ( ), show: can('raw_materials.delete'), onClick: () => onDelete(rawMaterial), }, ]} wrapperClassName="flex shrink-0 items-center gap-1" /> )}
); }