mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-24 15:25:46 +00:00
chore(FE): Refactor tables to remove unused props and imports
This commit is contained in:
@@ -32,7 +32,6 @@ const DeliveryOrderProductTable = ({
|
|||||||
formType,
|
formType,
|
||||||
onEdit,
|
onEdit,
|
||||||
onDelete,
|
onDelete,
|
||||||
onAddProductClick,
|
|
||||||
marketing,
|
marketing,
|
||||||
}: DeliveryOrderProductTableProps) => {
|
}: DeliveryOrderProductTableProps) => {
|
||||||
const onEditRef = useRef(onEdit);
|
const onEditRef = useRef(onEdit);
|
||||||
|
|||||||
@@ -3,15 +3,9 @@
|
|||||||
import Button from '@/components/Button';
|
import Button from '@/components/Button';
|
||||||
import Card from '@/components/Card';
|
import Card from '@/components/Card';
|
||||||
import { SalesOrderProductFormValues } from '@/components/pages/marketing/form/repeater/sales-order/SalesOrderProduct.schema';
|
import { SalesOrderProductFormValues } from '@/components/pages/marketing/form/repeater/sales-order/SalesOrderProduct.schema';
|
||||||
import {
|
import { formatCurrency, formatNumber } from '@/lib/helper';
|
||||||
formatCurrency,
|
|
||||||
formatNumber,
|
|
||||||
formatVechicleNumber,
|
|
||||||
} from '@/lib/helper';
|
|
||||||
import { Icon } from '@iconify/react';
|
import { Icon } from '@iconify/react';
|
||||||
import { useMemo, useRef } from 'react';
|
import { useRef } from 'react';
|
||||||
import * as TanStack from '@tanstack/react-table';
|
|
||||||
import CheckboxInput from '@/components/input/CheckboxInput';
|
|
||||||
|
|
||||||
type SalesOrderProductTableProps = {
|
type SalesOrderProductTableProps = {
|
||||||
data: SalesOrderProductFormValues[];
|
data: SalesOrderProductFormValues[];
|
||||||
@@ -33,116 +27,6 @@ const SalesOrderProductTable = ({
|
|||||||
const onEditRef = useRef(onEdit);
|
const onEditRef = useRef(onEdit);
|
||||||
onEditRef.current = onEdit;
|
onEditRef.current = onEdit;
|
||||||
|
|
||||||
const columns = useMemo(
|
|
||||||
() => [
|
|
||||||
{
|
|
||||||
id: 'select',
|
|
||||||
header: ({
|
|
||||||
table,
|
|
||||||
}: {
|
|
||||||
table: TanStack.Table<SalesOrderProductFormValues>;
|
|
||||||
}) => (
|
|
||||||
<div className='w-full flex flex-row justify-center'>
|
|
||||||
<CheckboxInput
|
|
||||||
name='allRow'
|
|
||||||
checked={table.getIsAllRowsSelected()}
|
|
||||||
indeterminate={table.getIsSomeRowsSelected()}
|
|
||||||
onChange={table.getToggleAllRowsSelectedHandler()}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
),
|
|
||||||
cell: ({ row }: { row: TanStack.Row<SalesOrderProductFormValues> }) => (
|
|
||||||
<div>
|
|
||||||
<CheckboxInput
|
|
||||||
name='row'
|
|
||||||
checked={row.getIsSelected()}
|
|
||||||
disabled={!row.getCanSelect()}
|
|
||||||
indeterminate={row.getIsSomeSelected()}
|
|
||||||
onChange={row.getToggleSelectedHandler()}
|
|
||||||
value={`${row.original.product_warehouse_id}${row.original.kandang_id}`}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
formatVechicleNumber(row.vehicle_number as string),
|
|
||||||
header: 'No. Polisi',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) => row.kandang?.label,
|
|
||||||
header: 'Kandang',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
row.product_warehouse?.label,
|
|
||||||
header: 'Produk',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
formatCurrency(parseFloat(row.unit_price as string)),
|
|
||||||
header: 'Harga Satuan (Rp)',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
formatNumber(parseFloat(row.total_weight as string), undefined, 0, 5),
|
|
||||||
header: 'Total Bobot (Kg)',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
formatNumber(parseFloat(row.qty as string)),
|
|
||||||
header: 'Kuantitas',
|
|
||||||
cell: ({ row }: { row: TanStack.Row<SalesOrderProductFormValues> }) =>
|
|
||||||
formatNumber(
|
|
||||||
parseFloat(row.original.qty as string),
|
|
||||||
undefined,
|
|
||||||
0,
|
|
||||||
5
|
|
||||||
) +
|
|
||||||
' ' +
|
|
||||||
(row.original.uom ?? ''),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
formatNumber(parseFloat(row.avg_weight as string), undefined, 0, 5),
|
|
||||||
header: 'Avg. Bobot (Kg)',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorFn: (row: SalesOrderProductFormValues) =>
|
|
||||||
formatCurrency(parseFloat(row.total_price as string)),
|
|
||||||
header: 'Total Penjualan (Rp)',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
header: 'Aksi',
|
|
||||||
cell: (
|
|
||||||
props: TanStack.CellContext<SalesOrderProductFormValues, unknown>
|
|
||||||
) => (
|
|
||||||
<div className='flex flex-row gap-1 items-center justify-end h-full mt-2'>
|
|
||||||
<Button
|
|
||||||
color='warning'
|
|
||||||
className='p-1'
|
|
||||||
onClick={() => onEditRef.current(props.row.original.id as number)}
|
|
||||||
type='button'
|
|
||||||
>
|
|
||||||
<Icon icon='mdi:pencil' width={16} height={16} /> Edit
|
|
||||||
</Button>
|
|
||||||
<Button
|
|
||||||
color='error'
|
|
||||||
className='p-1'
|
|
||||||
onClick={() =>
|
|
||||||
onDeleteRef.current(props.row.original.id as number)
|
|
||||||
}
|
|
||||||
type='button'
|
|
||||||
>
|
|
||||||
<Icon icon='mdi:trash' width={16} height={16} /> Hapus
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
[]
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className='size-full flex flex-col relative overflow-x-hidden gap-3'>
|
<div className='size-full flex flex-col relative overflow-x-hidden gap-3'>
|
||||||
|
|||||||
Reference in New Issue
Block a user