From 17ebc31f001d65da3d9e9f18b271df33d19fe3b5 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Fri, 10 Apr 2026 17:07:07 +0700 Subject: [PATCH] fix: implement infinite scroll in select input --- .../report/marketing/tab/HppPerKandangTab.tsx | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/components/pages/report/marketing/tab/HppPerKandangTab.tsx b/src/components/pages/report/marketing/tab/HppPerKandangTab.tsx index 0020232d..9e0bca2d 100644 --- a/src/components/pages/report/marketing/tab/HppPerKandangTab.tsx +++ b/src/components/pages/report/marketing/tab/HppPerKandangTab.tsx @@ -71,24 +71,32 @@ const HppPerKandangTab = ({ tabId }: HppPerKandangTabProps) => { const filterModal = useModal(); // ===== OPTIONS ===== - const { options: areaOptions, isLoadingOptions: isLoadingAreas } = useSelect( - AreaApi.basePath, + const { + options: areaOptions, + isLoadingOptions: isLoadingAreas, + setInputValue: setAreaInputValue, + loadMore: loadMoreArea, + } = useSelect(AreaApi.basePath, 'id', 'name', 'search'); + + const { + options: locationOptions, + isLoadingOptions: isLoadingLocations, + setInputValue: setLocationInputValue, + loadMore: loadMoreLocation, + } = useSelect(LocationApi.basePath, 'id', 'name', 'search'); + + const { + options: kandangOptions, + isLoadingOptions: isLoadingKandangs, + setInputValue: setKandangInputValue, + loadMore: loadMoreKandang, + } = useSelect( + ProjectFlockKandangApi.basePath, 'id', - 'name', + 'name_with_period', 'search' ); - const { options: locationOptions, isLoadingOptions: isLoadingLocations } = - useSelect(LocationApi.basePath, 'id', 'name', 'search'); - - const { options: kandangOptions, isLoadingOptions: isLoadingKandangs } = - useSelect( - ProjectFlockKandangApi.basePath, - 'id', - 'name_with_period', - 'search' - ); - const showUnrecordedOptions = useMemo( () => [ { value: 'false', label: 'Sembunyikan' }, @@ -918,6 +926,8 @@ const HppPerKandangTab = ({ tabId }: HppPerKandangTabProps) => { isLoading={isLoadingAreas} isClearable className={{ wrapper: 'w-full' }} + onInputChange={setAreaInputValue} + onMenuScrollToBottom={loadMoreArea} /> {/* Location Filter */} @@ -937,6 +947,8 @@ const HppPerKandangTab = ({ tabId }: HppPerKandangTabProps) => { isLoading={isLoadingLocations} isClearable className={{ wrapper: 'w-full' }} + onInputChange={setLocationInputValue} + onMenuScrollToBottom={loadMoreLocation} /> {/* Kandang Filter */} @@ -956,6 +968,8 @@ const HppPerKandangTab = ({ tabId }: HppPerKandangTabProps) => { isLoading={isLoadingKandangs} isClearable className={{ wrapper: 'w-full' }} + onInputChange={setKandangInputValue} + onMenuScrollToBottom={loadMoreKandang} /> {/* Weight Range Filter */}