1"use strict";(self.webpackChunkred_platform=self.webpackChunkred_platform||[]).push([[437],{93611:(e,s,a)=>{a.r(s),a.d(s,{default:()=>K});var t=a(49198),i=a(98713),r=a(68920),n=a(65766),l=a(74788),c=a(64376),o=a(86791),d=a(29776),m=a(31353),h=a(57111),u=a(77823),_=a(85582);const p="participantLookup__selectedClassrooms",v=["[email protected]","[email protected]"],g=["@stoprecidivism.org","@myreded.com"],j=(0,r.MN)((e=>{let{firebase:s,cachedUsers:a,cachedClassrooms:i}=e;const r=(0,o.W6)(),[n,l]=(0,t.useState)(!0),[c,j]=(0,t.useState)([]),[x,N]=(0,t.useState)([]),[b,k]=(0,t.useState)("by-classroom"),[f,w]=(0,t.useState)(!1),[y,C]=(0,t.useState)([]),[S,D]=(0,t.useState)(""),[A,L]=(0,t.useState)(""),[R,I]=(0,t.useState)("joined"),[E,M]=(0,t.useState)("desc"),O=(0,t.useRef)(null);(0,t.useEffect)((()=>{const e=(0,d.vc)(p);e&&Array.isArray(e)&&C(e)}),[]),(0,t.useEffect)((()=>{const e=e=>{O.current&&!O.current.contains(e.target)&&w(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]);const P=(0,t.useCallback)((async()=>{if(a&&i){l(!0);try{const e=i,s=a,t=Object.keys(e).map((s=>({classId:s,className:e[s].className||s,classroomClosed:e[s].classroomClosed||!1}))).filter((e=>!e.classroomClosed)).sort(((e,s)=>e.className.localeCompare(s.className))),r=new Set(t.map((e=>e.className))),n=Object.keys(s).map((e=>({...s[e],uid:e}))).filter((e=>!e.isAdmin&&!(e=>{if(!e)return!1;const s=e.toLowerCase();return!!v.includes(s)||g.some((e=>s.endsWith(e)))})(e.email)));n.forEach((e=>{e.hasClassroom=!(!e.classId||!r.has(e.classId)),e.isNewThisWeek=(e=>{if(!e)return!1;const s=new Date(e);if(isNaN(s.getTime()))return!1;const a=new Date;return a.setDate(a.getDate()-7),s>=a})(e.createdAt)})),N(t),j(n)}catch(e){console.error("Error fetching participant data:",e)}l(!1)}}),[a,i]);(0,t.useEffect)((()=>{P()}),[P]);let T=[];if("all"===b)T=[...c];else if("by-classroom"===b)if(0===y.length)T=c.filter((e=>e.hasClassroom));else{const e=new Set(y.map((e=>{var s;return null===(s=x.find((s=>s.classId===e)))||void 0===s?void 0:s.className})));T=c.filter((s=>s.classId&&e.has(s.classId)))}else"unassigned"===b?T=c.filter((e=>!e.hasClassroom)):"new-this-week"===b&&(T=c.filter((e=>e.isNewThisWeek)));if(A){const e=A.toLowerCase();T=T.filter((s=>String(s.displayName||"").toLowerCase().includes(e)||String(s.email||"").toLowerCase().includes(e)||String(s.phoneNumber||s.phone||"").toLowerCase().includes(e)))}const F="asc"===E?1:-1;T.sort(((e,s)=>{if("name"===R){const a=(e.displayName||"").toLowerCase(),t=(s.displayName||"").toLowerCase();return a.localeCompare(t)*F}if("lastLogin"===R){return(new Date((0,m.L)(e)||0).getTime()-new Date((0,m.L)(s)||0).getTime())*F}return(new Date(e.createdAt||0).getTime()-new Date(s.createdAt||0).getTime())*F}));const V=e=>{R===e?M((e=>"asc"===e?"desc":"asc")):(I(e),M("name"===e?"asc":"desc"))},U=e=>R!==e?" \u2195":"asc"===E?" \u25b2":" \u25bc",$=e=>{C((s=>{const a=s.includes(e)?s.filter((s=>s!==e)):[...s,e];return(0,d.lR)(p,a),a}))},W=()=>{if(!S)return x;const e=S.toLowerCase();return x.filter((s=>s.className.toLowerCase().includes(e)))},B=W(),q=c.filter((e=>e.hasClassroom)).length,H=c.filter((e=>!e.hasClassroom)).length,Y=c.filter((e=>e.isNewThisWeek)).length;return n?(0,_.jsxs)("div",{className:"participants__loading",children:[(0,_.jsx)("div",{className:"participants__spinner"}),"Loading user data..."]}):(0,_.jsxs)("div",{className:"participants__container",children:[(0,_.jsxs)("div",{className:"participants__header",children:[(0,_.jsx)("h2",{className:"participants__title",children:"Users Lookup"}),(0,_.jsx)("p",{className:"participants__subtitle",children:"Search and filter users across all classrooms"})]}),(0,_.jsxs)("div",{className:"participants__summary-cards",children:[(0,_.jsxs)("div",{className:"participants__card "+("all"===b?"participants__card--selected":""),onClick:()=>k("all"),children:[(0,_.jsx)("div",{className:"participants__card-value",children:c.length}),(0,_.jsx)("div",{className:"participants__card-label",children:"All Users"})]}
1),(0,_.jsxs)("div",{className:"participants__card "+("by-classroom"===b?"participants__card--selected":""),onClick:()=>k("by-classroom"),children:[(0,_.jsx)("div",{className:"participants__card-value",children:q}),(0,_.jsx)("div",{className:"participants__card-label",children:"In Classrooms"})]}),(0,_.jsxs)("div",{className:`participants__card ${"unassigned"===b?"participants__card--selected":""} ${H>0?"participants__card--alert":""}`,onClick:()=>k("unassigned"),children:[(0,_.jsx)("div",{className:"participants__card-value",children:H}),(0,_.jsx)("div",{className:"participants__card-label",children:"No Classroom"})]}),(0,_.jsxs)("div",{className:"participants__card "+("new-this-week"===b?"participants__card--selected":""),onClick:()=>k("new-this-week"),children:[(0,_.jsx)("div",{className:"participants__card-value",children:Y}),(0,_.jsx)("div",{className:"participants__card-label",children:"New This Week"})]})]}),"by-classroom"===b&&(0,_.jsx)("div",{className:"participants__filter-bar",children:(0,_.jsxs)("div",{className:"participants__select-wrapper",ref:O,children:[(0,_.jsxs)("div",{className:"participants__select-toggle "+(f?"participants__select-toggle--open":""),onClick:()=>w(!f),children:[(0,_.jsx)("div",{className:"participants__select-tags",children:0===y.length?(0,_.jsxs)("span",{className:"participants__select-placeholder",children:["All classrooms (",x.length,")"]}):(0,_.jsxs)(_.Fragment,{children:[y.slice(0,3).map((e=>{const s=x.find((s=>s.classId===e));return(0,_.jsxs)("span",{className:"participants__tag",children:[(null===s||void 0===s?void 0:s.className)||e,(0,_.jsx)("span",{className:"participants__tag-remove",onClick:s=>{s.stopPropagation(),$(e)},children:"\xd7"})]},e)})),y.length>3&&(0,_.jsxs)("span",{className:"participants__tag participants__tag--more",children:["+",y.length-3," more"]})]})}),(0,_.jsx)("span",{className:"participants__select-arrow "+(f?"participants__select-arrow--open":""),children:"\u25be"})]}),f&&(0,_.jsxs)("div",{className:"participants__dropdown",children:[(0,_.jsx)("div",{className:"participants__dropdown-search",children:(0,_.jsx)("input",{type:"text",placeholder:"Search classrooms...",value:S,onChange:e=>D(e.target.value),className:"participants__search-input",autoFocus:!0})}),(0,_.jsxs)("div",{className:"participants__dropdown-actions",children:[(0,_.jsx)("button",{className:"participants__dropdown-action",onClick:()=>{const e=W().map((e=>e.classId)),s=e.every((e=>y.includes(e)))?y.filter((s=>!e.includes(s))):[...new Set([...y,...e])];C(s),(0,d.lR)(p,s)},children:B.length>0&&B.every((e=>y.includes(e.classId)))?"Deselect all":"Select all"}),y.length>0&&(0,_.jsx)("button",{className:"participants__dropdown-action participants__dropdown-action--clear",onClick:()=>{C([]),(0,d.lR)(p,[])},children:"Clear"})]}),(0,_.jsxs)("ul",{className:"participants__dropdown-list",children:[B.map((e=>(0,_.jsxs)("li",{className:"participants__dropdown-item "+(y.includes(e.classId)?"participants__dropdown-item--selected":""),onClick:()=>$(e.classId),children:[(0,_.jsx)("input",{type:"checkbox",checked:y.includes(e.classId),readOnly:!0,className:"participants__checkbox"}),(0,_.jsx)("span",{className:"participants__dropdown-item-name",children:e.className})]},e.classId))),0===B.length&&(0,_.jsxs)("li",{className:"participants__dropdown-empty",children:['No classrooms match "',S,'"']})]})]})]})}),(0,_.jsxs)("div",{className:"participants__table-search",children:[(0,_.jsx)("input",{type:"text",placeholder:"Search by name, email, or phone...",value:A,onChange:e=>L(e.target.value),className:"participants__table-search-input"}),(0,_.jsxs)("span",{className:"participants__result-count",children:[T.length," user",1!==T.length?"s":""]})]}),0===T.length?(0,_.jsx)("div",{className:"participants__empty",children:(0,_.jsx)("div",{className:"participants__empty-text",children:"unassigned"===b?"No users without a classroom.":"new-this-week"===b?"No new users in the past 7 days.":"No users found. Adjust your filters above."})}):(0,_.jsx)("div",{className:"participants__table-container",children:(0,_.jsxs)("table",{className:"participants__table",children:[(0,_.jsx)("thead",{children:(0,_.jsxs)("tr",{children:[(0,_.jsxs)("th",{className:"participants__th--sortable",onClick:()=>V("name"),children:["Name",U("name")]}),(0,_.jsx)("th",{children:"Email"}),(0,_.jsx)("th",{children:"Phone"}),(0,_.jsx)("th",{children:"Classroom"}),(0,_.jsxs)("th",{className:"participants__th--sortable",onClick:()=>V("joined"),children:["Joined",U("joined")]}),(0,_.jsxs)("th",{className:"participants__th--sortable",onClick:()=>V("lastLogin"),children:["Last Login",U("lastLogin")]}),"new-this-week"===b&&(0,_.jsx)("th",{children:"Classroom Status"})]})}),(0,_.jsx)("tbody",{children:T.map(((e,s)=>(0,_.jsxs)("tr",{className:`participants__row ${s%2===1?"participants__row--alt":""} ${(0,u.MF)(e)?"participants__row--inactive":""} ${(0,u.OZ)(e)?"participants__row--released":""}`,children:[(0,_.jsxs)("td",{className:"participants__name-cell participants__name-cell--clickable",onClick:()=>r.push(`/viewUser/${e.uid}`),children:[e.displayName||"Unknown",(0,_.jsx)(h.A,{user:e}),e.isNewThisWeek&&"new-this-week"!==b&&(0,_.jsx)("span",{className:"participants__new-badge",children:"NEW"})]}),(0,_.jsx)("td",{children:e.email||"\u2014"}),(0,_.jsx)("td",{children:e.phoneNumber||e.phone||"\u2014"}),(0,_.jsx)("td",{children:e.classId||"\u2014"}),(0,_.jsx)("td",{children:e.createdAt?new Date(e.createdAt).toLocaleDateString():"\u2014"}),(0,_.jsx)("td",{children:(0,m.L)(e)?new Date((0,m.L)(e)).toLocaleDateString():"\u2014"}),"new-this-week"===b&&(0,_.jsx)("td",{children:e.hasClassroom?(0,_.jsx)("span",{className:"participants__status-badge participants__status-badge--assigned",children:"Assigned"}):(0,_.jsx)("span",{className:"participants__status-badge participants__status-badge--unassigned",children:"Unassigned"})})]},e.uid)))})]})})]})}));var x=a(48821),N=a(43444),b=a(34953),k=a(56059),f=a.n(k),w=a(31929);const y="adminDropoutAnalysis__selectedClassrooms",C=["[email protected]","[email protected]"],S=["@stoprecidivism.org","@myreded.com"],D=(0,r.MN)((e=>{let{firebase:s,cachedUsers:a,cachedClassrooms:i}=e;const[r,n]=(0,t.useState)(!0),[l,c]=(0,t.useState)(!1),[o,m]=(0,t.useState)([]),[h,p]=(0,t.useState)([]),[v,g]=(0,t.useState)([]),[j,k]=(0,t.useState)(!1),[D,A]=(0,t.useState)(""),[L,R]=(0,t.useState)([]),I=(0,t.useRef)(null);(0,t.useEffect)((()=>{const e=(0,d.vc)(y);e&&Array.isArray(e)&&g(e)}),[]),(0,t.useEffect)((()=>{const e=e=>{I.current&&!I.current.contains(e.target)&&k(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)}),[]);const E=(0,t.useCallback)((()=>
1{if(!a||!i)return;n(!0);const e=Object.keys(i).map((e=>({id:e,...i[e]}))).filter((e=>e.className)).sort(((e,s)=>(e.className||"").localeCompare(s.className||""))),s=Object.keys(a).map((e=>({...a[e],uid:e})));m(e),p(s),n(!1)}),[a,i]);(0,t.useEffect)((()=>{E()}),[E]);const M=(0,t.useMemo)((()=>{if(0===v.length)return[];const e=new Set(o.filter((e=>v.includes(e.id))).map((e=>e.className)));return h.filter((s=>e.has(s.classId)&&!s.isMentor&&!s.isAdmin&&!(e=>{if(!e)return!1;const s=e.toLowerCase();return!!C.includes(s)||S.some((e=>s.endsWith(e)))})(s.email)))}),[h,o,v]),O=(0,t.useMemo)((()=>M.filter((e=>!e.inactive))),[M]);(0,t.useEffect)((()=>{if(0===O.length)return void R([]);(async()=>{c(!0);try{const e=await(0,b.o)(s).getAllQuestions(),a=await Promise.all(O.map((async a=>{var t;let i=[];const r=await s.preLsiAssessmentResultsNew(a.uid).get();if(r.exists){const e=r.data();e.lsiAnswers&&(i=Object.entries(e.lsiAnswers).map((e=>{let[s,a]=e;return{...a,id:s}})))}const n=null===(t=i.find((e=>"SrtWJWDRCPAwFIowSFiQ"===e.id)))||void 0===t?void 0:t.value;if(n){const e=f()(n,"DD/MM/YYYY");if(e.isValid()){const s=f()().diff(e,"years");isNaN(s)||(a.age=s)}}const l=[...new Set(Object.entries(N.GE).filter((s=>{let[a]=s;const t=e.find((e=>e.id===a)),r=i.find((e=>e.id===a));var n;return!(!t||!r)&&(null===(n=t.options)||void 0===n?void 0:n.some((e=>e.isRisky&&e.value===r.value)))})).map((e=>{let[,s]=e;return s})))],c=(0,x.VP)(e,i,!0,null),o=Object.keys(N.HN).map((s=>({category:s,label:N.HN[s],risk:(0,x.q6)(s,e,i,null)})));return{...a,overallRisk:c,categoryRisks:o,highRiskSpecificQuestions:l,lsiData:i}})));R(a)}catch(e){console.error("Error computing risk data:",e)}c(!1)})()}),[O,s]);const P=()=>{if(!D)return o;const e=D.toLowerCase();return o.filter((s=>s.className.toLowerCase().includes(e)))},T=P();return r?(0,_.jsxs)("div",{className:"admin-dropout__loading",children:[(0,_.jsx)("div",{className:"admin-dropout__spinner"}),"Loading classroom data..."]}):(0,_.jsxs)("div",{className:"admin-dropout__container",children:[(0,_.jsx)("div",{className:"admin-dropout__filter",children:(0,_.jsxs)("div",{className:"admin-dropout__filter-row",children:[(0,_.jsxs)("div",{className:"admin-dropout__dropdown",ref:I,children:[(0,_.jsxs)("button",{className:"admin-dropout__dropdown-trigger",onClick:()=>k(!j),children:[0===v.length?"Select classrooms...":`${v.length} classroom${v.length>1?"s":""} selected`,(0,_.jsx)("span",{className:"admin-dropout__dropdown-arrow",children:j?"\u25b2":"\u25bc"})]}),j&&(0,_.jsxs)("div",{className:"admin-dropout__dropdown-menu",children:[(0,_.jsx)("input",{className:"admin-dropout__dropdown-search",placeholder:"Search classrooms...",value:D,onChange:e=>A(e.target.value),autoFocus:!0}),(0,_.jsxs)("div",{className:"admin-dropout__dropdown-actions",children:[(0,_.jsx)("button",{onClick:()=>{const e=P().map((e=>e.id)),s=e.every((e=>v.includes(e)))?v.filter((s=>!e.includes(s))):[...new Set([...v,...e])];g(s),(0,d.lR)(y,s)},children:T.every((e=>v.includes(e.id)))?"Deselect All":"Select All"}),v.length>0&&(0,_.jsx)("button",{onClick:()=>{g([]),(0,d.lR)(y,[])},children:"Clear"})]}),(0,_.jsx)("div",{className:"admin-dropout__dropdown-list",children:T.map((e=>(0,_.jsxs)("label",{className:"admin-dropout__dropdown-item",children:[(0,_.jsx)("input",{type:"checkbox",checked:v.includes(e.id),onChange:()=>{return s=e.id,void g((e=>{const a=e.includes(s)?e.filter((e=>e!==s)):[...e,s];return(0,d.lR)(y,a),a}));var s}}),(0,_.jsx)("span",{children:e.className})]},e.id)))})]})]}),(0,_.jsxs)("span",{className:"admin-dropout__filter-count",children:[M.length," participants",M.filter(u.MF).length>0&&` (${M.filter(u.MF).length} dropped out)`]})]})}),0===v.length?(0,_.jsxs)("div",{className:"admin-dropout__empty-state",children:[(0,_.jsx)("div",{className:"admin-dropout__empty-icon",children:"\ud83d\udccb"}),(0,_.jsx)("h3",{children:"Select Classrooms to Analyze"}),(0,_.jsx)("p",{children:"Choose one or more classrooms above to view dropout analysis across those cohorts."})]}):l?(0,_.jsxs)("div",{className:"admin-dropout__loading",children:[(0,_.jsx)("div",{className:"admin-dropout__spinner"}),"Computing risk analysis for ",O.length," active participants..."]}):(0,_.jsx)(w.A,{totalUsers:M,users:O,firebase:s,userRiskData:L})]})}));var A=a(24767);const L=[{value:"thisWeek",label:"This Week"},{value:"lastWeek",label:"Last Week"},{value:"thisMonth",label:"This Month"},{value:"lastMonth",label:"Last Month"},{value:"all",label:"All Time"}],R=["[email protected]","[email protected]","[email protected]"],I=(0,r.MN)((e=>{let{firebase:s,cachedUsers:a,cachedClassrooms:i}=e;const r=(0,o.W6)(),[n,l]=(0,t.useState)("all"),[c,d]=(0,t.useState)([]),[h,u]=(0,t.useState)([]),[p,v]=(0,t.useState)([]),[g,j]=(0,t.useState)(!0),[x,N]=(0,t.useState)(null),[b,k]=(0,t.useState)("lastActive"),[f,w]=(0,t.useState)("desc"),y=e=>{b===e?w((e=>"asc"===e?"desc":"asc")):(k(e),w("desc"))},C=e=>b!==e?" \u2195":"asc"===f?" \u2191":" \u2193",S=(0,t.useCallback)((()=>
1{if(!a||!i)return;const e=Object.entries(a).filter((e=>{let[,s]=e;return s.isMentor&&!(e=>{if(!e)return!1;const s=e.toLowerCase();return R.includes(s)||s.endsWith("@maildrop.cc")})(s.email)})).map((e=>{let[s,a]=e;return{uid:s,displayName:a.displayName||a.username||"",email:a.email||"",latestLogin:(0,m.L)(a)}}));d(e);const s=Object.entries(i).map((e=>{let[s,a]=e;return{id:s,className:a.className||"",teachers:a.teachers||{},teacherId:a.teacherId||null}}));v(s)}),[a,i]),D=(0,t.useCallback)((async()=>{j(!0);try{let e=s.mentorActivityCollection();if("all"!==n){const{startDate:s,endDate:a}=(0,A.uo)(n);e=e.where("timestamp",">=",s.toISOString()).where("timestamp","<=",a.toISOString())}const a=(await e.get()).docs.map((e=>({id:e.id,...e.data()})));u(a)}catch(e){console.error("Error fetching mentor activity:",e)}j(!1)}),[s,n]);(0,t.useEffect)((()=>{S()}),[S]),(0,t.useEffect)((()=>{D()}),[D]);const I=(0,t.useMemo)((()=>{const e={};return p.forEach((s=>{s.teacherId&&(e[s.teacherId]||(e[s.teacherId]=[]),e[s.teacherId].push(s.className)),Object.values(s.teachers).forEach((a=>{a.uid&&(e[a.uid]||(e[a.uid]=[]),e[a.uid].includes(s.className)||e[a.uid].push(s.className))}))})),e}),[p]),E=(0,t.useMemo)((()=>{const e={};return c.forEach((s=>{e[s.uid]={...s,logins:0,notificationsSent:0,outreachLogged:0,participantsInvited:0,instructionsDownloaded:0,reportsDownloaded:0,assignedClassrooms:I[s.uid]||[],classroomsViewed:new Set,studentsViewed:new Set,tabCounts:{},lastActive:s.latestLogin||null,loginTimestamps:[],classroomDetails:{},studentDetails:{},notificationDetails:[],outreachDetails:[],invitationDetails:[],instructionDetails:[],reportDetails:[]}})),h.forEach((s=>{var a,t,i,r,n,l,c,o,d,m,h,u,_,p,v,g,j,x,N;const b=e[s.mentorUid];if(b)switch((!b.lastActive||s.timestamp>b.lastActive)&&(b.lastActive=s.timestamp),s.eventType){case"login":b.logins++,b.loginTimestamps.push(s.timestamp);break;case"classroom_view":if(null!==(a=s.metadata)&&void 0!==a&&a.classroomId){b.classroomsViewed.add(s.metadata.classroomId);const e=s.metadata.classroomName||s.metadata.classroomId;b.classroomDetails[e]=(b.classroomDetails[e]||0)+1}break;case"student_view":if(null!==(t=s.metadata)&&void 0!==t&&t.studentUid){b.studentsViewed.add(s.metadata.studentUid);const e=s.metadata.studentName||s.metadata.studentUid;b.studentDetails[e]=(b.studentDetails[e]||0)+1}break;case"tab_view":null!==(i=s.metadata)&&void 0!==i&&i.tabName&&(b.tabCounts[s.metadata.tabName]=(b.tabCounts[s.metadata.tabName]||0)+1);break;case"notification_sent":b.notificationsSent++,b.notificationDetails.push({type:(null===(r=s.metadata)||void 0===r?void 0:r.type)||"unknown",channels:(null===(n=s.metadata)||void 0===n?void 0:n.channels)||[],studentName:(null===(l=s.metadata)||void 0===l?void 0:l.studentName)||null,title:(null===(c=s.metadata)||void 0===c?void 0:c.title)||null,timestamp:s.timestamp});break;case"outreach_logged":b.outreachLogged++,b.outreachDetails.push({channel:(null===(o=s.metadata)||void 0===o?void 0:o.channel)||"unknown",studentName:(null===(d=s.metadata)||void 0===d?void 0:d.studentName)||null,classroomName:(null===(m=s.metadata)||void 0===m?void 0:m.classroomName)||"",timestamp:s.timestamp});break;case"participant_invited":b.participantsInvited+=((null===(h=s.metadata)||void 0===h?void 0:h.emailCount)||0)+((null===(u=s.metadata)||void 0===u?void 0:u.phoneCount)||0),b.invitationDetails.push({classroomName:(null===(_=s.metadata)||void 0===_?void 0:_.classroomName)||"",emailCount:(null===(p=s.metadata)||void 0===p?void 0:p.emailCount)||0,phoneCount:(null===(v=s.metadata)||void 0===v?void 0:v.phoneCount)||0,timestamp:s.timestamp});break;case"instructions_downloaded":b.instructionsDownloaded++,b.instructionDetails.push({instructionsType:(null===(g=s.metadata)||void 0===g?void 0:g.instructionsType)||"student",classroomName:(null===(j=s.metadata)||void 0===j?void 0:j.classroomName)||"",timestamp:s.timestamp});break;case"report_downloaded":b.reportsDownloaded++,b.reportDetails.push({reportType:(null===(x=s.metadata)||void 0===x?void 0:x.reportType)||"unknown",classroomName:(null===(N=s.metadata)||void 0===N?void 0:N.classroomName)||"",timestamp:s.timestamp})}})),Object.values(e).map((e=>{var s;return{...e,classroomsViewedCount:e.classroomsViewed.size,studentsViewedCount:e.studentsViewed.size,topTab:(null===(s=Object.entries(e.tabCounts).sort(((e,s)=>s[1]-e[1]))[0])||void 0===s?void 0:s[0])||"\u2014",notificationDetail
1s:e.notificationDetails.sort(((e,s)=>String(s.timestamp||"").localeCompare(String(e.timestamp||"")))),outreachDetails:e.outreachDetails.sort(((e,s)=>String(s.timestamp||"").localeCompare(String(e.timestamp||"")))),invitationDetails:e.invitationDetails.sort(((e,s)=>String(s.timestamp||"").localeCompare(String(e.timestamp||"")))),instructionDetails:e.instructionDetails.sort(((e,s)=>String(s.timestamp||"").localeCompare(String(e.timestamp||"")))),reportDetails:e.reportDetails.sort(((e,s)=>String(s.timestamp||"").localeCompare(String(e.timestamp||""))))}})).sort(((e,s)=>{let a,t;switch(b){case"displayName":return a=(e.displayName||"").toLowerCase(),t=(s.displayName||"").toLowerCase(),"asc"===f?a.localeCompare(t):t.localeCompare(a);case"logins":a=e.logins,t=s.logins;break;case"classroomsViewedCount":a=e.classroomsViewedCount,t=s.classroomsViewedCount;break;default:return a=String(e.lastActive||""),t=String(s.lastActive||""),"asc"===f?a.localeCompare(t):t.localeCompare(a)}return"asc"===f?a-t:t-a}))}),[c,h,I,b,f]),M=(0,t.useMemo)((()=>({totalLogins:E.reduce(((e,s)=>e+s.logins),0),totalClassroomVisits:E.reduce(((e,s)=>e+s.classroomsViewedCount),0),totalStudentViews:E.reduce(((e,s)=>e+s.studentsViewedCount),0),totalNotificationsSent:E.reduce(((e,s)=>e+s.notificationsSent),0),totalOutreachLogged:E.reduce(((e,s)=>e+s.outreachLogged),0),totalParticipantsInvited:E.reduce(((e,s)=>e+s.participantsInvited),0),totalInstructionsDownloaded:E.reduce(((e,s)=>e+s.instructionsDownloaded),0),totalReportsDownloaded:E.reduce(((e,s)=>e+s.reportsDownloaded),0),activeMentors:E.filter((e=>e.lastActive)).length})),[E]),O=e=>{if(!e)return"\u2014";try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"})}catch{return"\u2014"}};return(0,_.jsxs)("div",{className:"mentor-tracking__container",children:[(0,_.jsxs)("div",{className:"mentor-tracking__filter",children:[(0,_.jsx)("label",{children:"Time Period:"}),(0,_.jsx)("select",{value:n,onChange:e=>l(e.target.value),children:L.map((e=>(0,_.jsx)("option",{value:e.value,children:e.label},e.value)))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__summary",children:[(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalLogins}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Total Logins"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalClassroomVisits}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Classroom Visits"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalStudentViews}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Student Profiles Viewed"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalNotificationsSent}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Notifications Sent"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalOutreachLogged}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Outreach Logged"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalParticipantsInvited}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Participants Invited"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalInstructionsDownloaded}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Instructions Downloaded"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.totalReportsDownloaded}
1),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Reports Downloaded"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__card",children:[(0,_.jsx)("div",{className:"mentor-tracking__card-value",children:M.activeMentors}),(0,_.jsx)("div",{className:"mentor-tracking__card-label",children:"Active Coordinators"})]})]}),g?(0,_.jsx)("div",{className:"mentor-tracking__loading",children:"Loading activity data..."}):0===E.length?(0,_.jsx)("div",{className:"mentor-tracking__empty",children:"No coordinators found."}):(0,_.jsx)("div",{className:"mentor-tracking__table-container",children:(0,_.jsxs)("table",{className:"mentor-tracking__table",children:[(0,_.jsx)("thead",{children:(0,_.jsxs)("tr",{children:[(0,_.jsxs)("th",{className:"mentor-tracking__sortable-th",onClick:()=>y("displayName"),children:["Coordinator Name",C("displayName")]}),(0,_.jsx)("th",{children:"Email"}),(0,_.jsxs)("th",{className:"mentor-tracking__sortable-th",onClick:()=>y("logins"),children:["Logins",C("logins")]}),(0,_.jsx)("th",{children:"Assigned Classrooms"}),(0,_.jsxs)("th",{className:"mentor-tracking__sortable-th",onClick:()=>y("classroomsViewedCount"),children:["Classroom Visits",C("classroomsViewedCount")]}),(0,_.jsx)("th",{children:"Students Viewed"}),(0,_.jsx)("th",{children:"Notifications Sent"}),(0,_.jsx)("th",{children:"Outreach Logged"}),(0,_.jsx)("th",{children:"Invited"}),(0,_.jsx)("th",{children:"Instructions"}),(0,_.jsx)("th",{children:"Reports"}),(0,_.jsxs)("th",{className:"mentor-tracking__sortable-th",onClick:()=>y("lastActive"),children:["Last Active",C("lastActive")]}),(0,_.jsx)("th",{children:"Top Tab"})]})}),(0,_.jsx)("tbody",{children:E.map((e=>(0,_.jsxs)(t.Fragment,{children:[(0,_.jsxs)("tr",{onClick:()=>{return s=e.uid,void N(x===s?null:s);var s},children:[(0,_.jsx)("td",{className:"mentor-tracking__name-cell",onClick:s=>{s.stopPropagation(),r.push(`/viewUser/${e.uid}`)},children:e.displayName||"\u2014"}),(0,_.jsx)("td",{children:e.email||"\u2014"}),(0,_.jsx)("td",{children:e.logins}),(0,_.jsx)("td",{children:e.assignedClassrooms.length}),(0,_.jsx)("td",{children:e.classroomsViewedCount}),(0,_.jsx)("td",{children:e.studentsViewedCount}),(0,_.jsx)("td",{children:e.notificationsSent}),(0,_.jsx)("td",{children:e.outreachLogged}),(0,_.jsx)("td",{children:e.participantsInvited}),(0,_.jsx)("td",{children:e.instructionsDownloaded}),(0,_.jsx)("td",{children:e.reportsDownloaded}),(0,_.jsx)("td",{children:O(e.lastActive)}),(0,_.jsx)("td",{children:e.topTab})]}),x===e.uid&&(0,_.jsx)("tr",{className:"mentor-tracking__detail-row",children:(0,_.jsx)("td",{colSpan:13,children:(0,_.jsxs)("div",{className:"mentor-tracking__detail",children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview",children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview-card",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-value",children:e.assignedClassrooms.length}),(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-label",children:"Assigned Classrooms"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview-card",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-value",children:e.logins}),(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-label",children:"Logins"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview-card",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-value",children:e.classroomsViewedCount}),(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-label",children:"Classroom Visits"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview-card",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-value",children:e.studentsViewedCount}),(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-label",children:"Students Viewed"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview-card",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-value",children:e.notificationsSent}),(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-label",children:"Notifications"})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-overview-card",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-value",children:e.outreachLogged}),(0,_.jsx)("span",{className:"mentor-tracking__detail-overview-label",children:"Outreach"})]})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-grid",children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-column",children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Assigned Classrooms"}),0===e.assignedClassrooms.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"Not assigned to any classrooms"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-list",children:e.assignedClassrooms.map((e=>(0,_.jsxs)("li",{children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-dot"}),e]},e)))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Classrooms Visited"}),0===Object.keys(e.classroomDetails).length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-list",children:Object.entries(e.classroomDetails).sort(((e,s)=>s[1]-e[1])).map((e=>{let[s,a]=e;return(0,_.jsxs)("li",{children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-dot"}),s,(0,_.jsx)("span",{className:"mentor-tracking__detail-badge",children:a})]},s)}))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Students Viewed"}),0===Object.keys(e.studentDetails).length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-list",children:Object.entries(e.studentDetails).sort(((e,s)=>s[1]-e[1])).map((e=>{let[s,a]=e;return(0,_.jsxs)("li",{children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-dot"}),s,(0,_.jsx)("span",{className:"mentor-tracking__detail-badge",children:a})]},s)}))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Tab Usage"}),0===Object.keys(e.tabCounts).length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("div",{className:"mentor-tracking__detail-bars",children:Object.entries(e.tabCounts).sort(((e,s)=>s[1]-e[1])).map((s=>{let[a,t]=s;const i=Math.max(...Object.values(e.tabCounts));return(0,_.jsxs)("div",{className:"mentor-tracking__detail-bar-row",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-bar-label",children:a}),(0,_.jsx)("div",{className:"mentor-tracking__detail-bar-track",children:(0,_.jsx)("div",{className:"mentor-tracking__detail-bar-fill",style:{width:t/i*100+"%"}})}),(0,_.jsx)("span",{className:"mentor-tracking__detail-bar-count",children:t})]},a)}))})]})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-column",children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Recent Logins"}),0===e.loginTimestamps.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"No logins in this period"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-timeline",children:e.loginTimestamps.sort(((e,s)=>String(s||"").localeCompare(String(e||"")))).slice(0,10).map(((e,s)=>(0,_.jsxs)("li",{className:"mentor-tracking__detail-timeline-item",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-timeline-dot"}),O(e)]}
1,s)))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Notifications Sent"}),0===e.notificationDetails.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-timeline",children:e.notificationDetails.slice(0,10).map(((e,s)=>{var a;return(0,_.jsxs)("li",{className:"mentor-tracking__detail-timeline-item",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-timeline-dot"}),(0,_.jsxs)("div",{children:[(0,_.jsx)("div",{className:"mentor-tracking__detail-timeline-main",children:"announcement"===e.type?`Announcement: "${e.title}"`:`Message to ${e.studentName||"student"}`}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-meta",children:[(null===(a=e.channels)||void 0===a?void 0:a.length)>0&&(0,_.jsx)("span",{className:"mentor-tracking__detail-tag",children:e.channels.join(", ")}),O(e.timestamp)]})]})]},s)}))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Outreach Logged"}),0===e.outreachDetails.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-timeline",children:e.outreachDetails.slice(0,10).map(((e,s)=>(0,_.jsxs)("li",{className:"mentor-tracking__detail-timeline-item",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-timeline-dot"}),(0,_.jsxs)("div",{children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-main",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-tag",children:e.channel.replace(/_/g," ")}),e.studentName&&` ${e.studentName}`]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-meta",children:[e.classroomName&&`${e.classroomName} \xb7 `,O(e.timestamp)]})]})]},s)))})]})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-column",children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Participants Invited"}),0===e.invitationDetails.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-timeline",children:e.invitationDetails.slice(0,10).map(((e,s)=>(0,_.jsxs)("li",{className:"mentor-tracking__detail-timeline-item",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-timeline-dot"}),(0,_.jsxs)("div",{children:[(0,_.jsx)("div",{className:"mentor-tracking__detail-timeline-main",children:e.classroomName}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-meta",children:[e.emailCount>0&&`${e.emailCount} email(s)`,e.emailCount>0&&e.phoneCount>0&&" \xb7 ",e.phoneCount>0&&`${e.phoneCount} text(s)`,(e.emailCount>0||e.phoneCount>0)&&" \xb7 ",O(e.timestamp)]})]})]},s)))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Instructions Downloaded"}),0===e.instructionDetails.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-timeline",children:e.instructionDetails.slice(0,10).map(((e,s)=>(0,_.jsxs)("li",{className:"mentor-tracking__detail-timeline-item",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-timeline-dot"}),(0,_.jsxs)("div",{children:[(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-main",children:["mentor"===e.instructionsType?"Coordinator":"Student"," instructions"]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-meta",children:[e.classroomName&&`${e.classroomName} \xb7 `,O(e.timestamp)]})]})]},s)))})]}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-panel",children:[(0,_.jsx)("h4",{className:"mentor-tracking__detail-panel-title",children:"Reports Downloaded"}),0===e.reportDetails.length?(0,_.jsx)("p",{className:"mentor-tracking__detail-empty",children:"None"}):(0,_.jsx)("ul",{className:"mentor-tracking__detail-timeline",children:e.reportDetails.slice(0,10).map(((e,s)=>(0,_.jsxs)("li",{className:"mentor-tracking__detail-timeline-item",children:[(0,_.jsx)("span",{className:"mentor-tracking__detail-timeline-dot"}),(0,_.jsxs)("div",{children:[(0,_.jsx)("div",{className:"mentor-tracking__detail-timeline-main",children:e.reportType.replace(/_/g," ")}),(0,_.jsxs)("div",{className:"mentor-tracking__detail-timeline-meta",children:[e.classroomName&&`${e.classroomName} \xb7 `,O(e.timestamp)]})]})]},s)))})]})]})]})]})})})]},e.uid)))})]})})]})}));var E=a(72434),M=a(95306),O=a(16866),P=a(33340);const T=[{key:"services",title:"Services Provided",items:N.ae},{key:"providers",title:"Service Providers",items:N.aH},{key:"placementMethods",title:"Placement Methods",items:N.MI},{key:"needsAddressed",title:"Needs Addressed",items:N.RJ}],F=e=>
1e?Object.values(e).filter(Boolean).length:0,V=e=>{let{cachedClassrooms:s}=e;const[a,i]=(0,t.useState)(null),r=(0,t.useMemo)((()=>s?Object.entries(s).filter((e=>{let[,s]=e;return s.programSurvey})).map((e=>{let[s,a]=e;return{id:s,className:a.className||"Unnamed Classroom",countyName:a.countyName||"",survey:a.programSurvey,updatedAt:a.programSurvey.updatedAt,teachers:a.teachers?Object.values(a.teachers).map((e=>e.name||e.email)).filter(Boolean):[],submittedBy:a.programSurvey.submittedBy||null,servicesCount:F(a.programSurvey.services),providersCount:F(a.programSurvey.providers),placementCount:F(a.programSurvey.placementMethods),needsCount:F(a.programSurvey.needsAddressed)}})).sort(((e,s)=>(s.updatedAt||0)-(e.updatedAt||0))):[]),[s]),n=s?Object.keys(s).length:0,l=r.length;return(0,_.jsxs)("div",{className:"resource-matching-admin",children:[(0,_.jsxs)("div",{className:"resource-matching-admin__summary",children:[(0,_.jsxs)("div",{className:"resource-matching-admin__stat",children:[(0,_.jsx)("span",{className:"resource-matching-admin__stat-value",children:l}),(0,_.jsx)("span",{className:"resource-matching-admin__stat-label",children:"Surveys Completed"})]}),(0,_.jsxs)("div",{className:"resource-matching-admin__stat",children:[(0,_.jsx)("span",{className:"resource-matching-admin__stat-value",children:n-l}),(0,_.jsx)("span",{className:"resource-matching-admin__stat-label",children:"Surveys Pending"})]}),(0,_.jsxs)("div",{className:"resource-matching-admin__stat",children:[(0,_.jsxs)("span",{className:"resource-matching-admin__stat-value",children:[n>0?Math.round(l/n*100):0,"%"]}),(0,_.jsx)("span",{className:"resource-matching-admin__stat-label",children:"Completion Rate"})]})]}),0===l?(0,_.jsx)("div",{className:"resource-matching-admin__empty",children:"No classrooms have completed the Program Intervention Survey yet."}):(0,_.jsx)("div",{className:"resource-matching-admin__table-container",children:(0,_.jsxs)("table",{className:"resource-matching-admin__table",children:[(0,_.jsx)("thead",{children:(0,_.jsxs)("tr",{children:[(0,_.jsx)("th",{}),(0,_.jsx)("th",{children:"Classroom"}),(0,_.jsx)("th",{children:"County"}),(0,_.jsx)("th",{children:"Coordinators"}),(0,_.jsx)("th",{children:"Submitted By"}),(0,_.jsx)("th",{children:"Services"}),(0,_.jsx)("th",{children:"Providers"}),(0,_.jsx)("th",{children:"Placement"}),(0,_.jsx)("th",{children:"Needs Addressed"}),(0,_.jsx)("th",{children:"Last Updated"})]})}),(0,_.jsx)("tbody",{children:r.map((e=>{return(0,_.jsxs)(t.Fragment,{children:[(0,_.jsxs)("tr",{className:"resource-matching-admin__row "+(a===e.id?"resource-matching-admin__row--expanded":""),onClick:()=>{return s=e.id,void i((e=>e===s?null:s));var s},children:[(0,_.jsx)("td",{className:"resource-matching-admin__expand-cell",children:a===e.id?(0,_.jsx)(E.A,{className:"resource-matching-admin__expand-icon"}):(0,_.jsx)(M.A,{className:"resource-matching-admin__expand-icon"})}),(0,_.jsx)("td",{className:"resource-matching-admin__name-cell",children:e.className}),(0,_.jsx)("td",{children:e.countyName}),(0,_.jsx)("td",{children:e.teachers.length>0?e.teachers.join(", "):(0,_.jsx)("span",{className:"resource-matching-admin__muted",children:"None assigned"})}),(0,_.jsx)("td",{children:e.submittedBy?(0,_.jsx)("span",{children:e.submittedBy.displayName||e.submittedBy.email}):(0,_.jsx)("span",{className:"resource-matching-admin__muted",children:"Unknown"})}),(0,_.jsx)("td",{children:(0,_.jsxs)("span",{className:"resource-matching-admin__count-badge",children:[e.servicesCount,"/",N.ae.length]})}),(0,_.jsx)("td",{children:(0,_.jsxs)("span",{className:"resource-matching-admin__count-badge",children:[e.providersCount,"/",N.aH.length]})}),(0,_.jsx)("td",{children:(0,_.jsxs)("span",{className:"resource-matching-admin__count-badge",children:[e.placementCount,"/",N.MI.length]})}),(0,_.jsx)("td",{children:(0,_.jsxs)("span",{className:"resource-matching-admin__count-badge",children:[e.needsCount,"/",N.RJ.length]})}),(0,_.jsx)("td",{children:(s=e.updatedAt,s?new Date(s).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):"N/A")})]}),a===e.id&&(0,_.jsx)("tr",{className:"resource-matching-admin__detail-row",children:(0,_.jsx)("td",{colSpan:10,children:(0,_.jsx)("div",{className:"resource-matching-admin__detail",children:T.map((s=>{let{key:a,title:t,items:i}=s;return(0,_.jsxs)("div",{className:"resource-matching-admin__section",children:[(0,_.jsx)("h4",{className:"resource-matching-admin__section-title",children:t}),(0,_.jsx)("div",{className:"resource-matching-admin__checklist",children:i.map((s=>{var t;let{key:i,label:r}=s;const n=(null===(t=e.survey[a])||void 0===t?void 0:t[i])||!1,l="needsAddressed"===a&&n?(N.xc[i]||[]).filter((s=>{var a,t;
1return null===(a=e.survey.needDetails)||void 0===a||null===(t=a[i])||void 0===t?void 0:t[s.key]})):[];return(0,_.jsxs)("div",{children:[(0,_.jsxs)("div",{className:"resource-matching-admin__check-item "+(n?"resource-matching-admin__check-item--checked":""),children:[n?(0,_.jsx)(O.A,{className:"resource-matching-admin__check-icon--yes"}):(0,_.jsx)(P.A,{className:"resource-matching-admin__check-icon--no"}),(0,_.jsx)("span",{children:r})]}),l.length>0&&(0,_.jsx)("ul",{className:"resource-matching-admin__sub-checklist",children:l.map((e=>(0,_.jsx)("li",{children:e.label},e.key)))})]},i)}))})]},a)}))})})})]},e.id);var s}))})]})})]})};var U=a(44163);const $=e=>{let{classrooms:s,users:a,firebase:i}=e;const[r,n]=(0,t.useState)(!1),[l,c]=(0,t.useState)({}),[o,d]=(0,t.useState)({}),[m,h]=(0,t.useState)({}),u=(0,t.useMemo)((()=>s?Object.entries(s).map((e=>{var s,t,i,r;let[n,l]=e;const c=!0===(null===(s=l.settings)||void 0===s||null===(t=s.progressReportMail)||void 0===t?void 0:t.activated),o=!!l.classroomClosed,d=(null===(i=l.settings)||void 0===i||null===(r=i.progressReportMail)||void 0===r?void 0:r.frequency)||"Not set",m=(l.teachers?Object.values(l.teachers):[]).filter((e=>e.email)).map((e=>{let s=!1;if(a){var t;const i=Object.values(a).find((s=>{var a,t;return(null===(a=s.email)||void 0===a?void 0:a.toLowerCase())===(null===(t=e.email)||void 0===t?void 0:t.toLowerCase())}));s=!0===(null===i||void 0===i||null===(t=i.notificationPreferences)||void 0===t?void 0:t.progressReports)}return{name:e.name||e.displayName||"Unknown",email:e.email,hasProgressReportNotif:s}}));0===m.length&&a&&Object.values(a).forEach((e=>{var s;e.isMentor&&e.classUID===n&&e.email&&m.push({name:e.displayName||e.username||"Unknown",email:e.email,hasProgressReportNotif:!0===(null===(s=e.notificationPreferences)||void 0===s?void 0:s.progressReports)})}));let h=null;if(c&&!o){const e=new Date,s=e.getDate();if("Weekly"===d){const s=new Date(e);s.setDate(s.getDate()+((7-s.getDay())%7||7)),h=s}else"Every two weeks"===d?h=s<15?new Date(e.getFullYear(),e.getMonth(),15):new Date(e.getFullYear(),e.getMonth()+1,1):"Monthly"===d&&(h=new Date(e.getFullYear(),e.getMonth()+1,1))}return{classId:n,className:l.className||n,isEnabled:c,isClosed:o,frequency:d,coordinators:m,nextSendDate:h}})).sort(((e,s)=>e.isClosed!==s.isClosed?e.isClosed?1:-1:e.isEnabled!==s.isEnabled?e.isEnabled?-1:1:e.className.localeCompare(s.className))):[]),[s,a]),p=u.filter((e=>!e.isClosed&&(e.isEnabled||!0===o[e.classId])&&!1!==o[e.classId])),v=u.filter((e=>!e.isClosed&&!e.isEnabled&&!0!==o[e.classId])),g=u.filter((e=>e.isClosed)),j=(0,t.useCallback)((async(e,s)=>{const a=!s;try{await i.classroom(e).child("settings/progressReportMail/activated").set(a),d((s=>({...s,[e]:a}))),U.oR.success(`Reports ${a?"enabled":"disabled"} for classroom`)}catch(t){console.error("Error toggling report setting:",t),U.oR.error("Failed to update setting")}}),[i]),x=(0,t.useCallback)((async(e,s)=>{try{await i.classroom(e).child("settings/progressReportMail/frequency").set(s),h((a=>({...a,[e]:s}))),U.oR.success(`Frequency updated to "${s}"`)}catch(a){console.error("Error updating frequency:",a),U.oR.error("Failed to update frequency")}}),[i]),N=(0,t.useCallback)((async()=>{n(!0);try{const e="https://us-central1-red-platform.cloudfunctions.net",s=await fetch(`${e}/sendPreviewProgressReports?forceAll=true`),a=await s.json();a.success?U.oR.success(`Preview reports sent: ${a.reportsSent} reports to [email protected]`):U.oR.error("Failed to send preview reports")}catch(e){console.error("Error triggering preview reports:",e),U.oR.error("Error triggering preview reports")}n(!1)}),[]),b=(0,t.useCallback)((async(e,s)=>{c((s=>({...s,[e]:!0})));try{const a="https://us-central1-red-platform.cloudfunctions.net",t=await fetch(`${a}/sendPreviewProgressReports?forceAll=true&classId=${e}`);(await t.json()).success?U.oR.success(`Preview sent for ${s} to [email protected]`):U.oR.error(`Failed to send preview for ${s}`)}catch(a){console.error("Error triggering single preview:",a),U.oR.error("Error sending preview report")}c((s=>({...s,[e]:!1})))}),[]),k=function(e){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a=void 0!==o[e.classId]?o[e.classId]:e.isEnabled,t=m[e.classId]||e.frequency;return(0,_.jsxs)("div",{className:"preview-reports__classroom-row",children:[(0,_.jsxs)("div",{className:"preview-reports__classroom-header",children:[(0,_.jsxs)("div",{className:"preview-reports__classroom-info",children:[(0,_.jsx)("span",{className:"preview-reports__classroom-name",children:e.className}),a&&!e.isClosed?(0,_.jsxs)("select",{className:"preview-reports__frequency-select",value:t,onChange:s=>x(e.classId,s.target.value),children:[(0,_.jsx)("option",{value:"Weekly",children:"Weekly"}),(0,_.jsx)("option",{value:"Every two weeks",children:"Every two weeks"}),(0,_.jsx)("option",{value:"Monthly",children:"Monthly"})]}):(0,_.jsx)("span",{className:"preview-reports__frequency",children:t}),e.nextSendDate&&(0,_.jsxs)("span",{className:"preview-reports__next-send",children:["Next: ",(r=e.nextSendDate,r?r.toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"}):"\u2014")]})]}),(0,_.jsxs)("div",{className:"preview-reports__actions",children:[!e.isClosed&&(0,_.jsx)("button",{className:"preview-reports__preview-btn",onClick:()=>b(e.classId,e.className),disabled:l[e.classId],children:l[e.classId]?"Sending...":"Preview"}),s&&!e.isClosed&&(0,_.jsx)("button",{className:"preview-reports__toggle-btn "+(a?"preview-reports__toggle-btn--disable":"preview-reports__toggle-btn--e
1nable"),onClick:()=>j(e.classId,a),children:a?"Disable":"Enable"})]})]}),(i=e.coordinators,0===i.length?(0,_.jsx)("span",{className:"preview-reports__no-coordinators",children:"No coordinators assigned"}):(0,_.jsx)("div",{className:"preview-reports__coordinators-list",children:i.map(((e,s)=>(0,_.jsxs)("div",{className:"preview-reports__coordinator",children:[(0,_.jsx)("span",{className:"preview-reports__coordinator-name",children:e.name}),(0,_.jsx)("span",{className:"preview-reports__coordinator-email",children:e.email}),e.hasProgressReportNotif?(0,_.jsx)("span",{className:"preview-reports__notif-badge preview-reports__notif-badge--on",children:"Subscribed"}):(0,_.jsx)("span",{className:"preview-reports__notif-badge preview-reports__notif-badge--off",children:"Not subscribed"})]},s)))}))]},e.classId);var i,r};return(0,_.jsxs)("div",{className:"preview-reports__container",children:[(0,_.jsxs)("div",{className:"preview-reports__toolbar",children:[(0,_.jsxs)("div",{className:"preview-reports__toolbar-info",children:[(0,_.jsxs)("span",{className:"preview-reports__toolbar-summary",children:[p.length," classroom",1!==p.length?"s":""," with reports enabled"]}),(0,_.jsxs)("span",{className:"preview-reports__toolbar-note",children:["Preview emails will be sent to ",(0,_.jsx)("strong",{children:"[email protected]"})]})]}),(0,_.jsx)("button",{className:"preview-reports__send-btn",onClick:N,disabled:r||0===p.length,children:r?"Sending...":`Preview All Reports (${p.length})`})]}),(0,_.jsxs)("div",{className:"preview-reports__section",children:[(0,_.jsxs)("div",{className:"preview-reports__section-header preview-reports__section-header--enabled",children:[(0,_.jsx)("span",{children:"Reports Enabled"}),(0,_.jsx)("span",{className:"preview-reports__section-count",children:p.length})]}),0===p.length?(0,_.jsx)("p",{className:"preview-reports__empty",children:"No classrooms have reports enabled"}):p.map((e=>k(e,!0)))]}),(0,_.jsxs)("div",{className:"preview-reports__section",children:[(0,_.jsxs)("div",{className:"preview-reports__section-header preview-reports__section-header--disabled",children:[(0,_.jsx)("span",{children:"Reports Disabled"}),(0,_.jsx)("span",{className:"preview-reports__section-count",children:v.length})]}),0===v.length?(0,_.jsx)("p",{className:"preview-reports__empty",children:"All active classrooms have reports enabled"}):v.map((e=>k(e,!0)))]}),g.length>0&&(0,_.jsxs)("div",{className:"preview-reports__section",children:[(0,_.jsxs)("div",{className:"preview-reports__section-header preview-reports__section-header--closed",children:[(0,_.jsx)("span",{children:"Closed Classrooms"}),(0,_.jsx)("span",{className:"preview-reports__section-count",children:g.length})]}),g.map((e=>k(e,!1)))]})]})},W={more_examples:"More examples",bullet_help:"Help writing bullets",spell_check:"Spell / grammar check",cover_letter:"Cover letter builder",more_templates:"More templates",multiple_versions:"Save multiple versions",mobile:"Easier on phone",other:"Something else"},B=e=>e<=6?"detractor":e<=8?"passive":"promoter",q=e=>{if(!e)return"";return new Date(e).toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})},H=(0,i.Zz)(r.MN)((e=>{var s;let{firebase:a}=e;const[i,r]=(0,t.useState)([]),[n,l]=(0,t.useState)(!0),[c,o]=(0,t.useState)(null);(0,t.useEffect)((()=>{let e=!1;return l(!0),a.resumeBuilderFeedback().orderBy("submittedAt","desc").get().then((s=>{if(e)return;const a=s.docs.map((e=>({id:e.id,...e.data()})));r(a),l(!1)})).catch((s=>{e||(console.log("ResumeFeedback load error",s),o("Could not load feedback. Try refreshing."),l(!1))})),()=>{e=!0}}),[a]);const d=(0,t.useMemo)((()=>{if(!i.length)return{total:0,avgNps:0,npsScore:0,promoters:0,passives:0,detractors:0,distribution:Array(11).fill(0),suggestions:[]};const e=i.length,s=i.reduce(((e,s)=>e+(s.nps||0)),0)/e;let a=0,t=0,r=0;const n=Array(11).fill(0);i.forEach((e=>{const s=e.nps;if("number"===typeof s&&s>=0&&s<=10){n[s]++;const e=B(s);"promoter"===e?a++:"passive"===e?t++:r++}}));const l=Math.round((a-r)/e*100),c={};i.forEach((e=>{(e.suggestions||[]).forEach((e=>{c[e]=(c[e]||0)+1}))}));const o=Object.entries(c).map((s=>{let[a,t]=s;return{id:a,label:W[a]||a,count:t,pct:Math.round(t/e*100)}})).sort(((e,s)=>s.count-e.count));return{total:e,avgNps:s,npsScore:l,promoters:a,passives:t,detractors:r,distribution:n,suggestions:o}}),[i]),m=Math.max(1,...d.distribution),h=(null===(s=d.suggestions[0])||void 0===s?void 0:s.count)||1,u=i.filter((e=>{var s;return null===(s=e.comment)||void 0===s?void 0:s.trim()}));return n?(0,_.jsx)("div",{className:"resume-feedback__loading",children:"Loading feedback\u2026"}):c?(0,_.jsx)("div",{className:"resume-feedback__error",children:c}):i.length?(0,_.jsxs)("div",{className:"resume-feedback",children:[(0,_.jsxs)("div",{className:"resume-feedback__cards",children:[(0,_.jsxs)("div",{className:"resume-feedback__card",children:[(0,_.jsx)("div",{className:"resume-feedback__card-label",children:"Total responses"}),(0,_.jsx)("div",{className:"resume-feedback__card-value",children:d.total})]}),(0,_.jsxs)("div",{className:"resume-feedback__card",children:[(0,_.jsx)("div",{className:"resume-feedback__card-label",children:"NPS score"}),(0,_.jsxs)("div",{className:"resume-feedback__card-value resume-feedback__card-value--"+(d.npsScore>=50?"promoter":d.npsScore>=0?"passive":"detractor"),children:[d.npsScore>0?"+":"",d.npsScore]}),(0,_.jsx)("div",{className:"resume-feedback__card-sub",children:"% Promoters \u2212 % Detractors"})]}),(0,_.jsxs)("div",{className:"resume-feedback__card",children:[(0,_.jsx)("div",{className:"resume-feedback__card-label",children:"Average rating"}),(0,_.jsxs)("div",{className:"resume-feedback__card-value",children:[d.avgNps.toFixed(1),(0,_.jsx)("span",{className:"resume-feedback__card-unit",children:" / 10"})]})]}),(0,_.jsxs)("div",{className:"resume-feedback__card resume-feedback__card--breakdown",children:[(0,_.jsx)("div",{className:"resume-feedback__card-label",children:"Breakdown"}),(0,_.jsxs)("div",{className:"resume-feedback__breakdown",children:[(0,_.jsxs)("div",{className:"resume-feedback__breakdown-row",children:[(0,_.jsx)("span",{className:"resume-feedback__dot resume-feedback__dot--promoter"}),"Promoters (9-10)",(0,_.jsx)("span",{className:"resume-feedback__breakdown-count",children:d.promoters})]}),(0,_.jsxs)("div",{className:"resume-feedback__breakdown-row",children:[(0,_.jsx)("span",{className:"resume-feedback__dot resume-feedback__dot--passive"}),"Passives (7-8)",(0,_.jsx)("span",{className:"resume-feedback__breakdown-count",children:d.passives})]}),(0,_.jsxs)("div",{className:"resume-feedback__breakdown-row",children:[(0,_.jsx)("span",{className:"resume-feedback__dot resume-feedback__dot--detractor"}),"Detractors (0-6)",(0,_.jsx)("span",{className:"resume-feedback__breakdown-count",children:d.detractors})]})]})]})]}),(0,_.jsxs)("div",{className:"resume-feedback__section",children:[(0,_.jsx)("h3",{className:"resume-feedback__section-title",children:"Score distribution"}),(0,_.jsx)("div",{className:"resume-feedback__distribution",children:d.distribution.map(((e,s)=>(0,_.jsxs)("div",{className:"resume-feedback__dist-col",children:[(0,_.jsx)("div",{className:"resume-feedback__dist-count",children:e}),(0,_.jsx)("div",{className:"resume-feedback__dist-bar-wrap",children:(0,_.jsx)("div",{className:`resume-feedback__dist-bar resume-feedback__dist-bar--${B(s)}`,style:{height:e/m*100+"%"}})}),(0,_.jsx)("div",{className:"resume-feedback__dist-label",children:s})]},s)))})]}),d.suggestions.length?(0,_.jsxs)("div",{className:"resume-feedback__section",children:[(0,_.jsx)("h3",{className:"resume-feedback__section-title",children:"What participants want"}),(0,_.jsx)("div",{className:"resume-feedback__suggestions",children:d.suggestions.map((e=>(0,_.jsxs)("div",{className:"resume-feedback__suggestion-row",children:[(0,_.jsx)("div",{className:"resume-feedback__suggestion-label",children:e.label}),(0,_.jsx)("div",{className:"resume-feedback__suggestion-bar-wrap",children:(0,_.jsx)("div",{className:"resume-feedback__suggestion-bar",style:{width:e.count/h*100+"%"}})}),(0,_.jsxs)("div",{className:"resume-feedback__suggestion-count",children:[e.count," ",(0,_.jsxs)("span",{children:["(",e.pct,"%)"]})]})]},e.id)))})]}):null,u.length?(0,_.jsxs)("div",{className:"resume-feedback__section",children:[(0,_.jsxs)("h3",{className:"resume-feedback__section-title",children:["Recent comments (",u.length,")"]}),(0,_.jsx)("div",{className:"resume-feedback__comments",children:u.map((e=>(0,_.jsxs)("div",{className:"resume-feedback__comment",children:[(0,_.jsxs)("div",{className:"resume-feedback__comment-header",children:[(0,_.jsx)("span",{className:`resume-feedback__comment-score resume-feedback__comment-score--${B(e.nps)}`,children:e.nps}),(0,_.jsx)("span",{className:"resume-feedback__comment-meta",children:e.displayName||e.email||"Anonymous"}),(0,_.jsx)("span",{className:"resume-feedback__comment-date",children:q(e.submittedAt)})]}),(0,_.jsx)("div",{className:"resume-feedback__comment-text",children:e.comment}),(e.suggestions||[]).length?(0,_.jsx)("div",{className:"resume-feedback__comment-chips",children:e.suggestions.map((e=>(0,_.jsx)("span",{className:"resume-feedback__comment-chip",children:W[e]||e},e)))}):null]},e.id)))})]}):null]}):(0,_.jsxs)("div",{className:"resume-feedback__empty",children:[(0,_.jsx)("h3",{children:"No feedback yet"}),(0,_.jsx)("p",{children:"Once participants finish the Resume Builder and download their resume, the
1ir feedback will show up here."})]})})),Y=()=>{const[e,s]=(0,t.useState)(!1),[a,i]=(0,t.useState)(null),[r,n]=(0,t.useState)(null),[l,c]=(0,t.useState)(!1);return(0,_.jsxs)("div",{className:"function-health",children:[(0,_.jsxs)("div",{className:"function-health__header",children:[(0,_.jsxs)("div",{children:[(0,_.jsx)("h2",{className:"function-health__title",children:"Function health"}),(0,_.jsx)("p",{className:"function-health__subtitle",children:"Scans the last 24 hours of Cloud Logging for errors across all Firebase Functions and emails a digest to the ops recipient."})]}),(0,_.jsx)("button",{className:"function-health__run-btn",onClick:async()=>{s(!0),n(null);try{const e=await fetch("https://us-central1-red-platform.cloudfunctions.net/triggerFunctionHealthDigest",{method:"POST"}),s=await e.json();s.success?(i(s),s.emailSent?U.oR.success(`Digest emailed to ${s.recipient}`):U.oR.warn("Digest computed but email failed \u2014 see results below")):(n(s.error||"Function returned an error"),U.oR.error("Health digest failed"))}catch(e){console.error("FunctionHealth: request failed",e),n(e.message||"Request failed"),U.oR.error("Could not reach the function")}s(!1)},disabled:e,children:e?"Running...":"Run digest now"})]}),r&&(0,_.jsxs)("div",{className:"function-health__error",children:[(0,_.jsx)("strong",{children:"Error:"})," ",r]}),(()=>{if(!a)return null;const e=Object.entries(a.perFunction||{}).sort(((e,s)=>s[1]!==e[1]?s[1]-e[1]:e[0].localeCompare(s[0])));return(0,_.jsxs)("div",{className:"function-health__results",children:[(0,_.jsxs)("div",{className:"function-health__summary",children:[(0,_.jsxs)("div",{className:"function-health__summary-item",children:[(0,_.jsx)("div",{className:"function-health__summary-label",children:"Total errors"}),(0,_.jsx)("div",{className:"function-health__summary-value "+(0===a.totalErrors?"function-health__summary-value--ok":a.totalErrors<25?"function-health__summary-value--warn":"function-health__summary-value--bad"),children:a.totalErrors})]}),(0,_.jsxs)("div",{className:"function-health__summary-item",children:[(0,_.jsx)("div",{className:"function-health__summary-label",children:"Erroring / deployed"}),(0,_.jsxs)("div",{className:"function-health__summary-value",children:[a.erroringFns," / ",a.totalDeployed]})]}),(0,_.jsxs)("div",{className:"function-health__summary-item",children:[(0,_.jsx)("div",{className:"function-health__summary-label",children:"Email status"}),(0,_.jsx)("div",{className:"function-health__summary-value "+(a.emailSent?"function-health__summary-value--ok":"function-health__summary-value--bad"),children:a.emailSent?"Sent":"Failed"})]})]}),!a.emailSent&&a.emailError&&(0,_.jsxs)("div",{className:"function-health__email-error",children:[(0,_.jsx)("strong",{children:"Email error:"})," ",a.emailError]}),0===e.length?(0,_.jsx)("div",{className:"function-health__empty",children:"No deployed functions found."}):(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)("label",{className:"function-health__toggle",children:[(0,_.jsx)("input",{type:"checkbox",checked:l,onChange:e=>c(e.target.checked)}),"Show only functions with errors"]}),(0,_.jsx)("div",{className:"function-health__table-container",children:(0,_.jsxs)("table",{className:"function-health__table",children:[(0,_.jsx)("thead",{children:(0,_.jsxs)("tr",{children:[(0,_.jsx)("th",{children:"Function"}),(0,_.jsx)("th",{children:"Errors"}),(0,_.jsx)("th",{children:"Sample message"})]})}),(0,_.jsx)("tbody",{children:e.filter((e=>{let[,s]=e;return!l||s>0})).map(((e,s)=>{let[t,i]=e;return(0,_.jsxs)("tr",{className:s%2===1?"function-health__row--alt":"",children:[(0,_.jsx)("td",{className:"function-health__fn-name",children:t}),(0,_.jsx)("td",{className:"function-health__count "+(0===i?"function-health__count--ok":i>=10?"function-health__count--bad":"function-health__count--warn"),children:i}),(0,_.jsx)("td",{className:"function-health__sample",children:(a.sampleByFunction||{})[t]||"\u2014"})]},t)}))})]})})]})]})})()]})},z="admin__cachedData",J=["email","displayName","username","isMentor","isAdmin","classId","classUID","inactive","createdAt","latestWebLogin","latestPhoneLogin","lastLogin","phone","phoneNumber","lessons","notificationPreferences"],Q=["className","classroomClosed","teachers","teacherId","settings","countyName","scholarships","usedScholarships","programSurvey"],Z=e=>{const s={};for(const a of J)void 0!==e[a]&&(s[a]=e[a]);return s},G=e=>{const s={};for(const a of Q)void 0!==e[a]&&(s[a]=e[a]);return s},K=(0,i.Zz)((0,n.AM)((e=>e&&!!e.roles[l.KC])),r.MN)((e=>{let{firebase:s}=e;const[a,i]=(0,t.useState)("enrollment"),[r,n]=(0,t.useState)(null),[l,o]=(0,t.useState)(null),[d,m]=(0,t.useState)(null),[h,u]=(0,t.useState)(!1),p=(0,t.useCallback)((async function(){if(!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])){const e=(()=>{try{const e=sessionStorage.getItem(z);if(!e)return null;const s=JSON.parse(e);return Date.now()-s.timestamp>18e5?null:s}catch{return null}})();if(e)return n(e.users),o(e.classrooms),void m(e.timestamp)}u(!0);try{const[e,a]=await Promise.all([s.users().once("value"),s.classrooms().once("value")]),t=e.val()||{},i=a.val()||{},r={};for(const[s,n]of Object.entries(t))r[s]=Z(n);const l={};for(const[s,n]of Object.entries(i))l[s]=G(n);const c=((e,s)=>{const a={users:e,classrooms:s,timestamp:Date.now()};try{sessionStorage.setItem(z,JSON.stringify(a))}catch{}return a.timestamp})(r,l);n(r),o(l),m(c)}catch(e){console.error("Error fetching admin data:",e)}u(!1)}),[s]);(0,t.useEffect)((()=>{window.scrollTo(0,0),p()}),[p]);return(0,_.jsxs)("div",{className:"admin-container",children:[(0,_.jsxs)("div",{className:"admin__header",children:[(0,_.jsx)("h1",{children:"Admin"}),(0,_.jsxs)("div",{className:"admin__last-updated",children:[d&&(0,_.jsxs)("span",{className:"admin__last-updated__text",children:["Last updated: ",(e=>{if(!e)return"";return new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})(d)]}),(0,_.jsx)("button",{className:"admin__refresh-btn",onClick:()=>p(!0),disabled:h,children:h?"Refreshing...":"Refresh"})]})]}),(0,_.jsxs)("div",{className:"admin__tabs",children:[(0,_.jsx)("button",{className:"admin__tab "+("enrollment"===a?"admin__tab--active":""),onClick:()=>i("enrollment"),children:"Enrollment Report"}),(0,_.jsx)("button",{className:"admin__tab "+("participants"===a?"admin__tab--active":""),onClick:()=>i("participants"),children:"Users"}),(0,_.jsx)("button",{className:"admin__tab "+("dropout"===a?"admin__tab--active":""),onClick:()=>i("dropout"),children:"Dropout Analysis"}),(0,_.jsx)("button",{className:"admin__tab "+("mentor-tracking"===a?"admin__tab--active":""),onClick:()=>i("mentor-tracking"),children:"Coordinator Tracking"}),(0,_.jsx)("button",{className:"admin__tab "+("resource-matching"===a?"admin__tab--active":""),onClick:()=>i("resource-matching"),children:"Resource Matching"}),(0,_.jsx)("button",{className:"admin__tab "+("reports"===a?"admin__tab--active":""),onClick:()=>i("reports"),children:"Reports"}),(0,_.jsx)("button",{className:"admin__tab "+("resume-feedback"===a?"admin__tab--active":""),onClick:()=>i("resume-feedback"),children:"Resume Feedback"}),(0,_.jsx)("button",{className:"admin__tab "+("function-health"===a?"admin__tab--active":""),onClick:()=>i("function-health"),children:"Function Health"})]}),"enrollment"===a&&(0,_.jsx)(c.A,{cachedUsers:r,cachedClassrooms:l}),"participants"===a&&(0,_.jsx)(j,{cachedUsers:r,cachedClassrooms:l}),"dropout"===a&&(0,_.jsx)(D,{cachedUsers:r,cachedClassrooms:l}),"mentor-tracking"===a&&(0,_.jsx)(I,{cachedUsers:r,cachedClassrooms:l}),"resource-matching"===a&&(0,_.jsx)(V,{cachedClassrooms:l}),"reports"===a&&(0,_.jsx)($,{classrooms:l,users:r,firebase:s}),"resume-feedback"===a&&(0,_.jsx)(H,{}),"function-health"===a&&(0,_.jsx)(Y,{})]})}))},72434:(e,s,a)=>{a.d(s,{A:()=>c});var t=a(89379),i=a(49198);const r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4
16.5-12.7z"}}]},name:"up",theme:"outlined"};var n=a(27090),l=function(e,s){return i.createElement(n.A,(0,t.A)((0,t.A)({},e),{},{ref:s,icon:r}))};const c=i.forwardRef(l)}}]); 2//# sourceMappingURL=437.ac24f9b5.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.