Spaces:
Running
Running
File size: 1,487 Bytes
5301c48 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
'use client'
import { useEffect, useState } from 'react'
import DatasetPageClient from '@/src/app/project/[...id]/DatasetPageClient'
import { Loader2 } from 'lucide-react'
export default function DatasetPage({ params }: { params: { id: string } }) {
const id = params.id[0]
const [project, setProject] = useState({
name: '',
description: '',
template_name: ''
})
const [loading, setLoading] = useState(true)
const [error, setError] = useState<string | null>(null)
useEffect(() => {
const fetchProject = async () => {
try {
setLoading(true)
const response = await fetch(`/api/projects/get?id=${id}`)
if (!response.ok) {
throw new Error('Failed to fetch project')
}
const projectData = await response.json()
setProject(projectData)
} catch (err) {
setError(err instanceof Error ? err.message : 'An error occurred')
} finally {
setLoading(false)
}
}
fetchProject()
}, [id])
if (loading) {
return (
<div className="flex items-center justify-center min-h-screen">
<Loader2 className="h-8 w-8 animate-spin" />
</div>
)
}
if (error) {
return (
<div className="flex items-center justify-center min-h-screen">
<div className="text-red-500">Error: {error}</div>
</div>
)
}
return (
<DatasetPageClient
projectId={id}
initialProject={project}
/>
)
}
|