fix(FE): fixing issue form not reset after success submit

This commit is contained in:
randy-ar
2026-02-05 06:05:01 +07:00
parent 43dcbf73ee
commit 2f1c4e3c87
4 changed files with 22 additions and 6 deletions
@@ -296,6 +296,7 @@ const SalesOrderFormModal = ({
// ================== HANDLER ==================
const nextButtonHandler = () => {
setSelectedMarketingProduct(null);
setStep(step + 1);
};
const prevButtonHandler = () => {
@@ -667,6 +668,7 @@ const SalesOrderFormModal = ({
</div>
<div className='flex flex-1 flex-col'>
<MemoizedSalesOrderProductForm
key={selectedMarketingProduct?.id ?? 'new'}
onSubmitForm={handleAddSubmitSO}
initialValues={selectedMarketingProduct ?? undefined}
exisitingValues={memoSalesOrder}
@@ -109,6 +109,7 @@ export const SalesProductToFieldValues = (
value: product.product_warehouse.id,
label: product.product_warehouse.product.name,
},
product_warehouse_data: product.product_warehouse,
product_warehouse_id: product.product_warehouse.id,
unit_price: product.unit_price,
total_weight: product.total_weight,
@@ -135,6 +136,7 @@ export const SalesProductToFieldValues = (
: null,
total_peti: product.total_peti,
weight_per_convertion: product.weight_per_convertion,
uom: product.product_warehouse.product.uom.name,
};
};
export const DeliveryProductToFieldValues = (
@@ -1,3 +1,4 @@
import { ProductWarehouse } from '@/types/api/inventory/product-warehouse';
import * as Yup from 'yup';
type SalesOrderProductSchemaType = {
@@ -11,6 +12,7 @@ type SalesOrderProductSchemaType = {
value: number;
label: string;
} | null;
product_warehouse_data?: ProductWarehouse | null | undefined;
product_warehouse_id?: number;
unit_price: string | number | undefined;
total_weight: string | number | undefined;
@@ -63,6 +65,10 @@ export const SalesOrderProductSchema: Yup.ObjectSchema<SalesOrderProductSchemaTy
.required('Produk wajib diisi!'),
label: Yup.string().required('Produk wajib diisi!'),
}).nullable(),
product_warehouse_data: Yup.mixed<ProductWarehouse>()
.nullable()
.optional()
.notRequired(),
product_warehouse_id: Yup.number()
.min(1, 'Produk wajib diisi!')
.required('Produk wajib diisi!'),
@@ -179,14 +179,18 @@ const SalesOrderProductForm = ({
);
setSelectedProductWarehouse(productWarehouse || null);
formik.setFieldValue('qty', productWarehouse?.quantity);
formik.setFieldValue('uom', productWarehouse?.product?.uom?.name || '');
handleBlurField('qty');
} else {
formik.setFieldValue('qty', '');
formik.setFieldValue('uom', '');
}
};
const handleResetForm = () => {
setFormErrorMessage('');
setHasSisaBerat(false);
setSelectedProductWarehouse(null);
formik.resetForm({
values: {
vehicle_number: '',
@@ -569,11 +573,13 @@ const SalesOrderProductForm = ({
errorMessage={formik.errors.qty}
placeholder='Masukan Kuantitas'
endAdornment={
formik.values.uom ? (
<div className='flex items-center gap-2'>
<span className='text-sm text-base-content/50'>
{selectedProductWarehouse?.product?.uom?.name}
{formik.values.uom}
</span>
</div>
) : undefined
}
bottomLabel={
isResponseSuccess(warehouseSourceRawData) &&
@@ -582,7 +588,7 @@ const SalesOrderProductForm = ({
warehouseSourceRawData?.data?.find(
(item) => item.id === formik.values.product_warehouse_id
)?.quantity ?? 0
)} ${selectedProductWarehouse?.product?.uom?.name}`
)} ${formik.values.uom}`
: ''
}
/>