ramimu's picture
Upload 586 files
1c72248 verified
'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<Job[]>([]);
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 };
}