From 85dee607e08da804e3a974c5c07922d77e881d27 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Sat, 14 Mar 2026 15:42:01 +0700 Subject: [PATCH] fix: get kandang options from project flock kandang instead of kandang master data --- .../form/InventoryAdjustmentForm.tsx | 73 ++++--------------- 1 file changed, 15 insertions(+), 58 deletions(-) diff --git a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx index ff710329..1abeab92 100644 --- a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx +++ b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx @@ -15,7 +15,7 @@ import { InventoryAdjustmentFormSchema, InventoryAdjustmentFormValues, } from '@/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.schema'; -import { KandangApi, LocationApi } from '@/services/api/master-data'; +import { LocationApi } from '@/services/api/master-data'; import { ProjectFlockApi, ProjectFlockKandangApi, @@ -32,8 +32,6 @@ import { useFormikErrorList } from '@/services/hooks/useFormikErrorList'; import AlertErrorList from '@/components/helper/form/FormErrors'; import { Location } from '@/types/api/master-data/location'; import { ProjectFlock } from '@/types/api/production/project-flock'; -import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang'; -import { Kandang } from '@/types/api/master-data/kandang'; import { Product } from '@/types/api/master-data/product'; import { ProjectFlockKandangLookup } from '@/types/api/production/project-flock'; import { BaseApiResponse } from '@/types/api/api-general'; @@ -119,40 +117,19 @@ const InventoryAdjustmentForm = ({ } ); - const { rawData: approvedProjectFlockKandangsRawData } = - useSelect( - ProjectFlockKandangApi.basePath, - 'id', - 'id', - 'search', - { - step_name: 'Disetujui', - limit: '100', - } - ); - - const approvedProjectFlockKandangs = useMemo(() => { - if ( - approvedProjectFlockKandangsRawData && - 'data' in approvedProjectFlockKandangsRawData - ) { - return approvedProjectFlockKandangsRawData.data as ProjectFlockKandang[]; - } - return []; - }, [approvedProjectFlockKandangsRawData]); - const { - setInputValue: setKandangInputValue, - options: kandangOptionsFromApi, - isLoadingOptions: isLoadingKandangOptions, - loadMore: loadMoreKandangs, - } = useSelect( - selectedProjectFlock ? KandangApi.basePath : '', - 'id', - 'name', + options: projectFlockKandangOptions, + loadMore: loadMoreProjectFlockKandangs, + setInputValue: setProjectFlockKandangInputValue, + isLoadingOptions: isLoadingProjectFlockKandangOptions, + } = useSelect( + selectedProjectFlock ? ProjectFlockKandangApi.basePath : '', + 'kandang.id', + 'kandang.name', 'search', { - location_id: selectedProjectFlockLocationId, + step_name: 'Disetujui', + project_flock_id: String(selectedProjectFlock?.value), } ); @@ -222,26 +199,6 @@ const InventoryAdjustmentForm = ({ return (product?.flags as string[]) || []; }, [selectedProduct, productOptions]); - const kandangOptions = useMemo(() => { - let options: OptionType[] = []; - - if (selectedProjectFlock) { - const approvedKandangIds = approvedProjectFlockKandangs - .filter((pfk) => pfk.project_flock_id === selectedProjectFlock.value) - .map((pfk) => pfk.kandang_id); - - options = kandangOptionsFromApi.filter((kandang) => - approvedKandangIds.includes(kandang.value as number) - ); - } - - return options; - }, [ - selectedProjectFlock, - kandangOptionsFromApi, - approvedProjectFlockKandangs, - ]); - const formikInitialValues = useMemo>( () => ({ location: null, @@ -693,10 +650,10 @@ const InventoryAdjustmentForm = ({ label='Kandang' value={selectedKandang} onChange={kandangChangeHandler} - onInputChange={setKandangInputValue} - options={kandangOptions} - onMenuScrollToBottom={loadMoreKandangs} - isLoading={isLoadingKandangOptions} + onInputChange={setProjectFlockKandangInputValue} + options={projectFlockKandangOptions} + onMenuScrollToBottom={loadMoreProjectFlockKandangs} + isLoading={isLoadingProjectFlockKandangOptions} isError={ formik.touched.kandang_id && Boolean(formik.errors.kandang_id) }