/* Parent โ Notification Settings: per-category channel toggles, quiet hours. */ function NotifSettingsScreen({ onNav, onBack }) { const CATS = [ { id:'alerts', icon:'siren', tint:'var(--danger-100)', ic:'var(--danger-500)', label:'Emergency alerts', sub:'Always on for safety', locked:true }, { id:'pickup', icon:'car-front', tint:'var(--gold-100)', ic:'var(--gold-600)', label:'Pickup & bus', sub:'Boarding, arrivals, delays' }, { id:'attend', icon:'calendar-check', tint:'var(--warning-100)', ic:'var(--warning-600)', label:'Attendance', sub:'Absences & tardies' }, { id:'grades', icon:'graduation-cap', tint:'var(--blue-100)', ic:'var(--blue-500)', label:'Grades & feedback', sub:'New grades and teacher notes' }, { id:'messages',icon:'message-circle', tint:'var(--info-100)', ic:'var(--info-500)', label:'Messages', sub:'Teacher & school replies' }, { id:'payments',icon:'wallet', tint:'var(--success-100)', ic:'var(--success-500)', label:'Payments', sub:'Low balance & receipts' }, { id:'events', icon:'calendar-days', tint:'var(--gold-100)', ic:'var(--gold-600)', label:'Events & announcements', sub:'Calendar & school news' }, ]; const load = () => { try { return JSON.parse(localStorage.getItem('jl_notif')||'null'); } catch(e){ return null; } }; const [prefs, setPrefs] = React.useState(() => load() || { alerts:{push:true,sms:true}, pickup:{push:true,sms:true}, attend:{push:true,sms:false}, grades:{push:true,sms:false}, messages:{push:true,sms:false}, payments:{push:true,sms:false}, events:{push:false,sms:false} }); const [quiet, setQuiet] = React.useState(true); const save = (next) => { setPrefs(next); try { localStorage.setItem('jl_notif', JSON.stringify(next)); } catch(e){} }; const toggle = (cat, ch) => { const c = CATS.find(x=>x.id===cat); if (c.locked) return; save({ ...prefs, [cat]: { ...prefs[cat], [ch]: !prefs[cat][ch] } }); }; const Tog = ({ on, onClick, locked }) => ( ); return (