From 0263db9faeffa39976c530e135ed2bc796370c7c Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Mon, 9 Mar 2026 15:55:48 +0700 Subject: [PATCH] fix: use DailyChecklistKandangApi instead of KandangApi --- .../employee/MasterEmployeeContent.tsx | 46 ++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/src/figma-make/components/pages/master-data/employee/MasterEmployeeContent.tsx b/src/figma-make/components/pages/master-data/employee/MasterEmployeeContent.tsx index 099aa32a..9944ed21 100644 --- a/src/figma-make/components/pages/master-data/employee/MasterEmployeeContent.tsx +++ b/src/figma-make/components/pages/master-data/employee/MasterEmployeeContent.tsx @@ -1,7 +1,14 @@ 'use client'; import { useState } from 'react'; -import { Plus, MoreVertical, Pencil, Trash2, Search } from 'lucide-react'; +import { + Plus, + MoreVertical, + Pencil, + Trash2, + Search, + Loader2, +} from 'lucide-react'; import { Card, CardContent } from '@/figma-make/components/base/card'; import { Button } from '@/figma-make/components/base/button'; import { Label } from '@/figma-make/components/base/label'; @@ -49,8 +56,8 @@ import { cn } from '@/lib/helper'; import { useTableFilter } from '@/services/hooks/useTableFilter'; import { ColumnDef } from '@tanstack/react-table'; import { useSelect } from '@/components/input/SelectInput'; -import { KandangApi } from '@/services/api/master-data'; import DebouncedTextInput from '@/components/input/DebouncedTextInput'; +import { DailyChecklistKandangApi } from '@/services/api/daily-checklist/kandang'; export function MasterEmployeeContent() { const { @@ -85,16 +92,20 @@ export function MasterEmployeeContent() { keepPreviousData: true, } ); - const { options: kandangOptions } = useSelect( - KandangApi.basePath, - 'id', - 'name', - 'search', - { - page: '1', - limit: '100', + const { + options: kandangOptions, + loadMore: loadMoreKandang, + isLoadingMore: isLoadingMoreKandang, + } = useSelect(DailyChecklistKandangApi.basePath, 'id', 'name'); + + const handleKandangScroll = (e: React.UIEvent) => { + const target = e.target as HTMLDivElement; + if (target.scrollHeight - target.scrollTop <= target.clientHeight + 10) { + if (!isLoadingMoreKandang) { + loadMoreKandang(); + } } - ); + }; const [showModal, setShowModal] = useState(false); const [showDeleteConfirm, setShowDeleteConfirm] = useState(false); @@ -351,7 +362,7 @@ export function MasterEmployeeContent() { - + Semua Kandang {kandangOptions.map((kandang) => ( ))} + {isLoadingMoreKandang && ( +
+ +
+ )}
@@ -471,6 +487,12 @@ export function MasterEmployeeContent() { kandang_ids: selected.map((id) => Number(id)), }) } + onLoadMore={() => { + if (!isLoadingMoreKandang) { + loadMoreKandang(); + } + }} + isLoadingMore={isLoadingMoreKandang} placeholder='Pilih kandang' className='mt-1.5' />