refactor(FE-87-106): refactor api integration untuk project flock dan project flock kandang

This commit is contained in:
randy-ar
2025-11-10 04:08:08 +07:00
parent fcc2fced06
commit e0c347c3d5
19 changed files with 961 additions and 506 deletions
@@ -170,8 +170,8 @@ const DetailChickin = () => {
<div className='font-semibold text-sm'>Flock</div>
<div className='text-sm'>
{
chickin.data.project_flock_kandang?.project_flock.flock
.name
chickin?.data?.project_flock_kandang?.project_flock?.flock
?.name
}
</div>
</div>
@@ -225,8 +225,8 @@ const DetailChickin = () => {
<div className='font-semibold text-sm'>Flock Kandang</div>
<div className='text-sm'>
{
chickin.data.project_flock_kandang?.project_flock.flock
.name
chickin?.data?.project_flock_kandang?.project_flock?.flock
?.name
}{' '}
- {chickin.data.project_flock_kandang?.kandang.name}
</div>
@@ -280,7 +280,7 @@ const DetailChickin = () => {
<ConfirmationModal
ref={deleteModal.ref}
type='error'
text={`Apakah anda yakin ingin menghapus data Project Flock ini (${chickin?.data.project_flock_kandang?.project_flock.flock.name} - ${chickin?.data.project_flock_kandang?.kandang.name})?`}
text={`Apakah anda yakin ingin menghapus data Project Flock ini (${chickin?.data?.project_flock_kandang?.project_flock.flock?.name} - ${chickin?.data.project_flock_kandang?.kandang.name})?`}
secondaryButton={{
text: 'Tidak',
}}
@@ -320,7 +320,7 @@ const DetailChickin = () => {
text={`Apakah anda yakin ingin ${
approvalAction == 'APPROVED' ? 'approve' : 'reject'
} chickin berikut? (${
chickin?.data.project_flock_kandang?.project_flock.flock.name
chickin?.data?.project_flock_kandang?.project_flock?.flock?.name
} - ${chickin?.data.project_flock_kandang?.kandang.name})?`}
secondaryButton={{
text: 'Tidak',
@@ -2,8 +2,11 @@
import ProjectFlockForm from '@/components/pages/production/project-flock/form/ProjectFlockForm';
import { isResponseError, isResponseSuccess } from '@/lib/api-helper';
import { FlockApi } from '@/services/api/master-data';
import { ProjectFlockApi } from '@/services/api/production';
import { ProjectFlock } from '@/types/api/production/project-flock';
import { useRouter, useSearchParams } from 'next/navigation';
import { useState } from 'react';
import useSWR from 'swr';
const ProjectFlockDetail = () => {
@@ -12,12 +15,21 @@ const ProjectFlockDetail = () => {
const projectFlockId = searchParams.get('projectFlockId');
const [projectName, setProjectName] = useState();
const {
data: projectFlock,
isLoading: isLoadingProjectFlock,
mutate: refreshProjectFlock,
} = useSWR(projectFlockId, (id: number) => ProjectFlockApi.getSingle(id));
const flockUrl = `${FlockApi.basePath}`;
const {
data: flock,
isLoading: isLoadingFlock,
mutate: refreshFlock,
} = useSWR(flockUrl, FlockApi.getAllFetcher);
if (!projectFlockId) {
router.back();
@@ -36,15 +48,37 @@ const ProjectFlockDetail = () => {
return;
}
// Attach flock id to project flock
let projectFlockAttached: ProjectFlock | undefined;
if (isResponseSuccess(projectFlock) && isResponseSuccess(flock)) {
projectFlockAttached = {
...projectFlock.data,
flock: flock.data.find(
(flock) =>
flock.name ==
projectFlock.data.flock_name
.trim()
.split(/\s+/)
.slice(0, -1)
.join(' ')
),
};
console.log('projectFlockAttached');
console.log(projectFlockAttached);
console.log('flocks');
console.log(flock.data);
}
return (
<div className='w-full p-4 flex flex-row justify-center'>
{isLoadingProjectFlock && (
<span className='loading loading-spinner loading-xl' />
)}
{!isLoadingProjectFlock && isResponseSuccess(projectFlock) && (
{projectFlockAttached && (
<ProjectFlockForm
formType='detail'
initialValues={projectFlock.data}
initialValues={projectFlockAttached}
refreshProjectFlocks={refreshProjectFlock}
/>
)}