/* 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 });