From 6377557ef0929c2eec018cb439438cd78c2dd71a Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 17 Jan 2026 20:33:13 +0700 Subject: [PATCH] refactor(FE): Reset products and deliveries on warehouse change --- .../inventory/movement/form/MovementForm.tsx | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/components/pages/inventory/movement/form/MovementForm.tsx b/src/components/pages/inventory/movement/form/MovementForm.tsx index 40e08c5d..f866192a 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.tsx +++ b/src/components/pages/inventory/movement/form/MovementForm.tsx @@ -993,6 +993,35 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => { ) { formik.setFieldError('destination_warehouse_id', undefined); } + + if ( + newSourceWarehouseId && + newSourceWarehouseId !== formik.values.source_warehouse_id + ) { + formik.setFieldValue('products', [ + { + product: null, + product_id: 0, + product_qty: '', + }, + ]); + formik.setFieldTouched('products', false); + + const updatedDeliveries = formik.values.deliveries.map( + (delivery) => ({ + ...delivery, + products: [ + { + product: null, + product_id: 0, + product_qty: '', + }, + ], + }) + ); + formik.setFieldValue('deliveries', updatedDeliveries); + formik.setFieldTouched('deliveries', false); + } }} options={warehouseOptions} onInputChange={setWarehouseSelectInputValue} @@ -1252,6 +1281,23 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => { `products.${idx}.product_id`, (val as ProductWarehouseOptionType)?.value ); + + const updatedDeliveries = + formik.values.deliveries.map((delivery) => ({ + ...delivery, + products: [ + { + product: null, + product_id: 0, + product_qty: '', + }, + ], + })); + formik.setFieldValue( + 'deliveries', + updatedDeliveries + ); + formik.setFieldTouched('deliveries', false); }} options={productWarehouseOptions} onInputChange={setProductWarehouseSelectInputValue}