mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-24 15:25:46 +00:00
refactor(FE): Fix dependency arrays and refactor setFieldValue usage
This commit is contained in:
@@ -531,7 +531,7 @@ const RecordingTable = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setTableState('recording-table', pathname);
|
setTableState('recording-table', pathname);
|
||||||
}, [pathname]);
|
}, [pathname, setTableState]);
|
||||||
|
|
||||||
const searchChangeHandler = useCallback(
|
const searchChangeHandler = useCallback(
|
||||||
(e: React.ChangeEvent<HTMLInputElement>) => {
|
(e: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
@@ -1118,14 +1118,11 @@ const RecordingTable = () => {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
isRecordingApproved,
|
|
||||||
tableFilterState.pageSize,
|
tableFilterState.pageSize,
|
||||||
tableFilterState.page,
|
tableFilterState.page,
|
||||||
selectedRecording,
|
|
||||||
singleDeleteModal,
|
singleDeleteModal,
|
||||||
approveModal,
|
approveModal,
|
||||||
rejectModal,
|
rejectModal,
|
||||||
rowSelection,
|
|
||||||
setRowSelection,
|
setRowSelection,
|
||||||
setApprovalNotes,
|
setApprovalNotes,
|
||||||
setSelectedRecording,
|
setSelectedRecording,
|
||||||
|
|||||||
@@ -1007,6 +1007,8 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// ===== HELPER FUNCTIONS =====
|
// ===== HELPER FUNCTIONS =====
|
||||||
|
const { setFieldValue } = formik;
|
||||||
|
|
||||||
const getAvailableStock = useCallback(
|
const getAvailableStock = useCallback(
|
||||||
(productWarehouseId: number) => {
|
(productWarehouseId: number) => {
|
||||||
if ((type as 'add' | 'edit' | 'detail') === 'detail') return 0;
|
if ((type as 'add' | 'edit' | 'detail') === 'detail') return 0;
|
||||||
@@ -1098,16 +1100,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
const isAlreadyRecorded = recordedProjectFlockKandangIds.has(
|
const isAlreadyRecorded = recordedProjectFlockKandangIds.has(
|
||||||
projectFlockKandangLookup.project_flock_kandang_id
|
projectFlockKandangLookup.project_flock_kandang_id
|
||||||
);
|
);
|
||||||
let color: 'neutral' | 'success' | 'warning' | 'error';
|
const color = isAlreadyRecorded ? 'warning' : 'success';
|
||||||
|
|
||||||
if (isAlreadyRecorded) {
|
|
||||||
color = 'warning';
|
|
||||||
} else {
|
|
||||||
color = 'success';
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span className={'whitespace-nowrap text-xs'}>
|
<span className={`whitespace-nowrap text-xs text-${color}`}>
|
||||||
Periode {projectFlockKandangLookup.project_flock?.period}
|
Periode {projectFlockKandangLookup.project_flock?.period}
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
@@ -1411,9 +1407,9 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (formik.values.project_flock_kandang_id !== projectFlockKandangId) {
|
if (formik.values.project_flock_kandang_id !== projectFlockKandangId) {
|
||||||
formik.setFieldValue('project_flock_kandang_id', projectFlockKandangId);
|
setFieldValue('project_flock_kandang_id', projectFlockKandangId);
|
||||||
|
|
||||||
formik.setFieldValue('project_flock_kandang', {
|
setFieldValue('project_flock_kandang', {
|
||||||
value: projectFlockKandangId,
|
value: projectFlockKandangId,
|
||||||
label: projectFlockKandangLookup
|
label: projectFlockKandangLookup
|
||||||
? `${projectFlockKandangLookup.project_flock.flock_name} - ${projectFlockKandangLookup.kandang.name}`
|
? `${projectFlockKandangLookup.project_flock.flock_name} - ${projectFlockKandangLookup.kandang.name}`
|
||||||
@@ -1431,6 +1427,9 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
nextDayRecording,
|
nextDayRecording,
|
||||||
existingRecordings,
|
existingRecordings,
|
||||||
today,
|
today,
|
||||||
|
currentRecordDate,
|
||||||
|
duplicateErrorShown,
|
||||||
|
setFieldValue,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -1472,11 +1471,11 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
formik.values.project_flock_kandang_id !==
|
formik.values.project_flock_kandang_id !==
|
||||||
projectFlockKandangDetail.id
|
projectFlockKandangDetail.id
|
||||||
) {
|
) {
|
||||||
formik.setFieldValue(
|
setFieldValue(
|
||||||
'project_flock_kandang_id',
|
'project_flock_kandang_id',
|
||||||
projectFlockKandangDetail.id
|
projectFlockKandangDetail.id
|
||||||
);
|
);
|
||||||
formik.setFieldValue('project_flock_kandang', {
|
setFieldValue('project_flock_kandang', {
|
||||||
value: projectFlockKandangDetail.id,
|
value: projectFlockKandangDetail.id,
|
||||||
label: `${projectFlock.flock_name} - ${kandang.name}`,
|
label: `${projectFlock.flock_name} - ${kandang.name}`,
|
||||||
});
|
});
|
||||||
@@ -1490,6 +1489,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
type,
|
type,
|
||||||
enhancedProjectFlockOptions,
|
enhancedProjectFlockOptions,
|
||||||
formik.values.project_flock_kandang_id,
|
formik.values.project_flock_kandang_id,
|
||||||
|
setFieldValue,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const approveHandler = async (notes: string) => {
|
const approveHandler = async (notes: string) => {
|
||||||
@@ -1653,10 +1653,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
if (isLayingCategory && (type as 'add' | 'edit' | 'detail') !== 'detail') {
|
if (isLayingCategory && (type as 'add' | 'edit' | 'detail') !== 'detail') {
|
||||||
const layingValues = formik.values as RecordingLayingFormValues;
|
const layingValues = formik.values as RecordingLayingFormValues;
|
||||||
if (!layingValues.eggs || layingValues.eggs.length === 0) {
|
if (!layingValues.eggs || layingValues.eggs.length === 0) {
|
||||||
formik.setFieldValue('eggs', [{ product_warehouse_id: 0, qty: '' }]);
|
setFieldValue('eggs', [{ product_warehouse_id: 0, qty: '' }]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [isLayingCategory, type]);
|
}, [isLayingCategory, type, formik.values, setFieldValue]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (type !== 'add') {
|
if (type !== 'add') {
|
||||||
@@ -3199,6 +3199,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
pageSize={100}
|
pageSize={100}
|
||||||
className={{
|
className={{
|
||||||
tableWrapperClassName: 'overflow-x-auto',
|
tableWrapperClassName: 'overflow-x-auto',
|
||||||
|
containerClassName: 'mb-6!',
|
||||||
tableClassName: 'w-full table-auto text-sm',
|
tableClassName: 'w-full table-auto text-sm',
|
||||||
headerRowClassName: 'border-b border-b-gray-200',
|
headerRowClassName: 'border-b border-b-gray-200',
|
||||||
headerColumnClassName:
|
headerColumnClassName:
|
||||||
|
|||||||
Reference in New Issue
Block a user