hotfix(FE): fixing failed test scenario in module finance

This commit is contained in:
randy-ar
2026-01-17 16:45:56 +07:00
parent 08715e39c2
commit 36da05890a
6 changed files with 151 additions and 87 deletions
@@ -32,8 +32,10 @@ import {
import { Bank } from '@/types/api/master-data/bank';
import { useFormik } from 'formik';
import { useRouter } from 'next/navigation';
import { useCallback, useMemo } from 'react';
import { useCallback, useMemo, useState } from 'react';
import toast from 'react-hot-toast';
import Alert from '@/components/Alert';
import { Icon } from '@iconify/react';
interface FormFinanceAddProps {
type?: 'add' | 'edit';
@@ -51,18 +53,22 @@ const FormFinanceAdd = ({
initialValues,
}: FormFinanceAddProps) => {
const router = useRouter();
const [serverErrorMessage, setServerErrorMessage] = useState('');
const [isSupplier, setIsSupplier] = useState(
initialValues?.party?.type === 'SUPPLIER'
);
// ===== Formik =====
const formikInitialValues = useMemo((): FinanceFormValues => {
return {
party_type_option:
FINANCE_PARTY_TYPE_OPTIONS.find(
(option) => option.value === initialValues?.party.type
(option) => option.value === initialValues?.party?.type
) || null,
party_id_option: initialValues?.party
? {
label: initialValues?.party.name || '',
value: initialValues?.party.id || 0,
label: initialValues?.party?.name || '',
value: initialValues?.party?.id || 0,
}
: null,
payment_date: initialValues?.payment_date || '',
@@ -72,11 +78,11 @@ const FormFinanceAdd = ({
) || null,
bank_id_option: initialValues?.bank
? {
label: initialValues.bank.name,
value: initialValues.bank.id,
label: initialValues?.bank?.name,
value: initialValues?.bank?.id,
}
: null,
party_account_number: initialValues?.party.account_number || '',
party_account_number: initialValues?.party?.account_number || '',
reference_number: initialValues?.reference_number || '',
nominal: initialValues?.nominal.toString() || '',
notes: initialValues?.notes || '',
@@ -153,6 +159,7 @@ const FormFinanceAdd = ({
if (isResponseError(response)) {
toast.error(response.message);
setServerErrorMessage(response.message);
return;
}
@@ -168,6 +175,7 @@ const FormFinanceAdd = ({
if (isResponseError(response)) {
toast.error(response.message);
setServerErrorMessage(response.message);
return;
}
@@ -207,6 +215,7 @@ const FormFinanceAdd = ({
? formik.errors.party_type_option
: ''
}
isDisabled={type === 'edit' || isSupplier}
required
isClearable
/>
@@ -245,7 +254,7 @@ const FormFinanceAdd = ({
}
required
isClearable
isDisabled={!formik.values.party_type_option?.value}
isDisabled={!formik.values.party_type_option?.value || isSupplier}
/>
<DateInput
label='Tanggal'
@@ -263,6 +272,7 @@ const FormFinanceAdd = ({
: ''
}
required
disabled={isSupplier}
/>
<SelectInput
label='Metode Pembayaran'
@@ -284,6 +294,7 @@ const FormFinanceAdd = ({
}
required
isClearable
isDisabled={isSupplier}
/>
<SelectInput
label='Bank'
@@ -324,6 +335,7 @@ const FormFinanceAdd = ({
}
required
isClearable
isDisabled={isSupplier}
/>
<TextInput
label={`Nomor Rekening ${formik.values.party_type_option?.value ? formatTitleCase(formik.values.party_type_option.value as string) : 'Pihak'}`}
@@ -344,6 +356,7 @@ const FormFinanceAdd = ({
}
required
readOnly
disabled={isSupplier}
/>
<TextInput
label='Nomor Referensi'
@@ -363,6 +376,7 @@ const FormFinanceAdd = ({
: ''
}
required
disabled={isSupplier}
/>
<NumberInput
label='Nominal'
@@ -378,6 +392,7 @@ const FormFinanceAdd = ({
: ''
}
required
disabled={isSupplier}
/>
<TextArea
label='Catatan'
@@ -393,8 +408,18 @@ const FormFinanceAdd = ({
: ''
}
required
disabled={isSupplier}
/>
<AlertErrorList formErrorList={formErrorList} onClose={close} />
{serverErrorMessage && (
<Alert color='error'>
<Icon icon='mdi:alert' />
{serverErrorMessage}
<Button color='error' onClick={() => setServerErrorMessage('')}>
<Icon icon='mdi:close' />
</Button>
</Alert>
)}
<div className='flex justify-center gap-4'>
<Button
type='reset'