import { useState } from 'react'; import axios from 'axios'; import { PieChart } from 'lucide-react'; import { motion } from 'framer-motion'; import { PageHeader, ResultBox, ErrorBox, SubmitButton, UploadZone, SectionLabel } from '../components/UI'; export default function DataClusters() { const [file, setFile] = useState(null); const [clusters, setClusters] = useState(3); const [result, setResult] = useState(null); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); if (!file) return setError('Please upload a file'); setLoading(true); setError(''); setResult(null); const fd = new FormData(); fd.append('file', file); fd.append('clusters', clusters); try { const res = await axios.post('/api/clustering', fd); setResult(res.data); } catch (err) { setError(err.response?.data?.error || 'Request failed'); } finally { setLoading(false); } }; return (
{v}
Entities