diff --git a/src/app/production/chickin/add/page.tsx b/src/app/production/chickin/add/page.tsx index e7fa4c24..feb1d3d2 100644 --- a/src/app/production/chickin/add/page.tsx +++ b/src/app/production/chickin/add/page.tsx @@ -3,6 +3,7 @@ import Button from '@/components/Button'; import SelectInput, { OptionType } from '@/components/input/SelectInput'; import Modal, { useModal } from '@/components/Modal'; +import ConfirmationModal from '@/components/modal/ConfirmationModal'; import ChickinForm from '@/components/pages/production/chickin/form/ChickinForm'; import Table from '@/components/Table'; import { isResponseError, isResponseSuccess } from '@/lib/api-helper'; @@ -14,7 +15,7 @@ import { Kandang } from '@/types/api/master-data/kandang'; import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang'; import { Icon } from '@iconify/react'; import { useRouter, useSearchParams } from 'next/navigation'; -import { useEffect, useState } from 'react'; +import { use, useEffect, useState } from 'react'; import useSWR from 'swr'; @@ -33,6 +34,11 @@ const AddChickin = () => { const [selectedKandang, setSelectedKandang] = useState( undefined ); + const [projectFlockKandang, setProjectFlockKandang] = useState< + BaseApiResponse + >(); + const [isLoadingProjectFlockKandang, setIsLoadingProjectFlockKandang] = + useState(false); const [searchProjectFlock, setSearchProjectFlock] = useState(''); // Fetch Data @@ -41,44 +47,26 @@ const AddChickin = () => { (id: number) => ProjectFlockApi.getSingle(id) ); const { data: listProjectFlock, isLoading: isLoadingListProjectFlock } = - useSWR(`${ProjectFlockApi.basePath}?${new URLSearchParams({ - search: searchProjectFlock, - }).toString()}`, ProjectFlockApi.getAllFetcher); + useSWR( + `${ProjectFlockApi.basePath}?${new URLSearchParams({ + search: searchProjectFlock, + }).toString()}`, + ProjectFlockApi.getAllFetcher + ); const getProjectFlockKandangUrl = `/kandangs/lookup`; - const { - data: projectFlockKandang, - isLoading: isLoadingProjectFlockKandang, - mutate: refreshProjectFlockKandang, - } = useSWR(getProjectFlockKandangUrl, () => - ProjectFlockApi.customRequest, 'GET'>( - getProjectFlockKandangUrl, - { - method: 'GET', - params: { - project_flock_id: projectFlockId ?? 0, - kandang_id: selectedKandang?.id, - }, - } - ) - ); - // Mapping Options const options = isResponseSuccess(listProjectFlock) ? listProjectFlock?.data.map((projectFlock) => { return { value: projectFlock.id, - label: `${projectFlock?.flock.name} - ${projectFlock?.category} - Periode ${projectFlock.period}` , + label: `${projectFlock?.flock.name} - ${projectFlock?.category} - Periode ${projectFlock.period}`, }; }) : []; const chickinModal = useModal(); - - // Use Effect - useEffect(() => { - refreshProjectFlockKandang(); - }, [selectedKandang, refreshProjectFlockKandang]); + const alertModal = useModal(); if (!projectFlockId) { router.back(); @@ -99,13 +87,35 @@ const AddChickin = () => { } // Handle Function - const handleChickinClick = (kandang: Kandang) => { + const handleChickinClick = async (kandang: Kandang) => { + setIsLoadingProjectFlockKandang(true); setSelectedKandang(kandang); - refreshProjectFlockKandang(); - chickinModal.openModal(); + const ProjectFlockKandangRes = await ProjectFlockApi.customRequest< + BaseApiResponse, + 'GET' + >(getProjectFlockKandangUrl, { + method: 'GET', + params: { + project_flock_id: projectFlockId ?? 0, + kandang_id: kandang.id, + }, + }); + if ( + isResponseSuccess(ProjectFlockKandangRes) + ) { + setProjectFlockKandang(ProjectFlockKandangRes); + setIsLoadingProjectFlockKandang(false); + if ( + ProjectFlockKandangRes.data.available_quantity && + ProjectFlockKandangRes.data.available_quantity > 0 + ) { + chickinModal.openModal(); + }else{ + alertModal.openModal(); + } + } }; const handleAfterSubmit = () => { - refreshProjectFlockKandang(); chickinModal.closeModal(); router.push('/production/chickin'); }; @@ -126,7 +136,7 @@ const AddChickin = () => {
-
+
{ + */}