/* Admin → Students roster */ function StudentsScreen() { const [q, setQ] = React.useState(''); const rows = [ { n:'EJ Hatten', g:'Grade 6', id:'KMS-1042', route:'Bus #12', method:'Car Rider', status:'Enrolled', c:'green' }, { n:'James Walker', g:'Grade 7', id:'KMS-0911', route:'Bus #12', method:'Car Rider', status:'Enrolled', c:'navy' }, { n:'Sophia Perez', g:'Grade 6', id:'KMS-1188', route:'Walker', method:'Walker', status:'Enrolled', c:'gold' }, { n:'Liam Carter', g:'Grade 8', id:'KMS-0733', route:'Bus #7', method:'Bus', status:'Enrolled', c:'blue' }, { n:'Ava Mitchell', g:'Grade 7', id:'KMS-1276', route:'Bus #3', method:'Bus', status:'Pending', c:'red' }, { n:'Noah Bennett', g:'Grade 6', id:'KMS-1305', route:'Walker', method:'Walker', status:'Enrolled', c:'cyan' }, ]; const list = rows.filter(r => r.n.toLowerCase().includes(q.toLowerCase())); return (
{/* toolbar */}
setQ(e.target.value)} placeholder="Search students" style={{ flex:1, border:0, outline:'none', fontSize:13.5, fontFamily:'var(--font-sans)' }} />
jlToast('Exporting '+list.length+' students to CSV…', { icon:'download' })} style={{ fontSize:12.5, fontWeight:700, color:'var(--blue-500)', cursor:'pointer' }}>Export CSV} pad={false}>
StudentGradeStudent IDTransportPickupStatus
{list.map((r,i)=>(
jlToast('Opening '+r.n+'\u2019s profile', { icon:'user' })} style={{ display:'grid', gridTemplateColumns:'2fr 1fr 1.2fr 1.2fr 1.2fr 1fr', alignItems:'center', padding:'12px 18px', borderTop:'1px solid var(--gray-100)', fontSize:13.5, cursor:'pointer' }}> w[0]).join('')} color={r.c} size={32} />{r.n} {r.g} {r.id} {r.route} {r.method} {r.status}
))}
); } Object.assign(window, { StudentsScreen });