'use client'; import { useEffect, useState, use } from 'react'; import { FaChevronLeft } from 'react-icons/fa'; import DatasetImageCard from '@/components/DatasetImageCard'; import { Button } from '@headlessui/react'; import AddImagesModal, { openImagesModal } from '@/components/AddImagesModal'; import { TopBar, MainContent } from '@/components/layout'; import { apiClient } from '@/utils/api'; export default function DatasetPage({ params }: { params: { datasetName: string } }) { const [imgList, setImgList] = useState<{ img_path: string }[]>([]); const usableParams = use(params as any) as { datasetName: string }; const datasetName = usableParams.datasetName; const [status, setStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); const refreshImageList = (dbName: string) => { setStatus('loading'); console.log('Fetching images for dataset:', dbName); apiClient .post('/api/datasets/listImages', { datasetName: dbName }) .then((res: any) => { const data = res.data; console.log('Images:', data.images); // sort data.images.sort((a: { img_path: string }, b: { img_path: string }) => a.img_path.localeCompare(b.img_path)); setImgList(data.images); setStatus('success'); }) .catch(error => { console.error('Error fetching images:', error); setStatus('error'); }); }; useEffect(() => { if (datasetName) { refreshImageList(datasetName); } }, [datasetName]); return ( <> {/* Fixed top bar */} history.back()}> Dataset: {datasetName} openImagesModal(datasetName, () => refreshImageList(datasetName))} > Add Images {status === 'loading' && Loading...} {status === 'error' && Error fetching images} {status === 'success' && ( {imgList.length === 0 && No images found} {imgList.map(img => ( refreshImageList(datasetName)} /> ))} )} > ); }
Loading...
Error fetching images
No images found