/* ============================================================ ZENITH — Admin · Streams & subjects console Prepopulated official A/L catalog; admin toggles which streams (and which subjects within each stream) are offered at signup. Effective availability = stream ON AND subject ON. ============================================================ */ function StreamToggle({ on, disabled, onChange }) { return ( ); } function AdminStreams() { const { lang } = useApp(); const T = (en, si) => tx(lang, en, si); const [streams, setStreams] = useState((window.ZDATA.admin && window.ZDATA.admin.streams) || []); const [busy, setBusy] = useState(null); // "code" or "code/subject" while a toggle is in flight const apply = block => { setStreams(block); if (window.ZDATA.admin) window.ZDATA.admin.streams = block; }; const flipStream = async st => { if (busy) return; setBusy(st.code); try { apply((await window.ZAPI.toggleStream(st.code, !st.enabled)).streams); } catch (e) { console.error("toggleStream failed", e); } setBusy(null); }; const flipSubject = async (st, sub) => { if (busy) return; setBusy(st.code + "/" + sub.code); try { apply((await window.ZAPI.toggleStreamSubject(st.code, sub.code, !sub.enabled)).streams); } catch (e) { console.error("toggleStreamSubject failed", e); } setBusy(null); }; const enabledStreams = streams.filter(s => s.enabled).length; return (
{T("Students can only register under an enabled stream, and pick 3 subjects from its enabled list.", "සිසුන්ට ලියාපදිංචි විය හැක්කේ සක්රීය ධාරාවක් යටතේ පමණි; එහි සක්රීය ලැයිස්තුවෙන් විෂයයන් 3ක් තෝරාගත යුතුය.")}