import { Select, SelectItem, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, } from '@heroui/react'; import { useEffect, useState } from 'react'; interface ChunkerData { terms: { id: string; name: string; courses: { id: string; name: string; chunks: { id: string; name: string; tokens: number; }[]; images: string[]; }[]; }[]; } export default function ChunkerDataTable({ chunkerData, }: { chunkerData: ChunkerData; }) { if (!chunkerData || !chunkerData.terms || chunkerData.terms.length === 0) { return (

No data

); } // Initialize selected term to the first term in the program const [selectedTerm, setSelectedTerm] = useState( chunkerData.terms[0] || null ); const [selectedCourse, setSelectedCourse] = useState(null); // Initialize to null const [flattenedChunks, setFlattenedChunks] = useState( [] ); const getFlattenedChunks = (course: ChunkedCourse | null) => { return course?.chunks.map((chunk) => ({ id: chunk.id, name: chunk.name, tokens: chunk.tokens, })); }; useEffect(() => { if (selectedTerm) { setSelectedCourse(selectedTerm.courses[0] || null); } }, [selectedTerm]); useEffect(() => { if (selectedTerm && selectedCourse) { setFlattenedChunks(getFlattenedChunks(selectedCourse)); } }, [selectedCourse]); return (
{/* Term Selector */}
{/* Course Selector */}
{/* Courses Table */} {selectedTerm && selectedCourse && flattenedChunks && (
Name Tokens {flattenedChunks.map((chunk, i) => { return ( {chunk.name} {chunk.tokens} ); })}
)}
); }