import{H as e}from"./p-b06e2bef.js";import{d as t}from"./p-2f569553.js";const{state:a,onChange:s,reset:r}=t({user:{FirstName:"",LastName:"",ProfileText:"",ProfileImage:"",IsVerified:!1,Roles:[],FacilitatorClassList:[]},loaded:!1,updateLoading:!1,enrollmentList:[]}),n={state:a,onChange:s,reset:r};class i{constructor(){}static getInstance(){return i.instance||(i.instance=new i),i.instance}async enrollClass(t){let a=await e.http.post("api/v1/Student/EnrollClass",t);return a&&(n.state.enrollmentList=[...n.state.enrollmentList,a.Data]),a}async leaveClass(t){let a=await e.http.post("api/v1/Student/LeaveClass",t);return a&&(n.state.enrollmentList=n.state.enrollmentList.filter((e=>e.Id!=a.Data))),a}async fetchUserConfiguration(){let t=await e.http.get("api/v1/Student/UserConfiguration");return t&&(n.state.enrollmentList=t.Data.EnrollmentList,n.state.user.FirstName=t.Data.FirstName,n.state.user.LastName=t.Data.LastName,n.state.user.ProfileText=t.Data.ProfileText,n.state.user.ProfileImage=t.Data.ProfileImage,n.state.user.IsVerified=t.Data.IsVerified,n.state.user.Roles=t.Data.Roles,n.state.user.FacilitatorClassList=t.Data.FacilitatorClassList),t}async updateProfile(t){n.state.updateLoading=!0;let a=await e.http.post("api/Account/update-profile",t);return console.log("after fetch",a),a&&(n.state.updateLoading=!1,n.state.user=Object.assign(Object.assign({},n.state.user),{FirstName:a.Data.FirstName,LastName:a.Data.LastName,ProfileText:a.Data.ProfileText,ProfileImage:a.Data.ProfileImage})),a}async submitFeedback(t){return await e.http.post("api/v1/Feedback",t)}}export{i as S,n as u}