Todo el material
{MATERIALS.length} materiales · Matemáticas 4º ESO
// Library screen — subject filter sidebar + grid of materials.
function Library({ initialSubject, initialLevel, onOpenMaterial }) {
const { MATERIALS, SUBJECTS, KINDS, LEVELS } = window.ECC_DATA;
const [level, setLevel] = React.useState(initialLevel || 'all');
const [subject, setSubject] = React.useState(initialSubject || 'all');
const [kind, setKind] = React.useState('all');
const [query, setQuery] = React.useState('');
const [sort, setSort] = React.useState('recent');
let items = MATERIALS.slice();
if (level !== 'all') items = items.filter(m => m.level === level);
if (subject !== 'all') items = items.filter(m => m.subject === subject);
if (kind !== 'all') items = items.filter(m => m.kind === kind);
if (query) {
const q = query.toLowerCase();
items = items.filter(m => m.title.toLowerCase().includes(q) || m.desc.toLowerCase().includes(q));
}
if (sort === 'title') items.sort((a,b) => a.title.localeCompare(b.title));
// only show kinds that exist in the data
const kinds = Object.keys(KINDS).filter(k => MATERIALS.some(m => m.kind === k));
return (
{MATERIALS.length} materiales · Matemáticas 4º ESO
Todo el material
Sin resultados.
Prueba a quitar algún filtro o cambia la búsqueda.