1import{_ as V,aF as D,L as M,h as U,a as w,s as v,E as b,d as k,N as L,n as A}from"./index-D6gxZzcs.js";import{m as R}from"./vendor-vuex-DawOPd79.js";import{C as B}from"./caret-wF3g3oG9.js";import{F as O}from"./FavoritingToggle-DRzM5Xiq.js";import{F as H}from"./FormSearchableSelect-DLVHLEUB.js";import{h as W,w as q}from"./vendor-vue-runtime-dom-ngu7FkgX.js";import{ak as r,I as a,J as t,O as P,H as c,i as u,G as _,aP as G,F as E,ap as C,aN as K,ar as m}from"./vendor-vue-runtime-core-O0r61XkH.js";import{Q as l,q as S}from"./vendor-vue-shared-C_oE6NXO.js";import"./vendor-vue-select-Cn2oH4dd.js";import"./vendor-vue-star-rating-D42Atl4Q.js";import"./vendor-vue-compiler-dom-BjqiHA0M.js";import"./vendor-vue-compiler-core-B_m9pfJg.js";import"./vendor-vue-BfDmC2hc.js";import"./vendor-ionic-vue-Cp6ESLlK.js";import"./vendor-ionic-core-DDVmzL1A.js";import"./vendor-ionicons-CnTsVUQ5.js";import"./vendor-vue-reactivity-_PYbVOMb.js";import"./vendor-gleap-C_nLUrYA.js";import"./vendor-posthog-js-BcP-dMRa.js";import"./vendor-vue-router-BrjMN5S_.js";import"./vendor-axios-D8dNGRK6.js";import"./vendor-err-code-Btjngwyv.js";import"./vendor-promise-retry-CvXhdAiW.js";import"./vendor-retry-Drt1HQ7J.js";import"./vendor-case-DCoxfN6b.js";import"./vendor-dayjs-CMAHqsIS.js";import"./vendor-lodash-es-Dr2nHDXK.js";import"./vendor-exponential-backoff-CTCpx--5.js";import"./vendor-xstate-gZzxgXGH.js";import"./vendor-socket-io-client-DrXE8q1S.js";import"./vendor-engine-io-client-C-_nnA9b.js";import"./vendor-engine-io-parser-DPmA-eyr.js";import"./vendor-socket-io-component-emitter-Dkula2eQ.js";import"./vendor-socket-io-parser-SgV_gTLD.js";import"./vendor-validator-CzLPc2u2.js";import"./vendor-vueuse-core-C1QNX1u6.js";import"./vendor-vueuse-shared-DO1b_29_.js";import"./vendor-vuelidate-validators-H9iLFjxf.js";import"./vendor-vuelidate-core-Bd16nddI.js";import"./vendor-neoconfetti-vue-CCbt6K7L.js";import"./vendor-vue-draggable-resizable-X1h3rUy6.js";import"./vendor-vuetify-DDTyW1fq.js";import"./vendor-vue-devtools-api-Cow_pXkh.js";const Y={name:"session-history-view",components:{CaretIcon:B,FavoritingToggle:O,FormSelect:w,LargeButton:U,Loader:M,FormSearchableSelect:H,BellIcon:D},data(){return{sessions:[],filters:{firstName:"",subjectName:"",studentId:"",volunteerId:"",filteredSessions:[],hasUnreadDMs:!1},page:1,isFetchingSessions:!1,isLastPage:!1,error:"",allSessions:[],sessionLimitPerPage:5}},computed:{...R({mobileMode:"app/mobileMode",isVolunteer:"user/isVolunteer",isStudent:"user/isStudent",sessionPartner:"user/sessionPartner",subjectsByTopics:"subjects/subjectsByTopics",sessionsWithUnreadDMs:"user/sessionsWithUnreadDMs",isShowDMNotificationsEnabled:"featureFlags/isShowDMNotificationsEnabled"}),isFirstPage(){return this.page===1},isFilteredFromSession(){return this.$route.query.studentId&&this.$route.query.volunteerId},title(){return this.isFilteredFromSession?`Session History with ${this.sessionPartner.firstname}`:"Session History"},firstNames(){const i=new Set,e=this.isVolunteer?"studentFirstName":"volunteerFirstName";return this.allSessions.forEach(d=>{i.has(d[e])||i.add(d[e])}),Array.from(i.values())}},async created(){const{query:{page:i,firstName:e,subjectName:d,studentId:h,volunteerId:n}}=this.$route;this.page=parseInt(i??this.page),this.filters.studentId=h??this.filters.studentId,this.filters.volunteerId=n??this.filters.volunteerId,this.filters.firstName=e??this.filters.firstName,this.filters.subjectName=d??this.filters.subjectName,await this.fetchSessionHistory()},methods:{goToNextPage(){this.isLastPage||(v.captureEvent(b.USER_CLICKED_NEXT_SESSION_HISTORY_PAGE),this.page++,this.paginate())},goToPreviousPage(){this.page!==0&&(v.captureEvent(b.USER_CLICKED_PREVIOUS_SESSION_HISTORY_PAGE),this.page--,this.paginate())},clearFilters(){this.filters.firstName="",this.filters.subjectName="",this.filters.studentId="",this.filters.volunteerId="",this.filters.hasUnreadDMs=!1,this.page=1,this.filter()},filter(){this.$router.push({query:{page:this.page,...this.filters}});const{firstName:i,subjectName:e,studentId:d,volunteerId:h}=this.filters,n=this.allSessions.filter(o=>{const y=!i||o[this.isVolunteer?"studentFirstName":"volunteerFirstName"]===i,N=!e||o.subject===e,g=!d||o.studentId===d,f=!h||o.volunteerId===h,F=!this.filters.hasUnreadDMs||this.sessionsWithUnreadDMs.includes(o.id)&&this.isShowDMNotificationsEnabled;return y&&N&&g&&f&&F}
1);this.filters.filteredSessions=n,this.page=1,this.paginate()},paginate(){this.$router.push({query:{page:this.page,...this.filters}});const i=(this.page-1)*this.sessionLimitPerPage,e=this.page*this.sessionLimitPerPage;this.isLastPage=e>=this.filters.filteredSessions.length,this.sessions=this.filters.filteredSessions.slice(i,e)},async fetchSessionHistory(){this.isFetchingSessions=!0;try{const i={[`${this.isVolunteer?"student":"volunteer"}FirstName`]:this.filters.firstName,subjectName:this.filters.subjectName,studentId:this.filters.studentId,volunteerId:this.filters.volunteerId},{data:{pastSessions:e}}=await L.getSessionHistory(i);this.allSessions=e,this.filter()}catch(i){A.noticeError(i.response.data.err),this.error="We were unable to load your history. Please try again later."}finally{this.isFetchingSessions=!1}},getSessionTime(i){return k(i).format("l @ h:mm A")},getSessionTimeForMobile(i){return k(i).format("l h:mm A")},getSessionDuration(i){return Math.ceil(i/6e4)},updateFavoritedVolunteers(i,e){this.sessions=this.sessions.map(d=>({...d,isFavorited:d.volunteerId===i?e:d.isFavorited}))},routeToSessionRecap(i,e){e&&this.isStudent?v.captureEvent(b.STUDENT_CLICKED_NEW_MESSAGE):e&&this.isVolunteer&&v.captureEvent(b.VOLUNTEER_CLICKED_NEW_MESSAGE),this.$router.push(`/sessions/${i}/recap`)}}},J={class:"session-history"},z={class:"header-container"}
1,Q={key:0,class:"filters"},X={key:1,class:"unread-dms-checkbox"},x={key:1,class:"session-container"},Z={class:"spacing--grid spacing--grid-4 session-list__headers"},$={key:0,class:"info"},ee={key:2,class:"info"},se={key:3,class:"session-list"},te={class:"session-list__session session-list__session--grid-4"},ie={class:"session-list__subject-container"},oe=["src","alt"],re={class:"subject-name-container"},ne={class:"subject"},ae={class:"subject-time-tutored"},le={class:"session-list__created-at"},de={class:"session-list__partner-name-container"},ce={class:"session-list__partner-name"},ue={class:"session-list__session-recap"},me={key:0},he={key:1},pe={key:0,class:"border--thin"},_e={class:"page-actions-container"},ge={class:"page-actions"},fe=["disabled"],ve={class:"page-numbers"},be={class:"page-num page-num--active"},Se=["disabled"],ye={key:2},Ne={class:"mobile-container"},Fe={key:0,class:"info"},Ie={key:2,class:"info"},Pe={key:3,class:"mobile-session-list"},ke={class:"mobile-session-list__session"},Ee={class:"mobile-session-list__subject-container"},Ce=["src","alt"],Te={class:"mobile-subject-name-container"},je={class:"mobile-subject"},Ve={class:"mobile-subject-time-tutored"},De={class:"mobile-session-list__createdAt-container"},Me={class:"mobile-session-list__partner-name-container"},Ue={class:"mobile-session-list__partner-name"},we={class:"mobile-session-list__created-at"},Le={key:0,class:"border--thin"},Ae={class:"page-actions-container"},Re={class:"page-actions"},Be=["disabled"],Oe={class:"page-numbers"},He={class:"page-num page-num--active"},We=["disabled"];function qe(i,e,d,h,n,o){const y=m("FormSearchableSelect"),N=m("form-select"),g=m("loader"),f=m("favoriting-toggle"),F=m("bell-icon"),T=m("large-button"),p=m("caret-icon");return r(),a("div",J,[t("div",z,[t("h1",null,[P(l(o.title)+" ",1),o.isFilteredFromSession?(r(),a("a",{key:0,class:"uc-link ml-4",onClick:e[0]||(e[0]=(...s)=>o.clearFilters&&o.clearFilters(...s))},"See all session history")):c("",!0)]),t("p",null,l(i.isVolunteer?"On this page you can review your past sessions on UPchieve":`On this page you can review your past sessions on UPchieve and favorite 2 your preferred Academic Coaches. We'll do our best to pair you with your 3 favorited coaches when they're available.`),1)]),o.isFilteredFromSession?c("",!0):(r(),a("div",Q,[t("form",{onSubmit:e[6]||(e[6]=q((...s)=>o.filter&&o.filter(...s),["prevent"])),class:"filters-form",autocomplete:"off"},[u(y,{modelValue:n.filters.firstName,"onUpdate:modelValue":[e[1]||(e[1]=s=>n.filters.firstName=s),o.filter],name:"firstName",placeholder:`${i.isVolunteer?"Student":"Coach"} First Name`,"is-required":!1,options:o.firstNames,class:"filter-input"},null,8,["modelValue","placeholder","options","onUpdate:modelValue"]),i.subjectsByTopics.length?(r(),_(N,{key:0,modelValue:n.filters.subjectName,"onUpdate:modelValue":[e[2]||(e[2]=s=>n.filters.subjectName=s),o.filter],name:"subject",class:"filter-input",placeholder:"Subject",options:i.subjectsByTopics,multiple:!1,optionTextField:"displayName",groupField:"topicName",group:"subjects",reduce:s=>s.displayName},null,8,["modelValue","options","reduce","onUpdate:modelValue"])):c("",!0),i.isShowDMNotificationsEnabled?(r(),a("div",X,[t("label",null,[G(t("input",{type:"checkbox","onUpdate:modelValue":e[3]||(e[3]=s=>n.filters.hasUnreadDMs=s),onChange:e[4]||(e[4]=(...s)=>o.filter&&o.filter(...s))},null,544),[[W,n.filters.hasUnreadDMs]]),e[11]||(e[11]=P(" Sessions with unread messages ",-1))])])):c("",!0),t("button",{type:"button",class:"clear-filters",onClick:e[5]||(e[5]=(...s)=>o.clearFilters&&o.clearFilters(...s))}," Clear all ")],32)])),i.mobileMode?c("",!0):(r(),a("div",x,[t("section",null,[t("div",Z,[e[12]||(e[12]=t("span",null,"SUBJECT",-1)),e[13]||(e[13]=t("span",null,"DATE",-1)),t("span",null,l(i.isVolunteer?"STUDENT":"COACH"),1),e[14]||(e[14]=t("span",null,"SESSION RECAP",-1))]),n.error?(r(),a("div",$,l(n.error),1)):n.isFetchingSessions?(r(),_(g,{key:1,message:"Retrieving your session history",class:"session-history-loader"})):this.sessions.length?(r(),a("ul",se,[(r(!0),a(E,null,C(n.sessions,(s,I)=>(r(),a("li",{key:s._id},[t("div",te,[t("div",ie,[t("img",{src:s.topicIconLink,alt:`${s.topic} icon`,class:"subject-icon"},null,8,oe),t("div",re,[t("div",ne,l(s.subject),1),t("span",ae,l(o.getSessionDuration(s.timeTutored))+" minutes",1)])]),t("p",le,l(o.getSessionTime(s.createdAt)),1),t("div",de,[i.isStudent?(r(),_(f,{key:0,initialIsFavorite:s.isFavorited,volunteerName:s.volunteerFirstName,volunteerId:s.volunteerId,onChangeFavorited:o.updateFavoritedVolunteers},null,8,["initialIsFavorite","volunteerName","volunteerId","onChangeFavorited"])):c("",!0),t("span",ce,l(i.isVolunteer?s.studentFirstName:s.volunteerFirstName),1)]),t("div",ue,[u(T,{variant:"outlined",onClick:j=>o.routeToSessionRecap(s.id,i.sessionsWithUnreadDMs.includes(s.id
3)&&i.isShowDMNotificationsEnabled)},{default:K(()=>[i.sessionsWithUnreadDMs.includes(s.id)&&i.isShowDMNotificationsEnabled?(r(),a("span",me,[u(F,{class:"bell-icon"}),e[15]||(e[15]=P("New Message",-1))])):(r(),a("span",he,"Session Recap"))]),_:2},1032,["onClick"])])]),I!==5?(r(),a("div",pe)):c("",!0)]))),128))])):(r(),a("div",ee," You haven't had any sessions matching the filters. ")),t("footer",_e,[t("div",ge,[t("button",{type:"button",onClick:e[7]||(e[7]=(...s)=>o.goToPreviousPage&&o.goToPreviousPage(...s)),class:S([{"page-actions__stepper--disabled":o.isFirstPage},"page-actions__stepper"]),disabled:o.isFirstPage},[u(p,{class:"caret caret--previous"}),e[16]||(e[16]=t("span",null,"Previous",-1))],10,fe),t("div",ve,[t("span",be,l(n.page),1)]),t("button",{type:"button",onClick:e[8]||(e[8]=(...s)=>o.goToNextPage&&o.goToNextPage(...s)),class:S([{"page-actions__stepper--disabled":n.isLastPage},"page-actions__stepper"]),disabled:n.isLastPage},[e[17]||(e[17]=t("span",null,"Next",-1)),u(p,{class:"caret caret--next"})],10,Se)])])])])),i.mobileMode?(r(),a("div",ye,[t("div",Ne,[t("section",null,[n.error?(r(),a("div",Fe,l(n.error),1)):n.isFetchingSessions?(r(),_(g,{key:1,message:"Retrieving your session history",class:"session-history-loader"})):this.sessions.length?(r(),a("ul",Pe,[(r(!0),a(E,null,C(n.sessions,(s,I)=>(r(),a("li",{key:s._id},[t("div",ke,[t("div",Ee,[t("img",{src:s.topicIconLink,alt:`${s.topic} icon`,class:"mobile-subject-icon"},null,8,Ce),t("div",Te,[t("div",je,l(s.subject),1),t("span",Ve,l(o.getSessionDuration(s.timeTutored))+" minutes",1)])]),t("div",De,[t("div",Me,[i.isStudent?(r(),_(f,{key:0,initialIsFavorite:s.isFavorited,volunteerName:s.volunteerFirstName,volunteerId:s.volunteerId,onChangeFavorited:o.updateFavoritedVolunteers},null,8,["initialIsFavorite","volunteerName","volunteerId","onChangeFavorited"])):c("",!0),t("span",Ue,l(i.isVolunteer?s.studentFirstName:s.volunteerFirstName),1)]),t("span",we,l(o.getSessionTimeForMobile(s.createdAt)),1)]),u(p,{class:"caret--next",onClick:j=>o.routeToSessionRecap(s.id,i.sessionsWithUnreadDMs.includes(s.id)&&i.isShowDMNotificationsEnabled)},null,8,["onClick"])]),I!==5?(r(),a("div",Le)):c("",!0)]))),128))])):(r(),a("div",Ie," You don't haven't had any sessions matching the filters. ")),t("footer",Ae,[t("div",Re,[t("button",{type:"button",onClick:e[9]||(e[9]=(...s)=>o.goToPreviousPage&&o.goToPreviousPage(...s)),class:S([o.isFirstPage&&"page-actions__stepper--disabled","page-actions__stepper"]),disabled:o.isFirstPage},[u(p,{class:"caret caret--previous"})],10,Be),t("div",Oe,[t("span",He,l(n.page),1)]),t("button",{type:"button",onClick:e[10]||(e[10]=(...s)=>o.goToNextPage&&o.goToNextPage(...s)),class:S([n.isLastPage&&"page-actions__stepper--disabled","page-actions__stepper"]),disabled:n.isLastPage},[u(p,{class:"caret caret--next"})],10,We)])])])])])):c("",!0)])}const Ms=V(Y,[["render",qe],["__scopeId","data-v-7fea934f"]]);export{Ms as default};
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.