import { ChevronDown, Pencil, Trash2 } from 'lucide-react'; import { RowActions } from '@/components/row-actions'; import { ToggleStatus } from '@/components/toggle-status'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; 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 variants = rawMaterial.raw_material_prices ?? []; const totalStock = variants.reduce( (sum, v) => sum + (Number(v.stock) || 0), 0, ); const totalValue = variants.reduce( (sum, v) => sum + (Number(v.price) || 0) * (Number(v.stock) || 0), 0, ); return (
{index}.

{rawMaterial.name}

{variants.length} varian Total Stok:{' '} {formatNumber(totalStock)} Total Nilai:{' '} {formatCurrency(totalValue)}
, onClick: () => onEdit(rawMaterial), }, { label: 'Hapus', icon: ( ), onClick: () => onDelete(rawMaterial), }, ]} wrapperClassName="flex shrink-0 items-center gap-1" />
); }