'use client'; import { useEffect, useState } from 'react'; import { Job } from '@prisma/client'; import { apiClient } from '@/utils/api'; export default function useJobsList(onlyActive = false) { const [jobs, setJobs] = useState([]); const [status, setStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); const refreshJobs = () => { setStatus('loading'); apiClient .get('/api/jobs') .then(res => res.data) .then(data => { console.log('Jobs:', data); if (data.error) { console.log('Error fetching jobs:', data.error); setStatus('error'); } else { if (onlyActive) { data.jobs = data.jobs.filter((job: Job) => job.status === 'running'); } setJobs(data.jobs); setStatus('success'); } }) .catch(error => { console.error('Error fetching datasets:', error); setStatus('error'); }); }; useEffect(() => { refreshJobs(); }, []); return { jobs, setJobs, status, refreshJobs }; }