feat(frontend): seed CsvAnalysis buckets from animal config
This commit is contained in:
@@ -90,7 +90,7 @@ function CategoryBucket({ name, notes, colors, isOver, onDrop, onDragOver, onDra
|
|||||||
|
|
||||||
// ── Main component ─────────────────────────────────────────────────────────────
|
// ── Main component ─────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
export default function CsvAnalysis({ dailyStatusId, onSaved, onSummaryPushed }) {
|
export default function CsvAnalysis({ dailyStatusId, animal, onSaved, onSummaryPushed }) {
|
||||||
// Phase: 'upload' | 'columns' | 'classify' | 'results'
|
// Phase: 'upload' | 'columns' | 'classify' | 'results'
|
||||||
const [phase, setPhase] = useState('upload');
|
const [phase, setPhase] = useState('upload');
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ export default function CsvAnalysis({ dailyStatusId, onSaved, onSummaryPushed })
|
|||||||
// Classify phase
|
// Classify phase
|
||||||
const [rows, setRows] = useState([]);
|
const [rows, setRows] = useState([]);
|
||||||
const [uniqueNotes, setUniqueNotes] = useState([]);
|
const [uniqueNotes, setUniqueNotes] = useState([]);
|
||||||
const [buckets, setBuckets] = useState(DEFAULT_BUCKETS);
|
const [buckets, setBuckets] = useState(() => animal?.csv_analysis_config?.buckets ?? DEFAULT_BUCKETS);
|
||||||
const [selectedNote, setSelectedNote] = useState(null);
|
const [selectedNote, setSelectedNote] = useState(null);
|
||||||
const [draggedNote, setDraggedNote] = useState(null);
|
const [draggedNote, setDraggedNote] = useState(null);
|
||||||
const [overBucket, setOverBucket] = useState(null);
|
const [overBucket, setOverBucket] = useState(null);
|
||||||
@@ -290,7 +290,7 @@ export default function CsvAnalysis({ dailyStatusId, onSaved, onSummaryPushed })
|
|||||||
setHeaders([]);
|
setHeaders([]);
|
||||||
setRows([]);
|
setRows([]);
|
||||||
setUniqueNotes([]);
|
setUniqueNotes([]);
|
||||||
setBuckets(DEFAULT_BUCKETS);
|
setBuckets(animal?.csv_analysis_config?.buckets ?? DEFAULT_BUCKETS);
|
||||||
setResults(null);
|
setResults(null);
|
||||||
setSavedAnalysisId(null);
|
setSavedAnalysisId(null);
|
||||||
setSummaryPushed(false);
|
setSummaryPushed(false);
|
||||||
|
|||||||
@@ -699,6 +699,7 @@ export default function DailyStatusDetail() {
|
|||||||
{/* CSV Analysis — after past analyses */}
|
{/* CSV Analysis — after past analyses */}
|
||||||
<CsvAnalysis
|
<CsvAnalysis
|
||||||
dailyStatusId={status.id}
|
dailyStatusId={status.id}
|
||||||
|
animal={status.animal}
|
||||||
onSaved={(saved) => setAnalyses((prev) => [saved, ...prev])}
|
onSaved={(saved) => setAnalyses((prev) => [saved, ...prev])}
|
||||||
onSummaryPushed={(summary) => setStatus((prev) => ({ ...prev, analysis_summary: { ...summary, computed_at: new Date().toISOString() } }))}
|
onSummaryPushed={(summary) => setStatus((prev) => ({ ...prev, analysis_summary: { ...summary, computed_at: new Date().toISOString() } }))}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user