refactor(FE): Use filter to remove products and deliveries

This commit is contained in:
rstubryan
2026-01-23 15:37:06 +07:00
parent 1d0d42dc16
commit 27c696c797
@@ -471,14 +471,9 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
const removeProduct = useCallback( const removeProduct = useCallback(
(i: number) => { (i: number) => {
const updatedProducts = const updatedProducts = formik.values.products?.filter(
formik.values.products?.reduce((acc: ProductSchema[], item, index) => { (_, idx) => idx !== i
if (index !== i) { );
acc.push(item);
}
return acc;
}, []) ?? [];
formik.setFieldValue('products', updatedProducts); formik.setFieldValue('products', updatedProducts);
if (productQtyErrorShown) { if (productQtyErrorShown) {
@@ -486,7 +481,7 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
setProductQtyErrorShown(false); setProductQtyErrorShown(false);
} }
}, },
[productQtyErrorShown] [formik.values.products, productQtyErrorShown]
); );
const bulkRemoveProduct = useCallback(() => { const bulkRemoveProduct = useCallback(() => {
@@ -563,25 +558,19 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
const removeDelivery = useCallback( const removeDelivery = useCallback(
(i: number) => { (i: number) => {
const updatedDeliveries = const updatedDeliveries = formik.values.deliveries?.filter(
formik.values.deliveries?.reduce( (_, idx) => idx !== i
(acc: DeliverySchema[], item, index) => { );
if (index !== i) {
acc.push(item);
}
return acc;
},
[]
) ?? [];
formik.setFieldValue('deliveries', updatedDeliveries); formik.setFieldValue('deliveries', updatedDeliveries);
setSelectedDeliveries([]);
if (deliveryQtyErrorShown) { if (deliveryQtyErrorShown) {
toast.dismiss(); toast.dismiss();
setDeliveryQtyErrorShown(false); setDeliveryQtyErrorShown(false);
} }
}, },
[deliveryQtyErrorShown] [formik.values.deliveries, deliveryQtyErrorShown, setSelectedDeliveries]
); );
const bulkRemoveDelivery = useCallback(() => { const bulkRemoveDelivery = useCallback(() => {
@@ -1682,7 +1671,9 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
</thead> </thead>
<tbody> <tbody>
{formik.values.deliveries?.map((delivery, idx) => ( {formik.values.deliveries?.map((delivery, idx) => (
<tr key={`delivery-row-${idx}`}> <tr
key={`delivery-row-${idx}-${delivery.supplier_id}-${delivery.vehicle_plate}`}
>
{type !== 'detail' && ( {type !== 'detail' && (
<td className='align-middle!'> <td className='align-middle!'>
<CheckboxInput <CheckboxInput