{"version":3,"sources":["pages/Home/assets sync /^/.//.*/.svg$","pages/Home/assets/Vector.svg","pages/Home/assets/android.svg","pages/Home/assets/certificate.svg","pages/Home/assets/difficulty-english.svg","pages/Home/assets/down-swirly.svg","pages/Home/assets/graphic.svg","pages/Home/assets/learn-python.svg","pages/Home/assets/linkedin.svg","pages/Home/assets/misc.svg","pages/Home/assets/misce.svg","pages/Home/assets/never-typed.svg","pages/Home/assets/playstore.svg","pages/Home/assets/python.svg","pages/Home/assets/scratch.svg","pages/Home/assets/twitter.svg","pages/Home/assets/typeing.svg","pages/Home/assets/typing.svg","pages/Home/assets/web-development.svg","pages/Home/assets/user-3.png","pages/Home/assets/user-2.png","pages/Home/assets/user-1.png","pages/Login/assets/Google.svg","pages/Login/assets/login illustration.png","components/Class/assets/mergeClass.png","components/Class/assets/time.svg","components/Class/assets/noClass.png","../node_modules/jsdom/lib/jsdom sync","../node_modules/parse5/lib sync","asset/ratingIcon.svg","components/AFEpage/asset/amg.svg","components/AFEpage/asset/fe.svg","components/ReturningUser/assets/classtype.svg","pages/Team/Asset/real_time.svg","pages/OurPartner/assest/undraw_agreement.svg","pages/OurPartner/assest/world_icon.svg","components/BatchClassComponents/Revision/assets/NoRevision.svg","components/BatchClassComponents/ExerciseBatchClass/assets/calender.svg","components/BatchClassComponents/ExerciseBatchClass/assets/Group.svg","components/BatchClassComponents/EnrollInCourse/notEnrolled.svg","components/BatchClassComponents/Revision/assets/calender.svg","components/PathwayExercise/asset sync /^/.//.*/.svg$","components/PathwayExercise/asset/ContentTypeCompleted.svg","components/PathwayExercise/asset/ErrorDog.svg","components/PathwayExercise/asset/ExerciseCompleted.svg","components/PathwayExercise/asset/assessment.svg","components/PathwayExercise/asset/assessmentCompleted.svg","components/PathwayExercise/asset/assessmentRevisit.svg","components/PathwayExercise/asset/assessmentSelected.svg","components/PathwayExercise/asset/classTypeCompleted.svg","components/PathwayExercise/asset/classTypeRevisit.svg","components/PathwayExercise/asset/classTypeSelected.svg","components/PathwayExercise/asset/classtype.svg","components/PathwayExercise/asset/contentTypeRevist.svg","components/PathwayExercise/asset/contentTypeSelected.svg","components/PathwayExercise/asset/contenttype.svg","components/BatchClassComponents/assets/NoBatchesjpg.jpg","components/PathwayCourse/asset/ComputerScreen.svg","components/PathwayCourse/asset/separator.svg","components/SearchBar/assist/NoCourses.svg","components/VolunteerAutomation/assets/Group.svg","components/VolunteerAutomation/assets/completed_task.svg","components/Header/asset/amzbootcamp.svg","components/Header/asset/language.svg","components/Header/asset/misc.svg","components/Header/asset/python.svg","components/Header/asset/random.svg","components/Header/asset/residential.svg","components/Header/asset/scratch.svg","components/Header/asset/web.svg","components/Footer/asset sync /^/.//.*/.svg$","components/Footer/asset/facebook.svg","components/Footer/asset/linkedIn.svg","components/Footer/asset/twitter.svg","constant.js","components/User/redux/action.js","services/storage.js","services/api.js","components/User/redux/api.js","components/User/redux/saga.js","components/Class/redux/action.js","services/auth.js","components/Class/redux/api.js","components/Class/redux/saga.js","components/Course/redux/action.js","components/Course/redux/util.js","components/Course/redux/api.js","components/Course/redux/saga.js","components/PathwayCourse/redux/action.js","components/PathwayCourse/redux/api.js","components/PathwayCourse/redux/saga.js","rootSaga.js","components/App/redux/action.js","components/User/redux/reducer.js","components/Class/redux/reducer.js","components/Course/redux/reducer.js","components/PathwayCourse/redux/reducer.js","rootReducer.js","store.js","components/PathwayCourse/styles.js","theme/constant.js","components/PathwayCourse/C4CApathway/index.js","routing/Routes/OnlyLoggedIn.js","routing/Routes/index.js","components/User/redux/selectors.js","pages/Home/styles.js","pages/Home/PathwayCard.js","components/common/ExternalLink/index.js","components/Header/constant.js","pages/Home/index.js","components/common/Loader/index.js","pages/Login/assets/GoogleIcon.js","pages/Login/styles.js","pages/Login/StudentLogin.jsx","pages/Login/index.js","components/common/form/index.js","components/Class/index.js","components/Class/constant.js","components/Class/styles.js","common/date.js","components/Class/ClassJoinTimerButton/index.js","components/Class/MergeClass.js","components/Class/EditClass.js","components/Class/SuccessModel.js","components/Class/EditdateForm.js","components/Class/ClassForm.js","components/Class/ClassCard/index.js","components/Class/NoClassesFound.js","components/Class/NoVolunteerClass.js","components/Class/ClassCard/BatchCard.js","components/Class/ClassList/index.js","pages/CreateClass/styles.js","components/Class/NewVolunteerCard.js","pages/CreateClass/Drawer.js","pages/CreateClass/index.js","common/context.js","components/common/Avatar/index.js","components/common/Dropdown/index.js","pages/Mentor/utils.js","pages/Mentor/RoomNav/index.js","pages/Mentor/ChatInput/index.js","pages/Mentor/Message/index.js","pages/Mentor/Messages/index.js","components/common/FloatingIcon/index.js","pages/Mentor/index.js","components/CreateChatRoom/index.js","components/MerakiUsers/index.js","components/User/index.js","components/PrivacyPolicy/styles.js","components/PrivacyPolicy/index.js","components/Dashboard/PartnerData/index.js","pages/AddStudent/index.js","components/Dashboard/StudentData/index.js","components/Dashboard/StudentClassData/index.js","pages/Profile/styles.js","components/BatchClassComponents/DropOut.js","components/DropOutBatches/styles.js","components/DropOutBatches/DropOutBatchesProfile.js","pages/Profile/CertificateCard.js","pages/Profile/UnlockOpportunities.js","pages/Profile/index.js","pages/Opportunities/styles.js","pages/Opportunities/index.js","components/AFEpage/styles.js","components/AFEpage/index.js","pages/Navgurukul/index.js","components/common/RedirectComponent/index.js","components/VolunteerDashbord/VolunteerDetails/index.js","components/VolunteerDashbord/IndividualVolunteers/index.js","pages/StatePartnerDashboard/Dashboard/index.js","pages/StatePartnerDashboard/index.js","pages/OurStory/styles.js","pages/OurStory/index.js","components/NewUserDashbord/styles.js","components/ReturningUser/styles.js","components/ReturningUser/LearningTrackTimerButton.js","components/ReturningUser/LearningTrackCard.js","components/ReturningUser/ReturningUserPage.js","components/NewUserDashbord/index.js","pages/Team/styles.js","pages/Team/index.js","pages/OurPartner/Styles.js","pages/OurPartner/index.js","components/PathwayExercise/styles.js","components/PathwayExercise/ExerciseContent/Assessment/AssessmentContent.js","components/PathwayExercise/ExerciseContent/Assessment/index.js","components/BatchClassComponents/styles.js","components/BatchClassComponents/AlertDialog.js","components/BatchClassComponents/Revision/RevisionClassEnroll.js","components/common/FutureOrPast/index.js","components/BatchClassComponents/ExerciseBatchClass/ExerciseBatchClass.js","components/BatchClassComponents/EnrollInCourse/EnrollInCourse.js","components/BatchClassComponents/DoubtClassExerciseComponent.js","components/PathwayExercise/ClassTopic/ClassTopic.js","components/PathwayExercise/ExerciseContent/ExerciseContentLoading.js","components/PathwayExercise/ExerciseContent/Drawers/styles.js","components/PathwayExercise/ExerciseContent/Drawers/Drawer.js","components/PathwayExercise/ExerciseContent/Drawers/MobileDrawer.js","components/PathwayExercise/ExerciseContent/Drawers/ContentListText.js","components/PathwayExercise/ExerciseContent/index.js","components/PathwayExercise/CourseCompletion/CourseCompletionPage.js","components/PathwayExercise/CourseCompletion/LastCoursePage.js","components/PathwayExercise/CourseCompletion/CompletionComponent.js","components/PathwayExercise/index.js","components/BatchClassComponents/NoBatchEnroll.js","components/PathwayCourse/CustomModal.js","components/PathwayCourse/PreQuiz.js","components/PathwayCourse/McDigitalCourse.js","components/BatchClassComponents/CheckMoreBatches.js","components/BatchClassComponents/PathwayCourseBatchEnroll1.js","components/PathwayCourse/PathwayCards/index.js","theme/theme.js","common/url.js","msg/en.js","components/common/Message/index.js","common/language.js","components/PathwayCourse/customSnackbar.js","components/BatchClassComponents/AmazonBootcampBatch.js","components/PathwayCourse/AmazonCodingProgrammer/index.js","components/PathwayCourse/index.js","components/PathwayCourse/ResidentialCourse/index.js","components/PathwayCourse/MiscellaneousCourses/index.js","common/search.js","components/SearchBar/styles.js","components/SearchBar/index.js","components/VolunteerAutomation/styles.js","components/VolunteerAutomation/index.js","components/VolunteerAutomation/SelectTrack.js","components/VolunteerAutomation/Confirmation.js","components/VolunteerAutomation/Availability.js","components/VolunteerAutomation/CodeOfConduct.js","components/VolunteerAutomation/VerifyPhoneNo.js","components/VolunteerAutomation/IntroVideo.js","components/VolunteerAutomation/Stepper.js","components/PathwayCourse/AmazonCodingProgrammer/style.js","components/PathwayCourse/AmazonCodingProgrammer/YouTubePlaylist.js","components/PathwayCourse/AmazonCodingProgrammer/AmazonVideos.js","pages/GsocIdea/styles.js","pages/GsocIdea/GsocIdea.js","pages/ReportGenerate/ReportGenerate.js","components/PathwayCourse/Aidcxpathway/index.js","routing/index.js","components/Header/styles.js","components/Header/AccordionDropDownMenu.js","components/Header/DropdownLink.js","components/Header/DropDown.js","components/Header/HeaderNavlink.js","components/Header/DropDownMenu.js","components/Header/UserMenu/index.js","components/Header/SearchHeader/index.js","components/Header/TextButtonDropDownMenu.js","components/SearchBar/SearchPopup.js","components/Header/StudentHeader/index.js","components/Header/AdminHeader/index.js","components/Header/VolunteerHeader/index.js","components/Header/PartnerHeader/index.js","components/Header/RoleSpecificHeader/index.js","components/Header/ChangeRolesView/index.js","components/Header/AuthenticatedHeaderOption.js","components/Header/index.js","components/Footer/styles.js","components/Footer/index.js","msg/hi.js","msg/index.js","components/App/index.js","serviceWorker.js","common/ScrollTotOP.js","index.js","components/BatchClassComponents/assets/calender.svg","pages/Home/assets/doublequote.svg","pages/Home/assets/leftquote.svg","components/Class/assets/calendar.svg","components/BatchClassComponents/Revision/assets/Group.svg","components/PathwayExercise/asset/specialdeals.svg","components/Header/asset sync /^/.//.*/.svg$","components/Header/asset/logo.svg","common/storage.js","pages/Home/assets/Email.svg","pages/Home/assets/Group.svg","pages/Home/assets/Layer.svg","pages/Home/assets/butterfly.svg","pages/Home/assets/girls.svg","pages/Home/assets/lang.svg","pages/Home/assets/livelessons.svg","pages/Home/assets/main_image.svg","pages/Home/assets/scale.svg","pages/Home/assets/whatsapp.svg","components/Class/assets/ClassCreated.svg","components/Class/assets/facilitator.svg","components/Class/assets/language.svg","common/utils.js","components/AFEpage/asset/Second-img.svg","components/PathwayExercise/asset/code-example.svg","components/BatchClassComponents/assets/degree.svg","components/BatchClassComponents/assets/playButton.svg","components/Header/asset/menu.svg","components/Header/asset/meraki.svg","components/Footer/asset/logo.svg","components/Footer/asset/playStore.svg","pages/OurPartner/assest/dicto.jpg","components/PathwayCourse/asset/certificate-grey.svg","components/PathwayCourse/asset/certificate-color.svg"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","webpackEmptyContext","window","location","hostname","PATHS","HOME_PATH","HOME_PAGE","LOGIN","CLASS","BATCH_CLASSES","COURSE","PATHWAY_COURSE_CONTENT","PATHWAY_COURSE_CONTENT_EDIT","COURSE_CONTENT","EXERCISE","PATHWAY_COURSE","RESIDENTIAL_COURSE","MISCELLANEOUS_COURSE","MENTOR","VIDEOS","SCRATCH","USER","PROFILE","ME","PRIVACY_POLICY","AFE","PARTNERS","PARTNER_DATA","REPORT","STUDENT","OPPORTUNITIES","NAVGURUKUL_INTRODUCE","REDIRECT","VOLUNTEER","TEAM","STATEPARTNER","STATE","VOLUNTEER_OVERVIEW","OUR_PARTNER","OUR_STORY","NEW_USER_DASHBOARD","PYTHON_COURSE","SEARCHED_COURSE","RETURNING_USER_PAGE","VOLUNTEER_AUTOMATION","VOLUNTEER_FORM","CLASS_FORM","TUTOR","GSOC_IDEA","ACB_BATCH","C4CA_PATHWAY","AIDCX_PATHWAY","HideHeader","HideFooter","PATHWAYS_INFO","name","logo","description","sub_description","path","outcomes","month","10","11","12","lang","en","hi","mr","ta","te","TimeLeft","date","datePart","split","reverse","TimePart","timeLeft","Date","diff","toLocaleString","day","year","hour","minute","second","hour12","days","Math","floor","hours","minutes","error","interpolatePath","paramValues","replace","_","param","types","actions","onUserSignin","data","type","onUserUpdate","onUserSigninResolved","onUserSigninRejected","onUserRefreshDataIntent","onUserRefreshDataSuccess","onUserRefreshDataFailure","logout","onUserLogin","userStateMiddleware","store","next","action","result","authState","getState","User","localStorage","setItem","JSON","stringify","removeItem","METHODS","HeaderFactory","token","platform","arguments","length","undefined","headers","Headers","customHeaders","Authorization","sendGoogleUserData","userData","tokens","axios","url","method","idToken","mode","sendUserCredentials","async","user_name","username","password","sendToken","accept","handleUserData","_ref","res","call","status","mappedUserData","isAuthenticated","put","handleUserLoginData","_ref2","refreshUserData","_ref3","handleLogout","pathname","takeLatest","getClasses","getClassesResolved","getClassesRejected","deleteClass","enrolledClass","dropOutClass","httpStatuses","UNAUTHORIZED","FORBIDDEN","OPERATION_FAILED","SUCCESS","authorizeRequest","fn","select","userActions","response","includes","errorResponse","message","getAllClasses","classData","handleGetClasses","classesResponse","getCourses","getCoursesResolved","getCoursesRejected","getCourseContent","getCourseContentResolved","getCourseContentRejected","updateSelectedExercise","_user$data$token","_user$data","courseId","versionCode","user","getItem","handleGetCourses","coursesResponse","mappedCourses","allCourses","course","short_description","course_type","alert","handleGetCourseContent","contentResponse","mappedCourseContent","exercises","get","exerciseList","exercise","childExercises","childExercise","content","value","githubLink","github_link","slug","mapCourseContent","getPathways","getPathwaysResolved","getPathwaysRejected","getPathwaysDropdown","getPathwaysDropdownResolved","getPathwaysDropdownRejected","getPathwaysCourse","getPathwaysCourseResolved","getPathwaysCourseRejected","getUpcomingBatches","getUpcomingBatchesResolved","getUpcomingBatchesRejected","getupcomingEnrolledClasses","getupcomingEnrolledClassesResolved","getupcomingEnrolledClassesRejected","getEnrolledBatches","getEnrolledBatchesResolved","getEnrolledBatchesRejected","authToken","_authToken$authToken","_authToken$authToken$","process","startsWith","then","_response$data","_response$data2","pathways","frontEndPathwayData","parse","backEndPathwayData","feCodeToIndexMap","reduce","codeMap","pathway","index","pathwayData","indexOfPathway","push","catch","err","_authToken$authToken2","_authToken$authToken3","_response$data3","_response$data4","pathwayId","handleGetPathways","pathwaysResponse","handleGetPathwaysDropdown","pathwaysDropdownResponse","handleGetPathwaysCourse","pathwayCourseResponse","handleGetUpcomingBatches","_ref4","upcomingBatchesResponse","handleGetUpcomingEnrolledClasses","_ref5","upcomingEnrolledClassesResponse","handleGetEnrolledBatches","_ref6","enrolledBatchesResponse","Pathways","PathwaysDropdown","all","fork","Class","Course","initialState","loading","allClasses","courseContent","selectedExercise","parentExercise","subExerciseIndex","history","createBrowserHistory","appReducer","combineReducers","state","pathwayCourse","upcomingBatches","upcomingEnrolledClasses","enrolledBatches","PathwaysDropdow","_state$allClasses","_state$allClasses$dat","filter","item","enrolled","router","connectRouter","rootReducer","appTypes","composeEnhanced","compose","initialStore","sagaMiddleware","createSagaMiddleware","createStore","getUserInitialState","applyMiddleware","run","rootSaga","useStyles","makeStyles","theme","cardSubtitle","color","paddingBottom","pathwayContainer","marginTop","marginBottom","mobileVideo","width","deskVideo","heading","box","paddingTop","Box1","courseCard","titleCard","marginLeft","titleCardMob","flex","display","padding","courseName","background","height","borderRadius","classTitle","openCourse","m","ml","pathwayLink","textDecoration","pathwayCard","minWidth","margin","boxShadow","SupplementalCard","courseImage","objectFit","courseTitleNumber","alignItems","link","UpcomingCard","cursor","cardContent","overflow","progressBar","certButtons","justifyContent","greenButton","backgroundColor","disableButton","spanfont","fontWeight","modalBox","flexDirection","gap","modalContainer","border","customModalContainer","boxStyle","paddingRight","alertBox","cardComponent","breakpoints","values","xs","sm","md","lg","xl","UnsafeHTML","props","html","Container","otherProps","sanitizedHTML","DOMPurify","sanitize","React","createElement","assign","dangerouslySetInnerHTML","__html","toast","configure","C4CApathway","_pathway$modules","_pathway$outcomes","useSelector","setPathway","useState","classes","useHistory","isActive","useMediaQuery","useEffect","filterCourses","modules","courses","unlockedCourses","setUnlockedCourses","forEach","lastCourseIndex","courseindex","completed_portion","nextCourse","isCourseUnlocked","firstCourseOfNextItem","maxWidth","sx","mb","Grid","container","Typography","variant","mt","Box","className","textAlign","spacing","align","component","key","Card","elevation","CheckIcon","_item$courses","Link","to","exerciseId","onClick","success","position","POSITION","BOTTOM_RIGHT","autoClose","CardContent","src","alt","LockIcon","fontSize","style","CardActions","LinearProgress","parseInt","OnlyLoggedIn","passedProps","Component","rest","dispatch","useDispatch","Route","render","Redirect","from","PrivateRoute","withRouter","connect","ROLES","msgKey","savedValue","isDefault","properties","partnerId","partnerGroupId","DEFAULT_ROLES","role","savedRolesToKeysMap","roleKeyMap","roleKey","selectRolesData","_User$data","_User$data$user","_User$data2","_User$data2$user","_User$data3","_User$data3$user","_User$data4","_User$data4$user","_User$data5","_User$data5$user","rolesList","savedRole","unassignedDefaultRoles","partner_id","partner_group_id","_ROLES$roleKey","_ROLES$roleKey2","toUpperCase","substring","assignedRole","concat","_ROLES$roleKey3","_ROLES$roleKey4","selectUserId","_User$data6","_User$data6$user","mobileContainer","cardGrid","card","imageCard","engineerPopupCard","marginRight","typingPopupCard","MerakiEntry","ResMerakiEntry","LearningBtn","responsiveBtn","playstoreImg","downloadBtn","PathwayCard","hover","pointerEvents","CardMedia","require","pb","ExternalLink","target","rel","MENU_ITEMS","PUBLIC_MENU_KEYS","Home","_user$data$user","_user$data2","_user$data2$user","_user$data3","_user$data3$user","roles","queryString","search","console","log","queryParams","platformFlag","studentAuth","decodeURIComponent","storedAuthToken","_studentAuth","apiEndpoint","pathwayActions","miscellaneousPathway","some","miscPathway","rolesLandingPages","defalutPage","userRole","Fragment","CssBaseline","Button","heigh","pt","Maxwidth","Maxheight","gutterBottom","ms","p","fontStyle","href","Loader","pageLoader","GoogleSvg","GoogleIcon","merakiLogin","resMerakilogin","googleLogin","responsiveGoogleLogin","Loder","responsiveLoder","StudentLogin","handleSubmit","errors","handleChange","formData","handlePasswordVisibility","whiteSpace","onSubmit","marginBlock","TextField","fullWidth","placeholder","label","onChange","helperText","InputProps","showPassword","endAdornment","InputAdornment","IconButton","edge","VisibilityOff","Visibility","disabled","Login","_data$user","useLocation","setqueryString","setFormData","setErrors","errorCode","isActiveIpad","pythonPathway","find","pythonPathwayId","amazonPathway","amazonPathwayId","setAmazonPathwayId","volunteer","admin","partner","default","_data$user2","_data$user3","_data$user4","referrer","URLSearchParams","Stack","GoogleLogin","clientId","buttonText","onSuccess","googleUser","profile","getBasicProfile","id_token","getAuthResponse","googleData","getId","getName","imageUrl","getImageUrl","email","getEmail","getQueryVariable","renderProps","startIcon","paddingInline","onFailure","cookiePolicy","preventDefault","prevFormData","Form","TITLE","DESCRIPTION","FACILITATOR_EMAIL","FACILITATOR_NAME","START_TIME","CLASS_START_TIME","CLASS_END_TIME","LANG","TYPE","PATHWAY_ID","COURSE_ID","PARTNER_ID","EXERCISE_ID","MAX_ENROLMENT","FREQUENCY","ON_DAYS","OCCURRENCE","UNTIL","SPACE_ID","SCHEDULE","Buttons","buttonGroup2","gridTemplateColumns","gridGap","icons","ModelBox","successModel","FormCloseIcon","NewVolunteerCardContainer","NewVolunteerCardHeader","NewVolunteerCardCloseIcon","cardActions","delete","makeDateFrom","zonedTimeToUtc","toISOString","isBefore","dateToCompare","comesBefore","isBeforeNow","timeLeftFormat","expiredText","precision","cutoffTextArr","cutoffNumArr","targetDate","now","timeRemaining","intervalToDuration","start","end","years","months","seconds","units","abbreviations","indexOfLeadingUnit","findIndex","num","slice","join","millisecondsUntil","dateLeft","dateRight","msDifference","differenceInMilliseconds","formatInUtc","formatStr","formatInTimeZone","timeZone","ftz","format","options","dateToFormat","dateFnsFormat","ClassJoinTimerButton","startTime","joinOnClick","buttonType","onCanJoin","timeLeftFormatOptions","timeRemainingMsg","setTimeRemainingMsg","timer","setInterval","newTimeRemainingMsg","clearInterval","endIcon","ArrowRightAltIcon","MergeClass","itemID","setRefreshKey","setClassRefresh","itemName","merge_date","open","setOpen","Mergeclassid","setMarginId","Mergeclasses","setMergeclasses","handleClose","Pathwayfilter","title","MenuItem","Dialog","onClose","aria-labelledby","aria-describedby","dialogBox","DialogTitle","CloseIcon","DialogContent","DialogContentText","FormControl","InputLabel","Select","labelId","DialogActions","params","classId","EditClass","_item$facilitator","editClass","Newpathways","indicator","mergeDate","enrollShowModal","setEnrollShowModal","unenrollShowModal","setunenrollShowModal","showModal","setShowModal","editShowModal","setEditShowModal","deleteCohort","setDeleteCohort","anchorElUser","setAnchorElUser","classRefresh","flag","deleteHandler","classActions","ACBPathway","_item$PartnerSpecific","PartnerSpecificBatches","pathway_id","start_time","MoreVertIcon","event","stopPropagation","currentTarget","Menu","anchorEl","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","PaperProps","Boolean","facilitator","merge_class","PathwayID","SuccessModel","successModalMsg","classType","top","left","transform","bgcolor","EditdateForm","classFields","classToEdit","setClassFields","changeHandler","submitHandle","buttonDisabled","isEditMode","setIsEditMode","sub_title","inputProps","min","moment","InputLabelProps","shrink","prop","LocalizationProvider","dateAdapter","AdapterDateFns","DesktopTimePicker","time","minTime","setSeconds","renderInput","CircularProgress","ClassForm","_classToEdit$parent_c","_classToEdit$parent_c2","_classToEdit$PartnerS","_classToEdit$PartnerS2","_classToEdit$pathway_","_classToEdit$facilita","_classFields$partner_","_classFields$partner_3","_classFields$on_days2","_data$Pathways","_data$Pathways$pathwa","_data$Pathways$pathwa2","_data$Pathways$pathwa3","_data$Pathways2","_data$Pathways2$pathw","_data$Pathways2$pathw2","_data$Pathways2$pathw3","_classFields$on_days4","_classFields$on_days5","_classFields$lang","_Object$keys","formType","setNewPathways","singleTime","partnerPathwayId","setPartnerPathwayId","setVolunteer","category_id","utc","on_days","parent_class","end_time","setTime","getTime","max_enrolment","frequency","pathway_v2","volunteer_id","facilitator_name","space_id","schedule","setDisplay","matchDay","setMatchDay","partnerData","setPartnerData","exercisesForSelectedCourse","setExercisesForSelectedCourse","tutorPathwayId","setTutorPathwayId","selectedPartners","setSelectedPartners","setLoading","setSuccessModalMsg","showSuccessModal","setShowSuccessModal","setButtonDisabled","showError","setShowError","setHelperText","onInput","setOnInput","onSpace","setOnSpace","selectSpace","setSelectSpace","checked","setChecked","prev","course_id","slug_id","_classFields$partner_2","_classFields$on_days","selectedCourseLabel","selectedExerciseLabel","capEnrollment","MO","TU","WE","TH","FR","SA","SU","formultipleDays","filteredDayValues","element","handleDaySelection","indexOf","dayDeleted","selectedDay","partners","_res$data","volunteers","datass","createClass","payload","setTimeout","weekDday","incrementedDate","onDay","toString","firstDay","i","k","j","newDate","add","_d","Day","commonFields","pick","getHours","getMinutes","classStartTime","classEndTime","valueOf","_startend$endTime","startDate","startend","endDate","setHours","setMinutes","endTime","originalStartString","tStartIndex","modifiedStartDateString","originalEndString","tEndIndex","modifiedEndDateString","toLocaleLowerCase","space","space_name","pathwayName","sortedData","sort","a","b","partnerFormattedData","amazonCodingBootcamp","_partner$label","toLowerCase","Autocomplete","isOptionEqualToValue","option","newVal","freeSolo","pr","RadioGroup","aria-label","FormControlLabel","control","Radio","labelPlacement","filteredExercises","course_content","content_type","FormHelperText","multiple","multiline","rows","FormLabel","FormGroup","row","_classFields$on_days3","Checkbox","timeString","toLocaleTimeString","fullwidth","ClassCard","useParams","batchId","setIndicator","canJoin","setCanJoin","classesData","setClassesData","setClassToEdit","refreshKey","skeletonloading","setSkeletonloading","handleCloseEnroll","Id","getNotify","post","clearTimeout","languageMap","doubt_class","currentTime","Array","Skeleton","_item$volunteer","_item$facilitator2","direction","CheckCircleIcon","meet_link","Modal","NoClassesFound","NoVolunteerClass","BatchCard","showClass","recurring_id","enroled","batch_start","batch_end","notify","handleDropOut","handleCloseUnenroll","ClassList","isShow","setFormType","toggleModalOpen","pathwayID","canSpecifyFacilitator","setSingleTime","totalCount","setTotalCount","recurring_classes_data_set","set_recurring_classes_data_set","filterText","setFilterText","recurring_classes_data","single_classes","recurring_classes","uniqBy","pathwayFilter","size","startAdornment","SearchIcon","onPaste","clipboardData","getData","filtered_recurring_classes","filter_single_class","enroll","confirmationModal","dividerColor","underLine","borderBottom","drawerList","listButton","NewVolunteerCard","setNewVolunteer","DrawerLeft","setPathwayId","setPathwayName","mobileOpen","setMobileOpen","selectedValue","setSelectedValue","isOpen","setIsOpen","listData","List","ListItem","disablePadding","ListItemButton","ListItemIcon","ChevronRightIcon","toggleDropdown","ExpandMoreIcon","Drawer","anchor","ToggleClassFormModal","showConsentModal","setShowConsentModal","openSuccessfullModal","setOpenSuccessfullModal","setShowClasses","calenderConsent","setCalenderConsent","authUrl","setAuthUrl","typeOfClass","setTypeOfClass","CalenderConsent","calledOnce","useRef","user_id","user_email","decodedUri","current","newVolunteer","setData","page","setPage","batches","total_count","pageCount","ceil","newVol","paddingLeft","ReactPaginate","previousLabel","nextLabel","initialPage","marginPagesDisplayed","onPageChange","selected","containerClassName","previousLinkClassName","nextLinkClassName","disabledClassName","activeClassName","ClassesList","DeviceProvider","createContext","LanguageProvider","colors","getColor","max","random","nameColorMap","avatarColor","useMemo","baseUrl","getMemberName","member","displayname","prev_content","lastMessage","onSelect","isSelected","roomId","accessToken","isMessageActionsDropdownOpen","setIsMessageActionsDropdownOpen","subtitle","text","roomActions","leaveRoomUrl","leaveRoom","Avatar","origin_server_ts","Dropdown","onNewMessage","replyMessage","members","activateReplyToMessageState","inputRef","focus","sendMessage","replyMessageSenderName","sender","body","ref","onKeyDown","which","JSDOM","createDOMPurify","getMessageClass","isSelf","messageClass","senderName","onSendMessage","deleteMessage","isMessageActionsMenuOpen","setMessageActionsMenu","handleMouseOver","formattedMessage","msgtype","formatMessage","messageActions","event_id","replyToMessage","onMouseOver","onMouseLeave","LinkifyHtml","defaultProtocol","messages","selfChatId","onScroll","prevScrollPosition","messagesRef","scrollTop","shouldDisplayDayMarker","getAreDatesOnDifferentDays","firstDateTs","secondDateTs","areDatesOnDifferentDay","previousMessageDate","currentMessageDate","previousMessageDay","getDate","getMonth","getFullYear","Message","FloatingIcon","icon","styles","Mentor","client","setClient","isMobile","useContext","chat_id","chat_password","rooms","setRooms","selectedRoomId","setSelectedRoomId","setPrevScrollPosition","roomNamesMap","setRoomNamesMap","setMembers","setAccessToken","setReplyMessage","syncToken","setSyncToken","fromSyncToken","toSyncToken","isInitializingClient","setInitializaingClient","roomMessages","setRoomMessage","messageObj","sendEvent","addMessageFromMessageEvent","messageEvent","existingMessages","room_id","newMessages","sortBy","addRoomName","roomName","existingRoomNames","handleMatrixEvent","getType","membership","room","clientSync","initialRooms","getRooms","clientRooms","on","roomWithoutName","existingRooms","login","access_token","startClient","once","sdk","userId","handleScroll","useDebouncedCallback","scrollHeight","clientHeight","getMessages","getSelectedRoomMembers","roomMembers","chunk","getMembers","redactedEventResponse","eventId","trxnId","reason","baseRedactEventUrl","redactEvent","removeMessageEvent","messageEventId","getMessagesPayload","limit","messagesResponse","filters","baseMessagesUrl","endToken","startToken","fetchMessages","Height","overflowY","RoomNav","Messages","ChatInput","MerakiChatRoom","chatRoom","setChatRoom","topic","roomAliasName","visibility","htmlFor","required","aria-required","createSliderWithTooltip","Slider","Range","MerakiUsers","pageNumber","setPageNumber","setMessage","students","setStudents","slicedStudents","setSlicedStudents","searchTerm","setSearchTerm","sortMethod","setSortMethod","sort_class","setSortClass","filterVal","setFilterVal","filteredData","setFilteredData","debouncedText","useDebounce","getPartnerIdFromUrl","pop","classes_registered","averageRating","avg","count","f","feedback","c1","c2","formatted_created_at","created_at","formatted_start_time","formatted_end_time","localeCompare","sortStudents","byMethod","sortedStudents","zeroClass","startTimeOfA","startTimeOfB","c","range","slicedData","defaultValue","step","tipFormatter","marks","0","1","6","15","20","25","30","40","BsArrowDownUp","getStars","stars","Number","data-column","star","setAllClasses","setValues","sp","room_alias","substr","submitHandler","roomAlias","MerakiCreateRoom","underline","list","PrivacyPolicy","my","CircleIcon","PartnerDashboard","setPartners","slicedPartners","setSlicedPartners","isDisabled","setDisabled","changePage","sortPartners","sortedPartners","users","createMerakiLink","meraki_link","CopyToClipboard","onCopy","web_link","AddStudent","openEditForm","setOpenEditForm","userName","userEmail","setTriggerdGet","studentid","stupassword","openForm","setOpenForm","studentEmail","setStudentEmail","studentName","setStudentName","newUserName","setNewUserName","setPassword","setShowPassword","loginMethod","setLoginMethod","setError","errorData","setErrorData","handleInputChange","clearFormAndErrors","editStudent","erorrCode","addStudent","OutsideAlerter","handleClick","submit","validateForm","newErrors","isValid","children","wrapperRef","handleClickOutside","contains","document","addEventListener","removeEventListener","useOutsideAlerter","StudentData","setUserId","partnerName","setpartnerName","setUserName","setstudentId","setStupassword","selectedStudentId","setSelectedStudentId","handleNavigation","triggerdGet","loginUser","fetchAPI","partner_name","hasOneFrom","isArray","newSlicedStudents","toLocaleDateString","weekday","student","handleClickOpen","removeStudent","reload","pass","passName","passEmail","BackdropProps","StudentClassData","setClasses","slicedClasses","setSlicedClasses","searchValue","sortClasses","sortedClasses","nullFeedback","profileBox","imageContainer","bgImage","Right_tick","verticalAlign","dialog","DropOut","close","unregister_all","setIsEnrolled","cardDrop","cardChip","cardImg","dropbatchDiv","DropOutBatchesProfile","CertificateCard","courseTime","completedPortion","openModal","setOpenModal","certificate","setCertificate","loader","setLoader","formattedDate","completedAll","handleModal","outline","allowtransparency","brackgroundColor","downloadCert","filename","lastIndexOf","xhr","XMLHttpRequest","responseType","onload","URL","createObjectURL","download","appendChild","click","send","saveFile","DownloadIcon","UnlockOpportunities","LockOpenIcon","LockOutlinedIcon","firebaseConfig","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","Profile","_user$data$user$conta","_user$data$user$conta2","_user$data2$user$cont","_user$data2$user$cont2","_data$pathways","_data$pathways$find","_data$pathways2","_data$pathways3","setCompletedPortion","last_login_at","setCourseTime","setUserData","isEditing","setIsEditing","editName","setEditName","msg","setMsg","LoadBatches","setLoadBatches","imgDialogs","setImgDialoags","imgCrop","setImgCrop","storeImg","setStoreImg","new_Profiles","setNew_Profiles","profile_picture","countryCode","setCountryCode","contact","setContact","confirmationResult","setConfirmationResult","startOtp","setStartOtp","otp","setOtp","snackBarOpen","setSnackBarOpen","New_Profile","onSignInSubmit","initializeApp","setupRecaptcha","phoneNumber","appVerifier","recaptchaVerifier","auth","getAuth","signInWithPhoneNumber","RecaptchaVerifier","callback","test","_user$data4","_user$data5","total_completed_portion","complete_at","pl","columnSpacing","onExit","onFileLoad","file","formDatas","FormData","append","fetch","referrerPolicy","credentials","json","onCrop","view","saveImg","MuiPhoneNumber","preferredCountries","defaultCountry","val","maxLength","confirm","isAnonymous","Snackbar","handleSnackBarClose","editProfile","EditIcon","section_Heading","cards","mobileCards","card_button","Opportunities","setPartner","py","px","Curated","of","opportunities","skyrocket","your","career","ArrowForwardIosIcon","Grid_Space","AFE_approaches","Approaches_text","Hadings","Fiber_space","Ng_AFE","Img_size","Large_img_size","IMG","AFEpage","paragraph","gutterbottom","order","ListItemText","NavgurukulIntroduce","getMerakiUrl","setGetMerakiUrl","controls","RedirectComponent","emailId","setEmailId","redirect","VolunteerDashboard","selctedPathway","setSelectedPathway","cacheVolunteer","setCacheVolunteer","slicedVolunteer","setSlicedVolunteer","language","setLangue","week","setWeek","rating","setRating","dropdowns","setDropdowns","duration","handleDropdown","filterPathway","el","cur_date","filterweek","filterLanguage","avg_rating","ratings","sortedVolunteers","last_class_date","sortVolunteers","ratingCount","last_date","new_date","numberOfWeek","VolunteerOverview","volunteerClassData","firstIndex","lastIndex","Set","ratingSum","max_enrollment","Dashboard","stateId","districtPartner","setDistrictPartner","districtPartnerData","setDistrictPartnerData","filterData","setFilterData","setValue","region","setRegion","isRegion","setIsRegion","regionData","setRegionData","regionDistrictPartner","setRegionDistrictPartner","district","setDistrict","partnerGroups","partner_groups_data","includesRegion","partner_group_name","handleSelcet","stateFilterData","selectRegion","regionItem","regionPartner","selecetDistrict","total_no_of_groups","total_no_of_partners","total_no_of_students","tableDistrict","users_count","StateDashboard","states","setStates","setStateId","clusterId","selectedState","ourStorybttn","ourStoryHrline","ourStoryHr","borderStyle","ourStorylogo","ourStorylogo1","ourStorySpace","OurStory","courseNumber","LearningTrackTimerButton","LearningTrackCard","_data$PathwaysDropdow","_data$PathwaysDropdow2","_upcomingBatchesData$","_upcomingBatchesData$2","_upcomingBatchesData$3","_upcomingBatchesData$4","_upcomingBatchesData$5","_upcomingBatchesData$6","completedPortionJason","setCompletedPortionJason","upcomingBatchesData","setUpcomingBatchesData","showUpcomingBatchData","pathwayCourseData","pathway_name","justifyItems","Chip","ReturningUserPage","learningTracks","NewUserDashbord","UserName","setLearningTracks","DashboardContainer","rowSpacing","maxHeight","team_fontNunito","fontFamily","team_alignRight","image","team_hrline","team_conainerLeft","team_conainerRight","team_button_box","team_button_box_mob","team_MobileSelector","team_selector","team_containerTopSpace","team_infoCardContaier","flexWrap","justifContent","transition","team_responsiveContainer","team_infoResponsiveContainer","team_descriptionPopup","zIndex","boxSizing","opacity","team_cardDetails","middle","team_cardImg","team_mobileCardImg","team_cardTitle","team_cardDescription","team_socialIcon","marginInline","team_popupDetails","team_btn1","team_btn","Team","team","setTeam","teamMembers","exTeam","condition","teamMember","supporters","teamData","Association","Photo","Name","Content","Designation","arr","newIndex","shuffleArray","containerColor","typography","btnPartner","OurPartner","paddingY","Image","OrganisationType","State","City","Url","paper","contentImg","contentNumber","youtubeVideo","contentImage","contentImageBox","codeBackground","codeWrap","lineHeight","codeExampleImg","tableHead","borderRight","borderLeft","borderTop","userSelectedCorrect","correctAnswer","inCorrectAnswer","greishOption","bottomRow","bottom","scrollContainer","overflowX","edit","editField","textarea","resize","mainHeader","editingHeader","editingHeaderMobile","optionImg","cursorA","cursorP","headingVarients","AssessmentContent","answer","setAnswer","setSolution","solution","setSubmit","correct","setSubmitDisable","triedAgain","setTriedAgain","submitDisable","submitAssessment","setType","Partially_ans","setWrongAnswer","finalDesicion","Partially_retry","match","isChecked","isRadioChecked","isValuePresent","sitem","option_type","Paper","checkedIcon","CancelIcon","updatedAnswer","correct_options_value","Assessment","exerciseSlugId","courseData","setCourseData","setProgressTrackId","triger","setTriger","setCorrect","setStatus","attempt_count","wrongAnswer","correctSelections","incorrectSelections","isValuesCorrect","value1","value2","_value1$i","calculateSelections","correctOption","isCorrect","correctStr","selected_option","attempt_status","_data$","_data$2","_data$3","_data$4","_dataArr","dataArr","_content$value","_content$value2","assessment_type","incorrect","_content$value3","_content$value4","_content$value5","_content$value6","partially_correct","partially_incorrect","centere","MoreBatchWrap","MoreBatchCard","minHeight","ButtonInfo","borderRedius","FlexedContant","BatchEnroll2Box","BatchEnroll2DateNDegree","ExerciseBatchClassCard","EnrollInCourseBox1","EnrollInCourseBox2","EnrollInCourseCard","EnrollInCourseFormBox","DoubtClassLangChip","DoubtClassInfoSections","NeedHelpBoxContant","ViewClassDetailButtonBox","RevisionClassEnrollBox","ReviseCardDates","UnAvailableRevisionClass","AlertDialog","registerAll","exerciseReload","reloadContent","dialougContentMap","batch","DoubtClass","RevisionClass","enrolledBatchesActions","upcomingClassActions","NoRevisionClassImage","RevisionClassEnroll","revisionData","setRevisionData","revisionId","setRevisionId","DataToEnroll","setDataToEnroll","dropOutOpen","setDropOutOpen","is_enrolled","ExerciseBatchClass","closeDropOut","FutureOrPast","future","past","isInFuture","setIsInFuture","msUntilDate","NotEnrolledSvg","CourseEnroll","_state$Pathways","_state$Pathways$upcom","selectedBatchToEnroll","setSelectedBatchToEnroll","MoreDetails","isEnrolled","toggleDrawer","changeTo","ConfirmationOpen","setConfirmationOpen","openDropOut","setOpenDropOut","TimeLefts","setTimeLefts","SwipeableDrawer","onOpen","ClassDetails","DoubtClassExerciseComponent","ClassTopic","viewBox","fill","xmlns","d","ExerciseContentLoading","DesktopDrawer","drawerWidth","flexShrink","ListItemsTypography","ListItemLink","courseNameTypography","ContentListDiv","ContentListIcon","Item","progressTrackId","setSelected","ref1","setExerciseId","contentType","visitedExercises","setVisitedExercises","completed","setCompleted","itemStyle","_progressTrackId$asse","_progressTrackId$clas","_progressTrackId$exer","assessments","updated","PersistentDrawerLeft","courseTitle","stored","desktop","laptop","scrollIntoView","block","AssignmentOutlinedIcon","obj","ItemStyle","clickOnTitle","MobileDrawer","handleDrawerToggle","drawer","Toolbar","Divider","ModalProps","ContentListText","setOpenDrawer","createVisulizeURL","l","visualizerCode","encodeURIComponent","RenderDoubtClass","RenderContent","playerRef","isPlaying","setIsPlaying","allowedTime","setAllowedTime","onReady","onStateChange","YT","PlayerState","PLAYING","intervalId","getCurrentTime","seekTo","opts","playerVars","disablekb","videoId","YouTube","decoration","allData","items","dataInCol","TableContainer","Table","TableHead","TableRow","idx","header","TableCell","TableBody","rowData","codeContent","ExerciseContent","contentList","setContent","setCourse","setExercise","showJoinClass","setShowJoinClass","cashedData","setCashedData","openMobile","setOpenMobile","assessmentResult","setAssessmentResult","_res$data$course","_res$data$course2","_res$data$course3","_res$data$course4","_res$data2","_res$data2$course","_res$data2$course$cou","_res$data3","_res$data3$course","_res$data3$course$cou","_res$data3$course$cou2","_res$data4","_res$data4$course","_res$data4$course$cou","_res$data5","_res$data5$course","_cashedData$params$ex","_res$data6","newValue","modifiedObject","_state$Pathways2","_state$Pathways2$enro","_state$Pathways2$enro2","_state$Pathways3","_state$Pathways3$enro","ExerciseContentMain","contentItem","upcomingBatchesActions","CourseCompletionPage","_pathwayModule$pathwa","_data","_data$nextPathwayInde2","nextPathwayIndex","setSuccessfulExerciseCompletion","pathwayModule","pathwayModuleIndex","C4CALastPage","_pathwayModule$pathwa2","_data$nextPathwayInde","LastCoursePage","studentAuthToken","CompletionComponent","courseID","pathwayCourses","_state$Pathways$pathw","_state$Pathways$pathw2","setNextPathwayIndex","setPathwayModuleIndex","currentIndex","flatMap","courseComplete","PathwayExercise","setCourseTitle","previousExerciseId","setPreviousExerciseId","courseLength","availableLang","setAvailableLang","successfulExerciseCompletion","showArrow","setShowArrow","right","setLanguage","addCompletedExercise","scrollRestoration","scrollTo","lang_available","_course$previousExerc","_course$previousExerc2","LangDropDown","Lang","disableUnderline","IconComponent","KeyboardArrowDownIcon","AppBar","flexGrow","previousClickHandler","ArrowBackIosIcon","nextClickHandler","_progressTrackId$exer2","onChangeHandlerClick","_progressTrackId$exer3","NoBatchEnroll","CustomModal","isFormModalOpen","setisFormModalOpen","setisFormFilled","teacherDetails","setTeacherDetails","zone","school_id","school_name","teacher_name","teacher_id","class_of_teacher","phone_number","employee_type","MenuProps","ITEM_HEIGHT","classesOfTeacher","teacherClass","setTeacherClass","handleFormModalClose","renderError","field","primary","persist","input","OutlinedInput","renderValue","handleSubmitteacherDetails","containsNumbers","containsOnlyNumbers","validateEmployeeDetails","dataToSend","isNaN","trim","PreQuiz","setCourseContent","selectedAnswers","setSelectedAnswers","slugId","setSlugId","openSnackbar","setOpenSnackbar","snackbarMessage","setSnackbarMessage","snackbarSeverity","setSnackbarSeverity","_response$data$course","handleCloseSnackbar","fullScreen","handleDialogClose","palette","grey","mx","questionText","selectedOptionId","prevState","resultsArray","_item$content$","_item$content$2","_item$content$3","_item$content$4","correctAnswerIds","autoHideDuration","Alert","severity","McDigitalCourse","selectedCourse","setSelectedCourse","setCourseName","quizOpen","setQuizOpen","handleCourseClick","isPreQuizCompleted","isMandatory","CheckMoreBatches","handleUpcomingBatchesClickOpen","handleUpcomingBatchesClickClose","openDialog","setOpenDialog","AlertData","setAlertData","end_batch_time","PathwayCourseBatchEnroll1","upcomingBatchesOpen","setUpcomingBatchesOpen","PathwayCards","userEnrolledClasses","sliceNumber","UpcomingClassCardComponent","classIndex","setClassIndex","ex","createTheme","shadows","light","main","contrastText","dark","lighter","secondary","warning","info","hint","divider","h1","letterSpacing","down","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","body3","button","textTransform","caption","overline","components","MuiCardMedia","defaultProps","disableRipple","styleOverrides","root","MuiPaper","MuiButton","MuiMenuItem","MuiTableRow","useQuery","constantKey","args","MSG","englishText","_MSG$key","part","warn","CustomSnackbar","handleSnackbar","ContentProps","AmazonBootcampBatch","enrollClasses","setEnrollClasses","doubtclasses","setDoubtclasses","enrolledBatcheClasses","DateRangeIcon","AccessTimeIcon","ArrowForwardIcon","AmazonCodingProgrammer","filteredUpcomingBatches","maxEnrolment","registrations","_state$Pathways4","_state$Pathways4$upco","summary","forwardRef","MuiAlert","PathwayCourse","_data$Pathways$data","_pathwayCourse$data2","_enrolledBatches$","_pathwayCourse$data3","_pathwayCourse$data3$","_pathwayCourse$data4","_pathwayCourse$data5","_pathwayCourse$data6","_user$data11","_user$data12","_pathwayCourse$data7","_pathwayCourse$data8","_pathwayCourse$data9","_pathwayCourse$data9$","_pathwayCourse$data10","_pathwayCourse$data11","total","isFormFilled","displayCert","setDisplayCert","pathwayCode","setPathwayCode","certificateCode","setCertificateCode","setIsChecked","authData","handleCloseModal","modalStyle","_state$Pathways2$upco","_state$Pathways3$enro2","_state$Pathways4$enro","_state$Pathways5","_state$Pathways6","upcomingBatchesState","enrolledBatchesState","_user$data6","_user$data7","_user$data8","_user$data9","_user$data10","_pathwayCourse$data","handleToggleCheckbox","video_link","_content$decoration","handleFormModal","certificateColored","certificateIcon","certificateGrey","ResidentialProgramme","resPathway","disableGutters","MiscellaneousCourses","courseActions","pathwayCourseId","flat","otherCourses","useSearchQuery","cb","SearchCourse","_pathway$data","_pathway$data2","setSearch","setFocus","prevSearch","usePrevious","setUpdated","pathwayCourseIds","otherCourseResults","pathwayTrackResults","_pathway$courses","_pathway$courses2","hasSearchResults","countCourse","totalCourse","onPopularsearch","SearchOutlinedIcon","onKeyPress","alignItem","volunteerFlow","volunteerImg","volunteerImg1","volunteerCard","volunteerCard1","volunteerCard2","displayIcon","IconColor","TextContent","VolunteerHrline","TrackCard","selectedTrack","TrackButtonBox","TrackImages","backToAllClasses","classCard","VolunteerAutomation","SelectTrack","setDisable","_item$name","Confirmation","Availability","setAvailability","availability","available_on_days","hours_per_week","available_on_time","CodeOfConduct","CountryList","VerifyPhoneNo","setNextButton","bgColor","setBgColor","verifyOpen","setVerifyOpen","generateOtp","setGenerateOtp","setTimer","isStartTimer","setIsStartTimer","phone","setPhone","phoneData","countTimer","countDownDate","interval","distance","countryData","findFlagByDialCode","_event$target$value","number","dial_code","verifyOtp","IntroVideo","ReactPlayer","playing","onProgress","playedSeconds","HorizontalLinearStepper","uid","allUsersState","getObjectState","currentState","activeStep","setActiveStep","skipped","setSkipped","disable","enrollId","setEnrollId","nextButton","current_time","first_time","second_time","third_time","itemValues","updateAndSaveState","setter","saveObjectState","steps","itemKey","isStepSkipped","has","setActiveStepHandler","changeBy","prevActiveStep","_steps$prevActiveStep","currentStep","Stepper","stepProps","Step","StepLabel","handleBack","bind","contactNumber","handleNext","newSkipped","setActiveStepCompleted","newCompleted","videoContainer","video","YouTubePlaylist","setPlaylistVideos","playlistVideos","slicedVideos","setSlicedVideos","isMounted","foundBatch","video_id","allowFullScreen","AmazonVideos","listItem","headingMargin","GscoIdea","listStyleType","ReportGenerate","csvUpdatedTime","setCSVUpdatedTime","downloadReport","fileName","blob","Blob","downloadUrl","setAttribute","removeChild","allUsersDetailUpdatedOn","at","studentReport1","lastWeekUsersLoginDetailsUpdatedOn","studentReport2","Aidcxpathway","setAllCourses","_response$data$data","_response$data2$data","Routing","exact","ResidentialCourse","Partner","GsocIdea","VolunteerForm","StatePartnerDashboard","CreateClass","PartnerData","mobileBox","RightBox","crossIcon","meraki","merakiLearn","active","buttonLink","scratchLink","donate","AccordionDropDownMenu","textMsgKey","textArgs","Accordion","AccordionSummary","expandIcon","aria-controls","AccordionDetails","DropdownLink","external","linkOnClick","A","toKey","MobileDropDown","_MENU_ITEMS$menuKey","menuKey","menu","LaunchIcon","DropDown","dropDown","HeaderNavLink","externalLink","NavLink","OpenInNewIcon","DropDownMenu","DropDownButton","menuContainerProps","delay","attachRight","onOpenMenu","onCloseMenu","inDropdown","setInDropdown","inProgress","setAnchorEl","offsetX","setOffsetX","offsetY","setOffsetY","useOffset","offset","inDropdownRef","handleOpenMenu","getBoundingClientRect","handleCloseMenu","updateInDropdownState","_inDropdownRef$curren","DropDownButtonWithHandlers","cloneElement","onMouseEnter","isTouchScreen","anchorReference","MenuListProps","hideBackdrop","disableScrollLock","UserMenu","profilePict","SearchHeader","TextButtonDropDownMenu","btnTextMsgKey","btnTextArgs","ExpandLessIcon","SearchPopup","popular","setPopular","recentSearch","setRecentSearch","handleSearchBar","top_popular","user_search","closeAfterTransition","BackdropComponent","Backdrop","CommonLeftStudentHeader","StudentHeader","_MENU_ITEMS$LEARN_KEY","leftDrawer","onlyRole","learn","setLearn","handleCloseLearn","AdminHeader","VolunteerHeader","PartnerHeader","RoleSpecificHeader","isUniqueRole","drawerProps","ChangeRole","isToggle","setRoleView","roleView","roleStr","roleLandingPage","landingPage","idToSelectedRoleMap","ChangeRolesView","_JSON$parse","setRole","defaultRole","lastSelectedRoleKey","hasLastSelectedRole","otherRole","commonProps","menuContents","AuthenticatedHeaderOption","handleSearchChange","rolesWithLandingPages","partnerRole","PublicMenuOption","dropDownMenu","setDropDownMenu","selectedMenu","SetSelectedMenu","showLoginButton","useRouteMatch","menuCloseHandler","scratchUrl","setScratchUrl","origin","LaunchOutlinedIcon","MobileVersion","Header","setposition","setLeftDrawer","setBgcolor","outerWidth","defaultPage","setElevation","scrollY","ThemeProvider","socialMedia","CareerNDoner","About","LearningTracks","GetInvolved","MenuList","menuItem","subMenu","toLink","FooterIcon","facebook","linkedIn","twitter","Footer","imgName","App","useLanguage","hl","showHeader","showFooter","Provider","ScrollToTop","Sentry","dsn","integrations","BrowserTracing","tracesSampleRate","ReactDOM","StrictMode","BrowserRouter","getIsMobile","getElementById","navigator","serviceWorker","ready","registration","unregister","getKeyName","namespace","lsKey","setItemInState","check","userAgent","vendor","opera","queryVars","vars","pair","arr1","arr2","maxTouchPoints","msMaxTouchPoints"],"mappings":"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","file":"static/js/main.0b20b566.chunk.js","sourcesContent":["var map = {\n\t\"./Email.svg\": 655,\n\t\"./Group.svg\": 656,\n\t\"./Layer.svg\": 657,\n\t\"./Vector.svg\": 1043,\n\t\"./android.svg\": 1044,\n\t\"./butterfly.svg\": 658,\n\t\"./certificate.svg\": 1045,\n\t\"./difficulty-english.svg\": 1046,\n\t\"./doublequote.svg\": 376,\n\t\"./down-swirly.svg\": 1047,\n\t\"./girls.svg\": 659,\n\t\"./graphic.svg\": 1048,\n\t\"./lang.svg\": 660,\n\t\"./learn-python.svg\": 1049,\n\t\"./leftquote.svg\": 377,\n\t\"./linkedin.svg\": 1050,\n\t\"./livelessons.svg\": 661,\n\t\"./main_image.svg\": 662,\n\t\"./misc.svg\": 1051,\n\t\"./misce.svg\": 1052,\n\t\"./never-typed.svg\": 1053,\n\t\"./playstore.svg\": 1054,\n\t\"./python.svg\": 1055,\n\t\"./scale.svg\": 663,\n\t\"./scratch.svg\": 1056,\n\t\"./twitter.svg\": 1057,\n\t\"./typeing.svg\": 1058,\n\t\"./typing.svg\": 1059,\n\t\"./web-development.svg\": 1060,\n\t\"./whatsapp.svg\": 664\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1042;","module.exports = __webpack_public_path__ + \"static/media/Vector.c9bece63.svg\";","module.exports = __webpack_public_path__ + \"static/media/android.ea52e902.svg\";","module.exports = __webpack_public_path__ + \"static/media/certificate.265bfa6e.svg\";","module.exports = __webpack_public_path__ + \"static/media/difficulty-english.ff236fd5.svg\";","module.exports = __webpack_public_path__ + \"static/media/down-swirly.aebabc55.svg\";","module.exports = __webpack_public_path__ + \"static/media/graphic.5040f655.svg\";","module.exports = __webpack_public_path__ + \"static/media/learn-python.0185af45.svg\";","module.exports = __webpack_public_path__ + \"static/media/linkedin.5f20b50b.svg\";","module.exports = __webpack_public_path__ + \"static/media/misc.68759971.svg\";","module.exports = __webpack_public_path__ + \"static/media/misce.3694d784.svg\";","module.exports = __webpack_public_path__ + \"static/media/never-typed.660d1e58.svg\";","module.exports = __webpack_public_path__ + \"static/media/playstore.74a3c812.svg\";","module.exports = __webpack_public_path__ + \"static/media/python.7b2be4e5.svg\";","module.exports = __webpack_public_path__ + \"static/media/scratch.630838a3.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter.a0cbc235.svg\";","module.exports = __webpack_public_path__ + \"static/media/typeing.f6cd8593.svg\";","module.exports = __webpack_public_path__ + \"static/media/typing.2fdee830.svg\";","module.exports = __webpack_public_path__ + \"static/media/web-development.55e72a93.svg\";","module.exports = __webpack_public_path__ + \"static/media/user-3.9305cc84.png\";","module.exports = __webpack_public_path__ + \"static/media/user-2.06b8ea68.png\";","module.exports = __webpack_public_path__ + \"static/media/user-1.f409d323.png\";","module.exports = __webpack_public_path__ + \"static/media/Google.3b55f088.svg\";","module.exports = __webpack_public_path__ + \"static/media/login illustration.baac942a.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAldJREFUSIm1lT1oU1EUx3+aflFpfUmENpTaJ6VQG4pZMgh+PIpQ1CEZ2y4NAZFM7erW0S3poODUOAkuiaDg1mxFHaKLuLRNMkkGX55Npa82vQ7vxlyS0N5C+4fLPffdc87/nHPveRcuGL4z6BrAAmACB0DtPAnicuSl83nABX6eIcATsSbnFUVexsvqROhkYMnZAELAD2BAygecksVlDYKSdG74+30rRp9vA+8cTo3+LMimwiPCSUaFk4yKVHhUABs6hu0lsoAEMAE4tG5K4eiY0OdqPfKlul97u/3r4/5R45mybwBPgYdyXepGtiqHAUQkkdmmE5FDhQlkaJUtgXfjgNYZNB3lgTQQA7JyVmHQWfu0DCwm5YLUsVQCS25YwDrgl99vtDmr0dlg3xTddRl9oRm0eosM4FZgJpIbGjdjdJbHxOuDRNveBBDpHb66HJiJ5KQfE7BVYwMo3n3+Sixs7YiFrR0xGVu0ZcpN5BQ5q8irE/Ox3abd3Is3AijSBWZgejY7PvfIDt2+v4tXV5NW52YU3TVlNoG1sXsPipOxRbvfH9xUM7zUjamdWI64jMzBO6s83nUsafg4GWNXetOp8IjAyyKzNHVNjA72ajWaFpamgsJJRkXc9G9OGwObTjIqlqaCQse2R0fpz9/jAmA9uTliVeouANuO+/XcCPIl+12l7lp3QkPAEJU9l0/V+msdW52/KUCpsuf+X5TrhwC7OoZaGQCll9+r1A4b/D5s8L5sA5TPk8B4fN1gNjAIwHBfDx8qNa33QKcPwOv0eNu3PJoP/4XiHw+7rYZmXJlDAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/time.fba15db7.svg\";","module.exports = \"data:image/png;base64,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\"","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 1445;","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 1480;","module.exports = __webpack_public_path__ + \"static/media/ratingIcon.70fbd86e.svg\";","module.exports = __webpack_public_path__ + \"static/media/amg.87ceb8f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/fe.c79b2062.svg\";","module.exports = __webpack_public_path__ + \"static/media/classtype.b8e1b92e.svg\";","module.exports = __webpack_public_path__ + \"static/media/real_time.fd2a4c60.svg\";","module.exports = __webpack_public_path__ + \"static/media/undraw_agreement.f1011876.svg\";","module.exports = __webpack_public_path__ + \"static/media/world_icon.64d0103a.svg\";","module.exports = __webpack_public_path__ + \"static/media/NoRevision.48629772.svg\";","module.exports = __webpack_public_path__ + \"static/media/calender.31c9e099.svg\";","module.exports = __webpack_public_path__ + \"static/media/Group.ad76898f.svg\";","module.exports = __webpack_public_path__ + \"static/media/notEnrolled.fe465642.svg\";","module.exports = __webpack_public_path__ + \"static/media/calender.31c9e099.svg\";","var map = {\n\t\"./ContentTypeCompleted.svg\": 1741,\n\t\"./ErrorDog.svg\": 1742,\n\t\"./ExerciseCompleted.svg\": 1743,\n\t\"./assessment.svg\": 1744,\n\t\"./assessmentCompleted.svg\": 1745,\n\t\"./assessmentRevisit.svg\": 1746,\n\t\"./assessmentSelected.svg\": 1747,\n\t\"./classTypeCompleted.svg\": 1748,\n\t\"./classTypeRevisit.svg\": 1749,\n\t\"./classTypeSelected.svg\": 1750,\n\t\"./classtype.svg\": 1751,\n\t\"./code-example.svg\": 886,\n\t\"./contentTypeRevist.svg\": 1752,\n\t\"./contentTypeSelected.svg\": 1753,\n\t\"./contenttype.svg\": 1754,\n\t\"./specialdeals.svg\": 596\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1740;","module.exports = __webpack_public_path__ + \"static/media/ContentTypeCompleted.e17d7bf4.svg\";","module.exports = __webpack_public_path__ + \"static/media/ErrorDog.91c10f90.svg\";","module.exports = __webpack_public_path__ + \"static/media/ExerciseCompleted.f312c4df.svg\";","module.exports = __webpack_public_path__ + \"static/media/assessment.1168bba0.svg\";","module.exports = __webpack_public_path__ + \"static/media/assessmentCompleted.f312c4df.svg\";","module.exports = __webpack_public_path__ + \"static/media/assessmentRevisit.2c5d7b64.svg\";","module.exports = __webpack_public_path__ + \"static/media/assessmentSelected.48d55276.svg\";","module.exports = __webpack_public_path__ + \"static/media/classTypeCompleted.176628a4.svg\";","module.exports = __webpack_public_path__ + \"static/media/classTypeRevisit.b3c87588.svg\";","module.exports = __webpack_public_path__ + \"static/media/classTypeSelected.8d0f253f.svg\";","module.exports = __webpack_public_path__ + \"static/media/classtype.b8e1b92e.svg\";","module.exports = __webpack_public_path__ + \"static/media/contentTypeRevist.4430b591.svg\";","module.exports = __webpack_public_path__ + \"static/media/contentTypeSelected.57dc9bc4.svg\";","module.exports = __webpack_public_path__ + \"static/media/contenttype.a87fd663.svg\";","module.exports = __webpack_public_path__ + \"static/media/NoBatchesjpg.80ac371c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/ComputerScreen.ed255ec6.svg\";","module.exports = __webpack_public_path__ + \"static/media/separator.adc0e0b9.svg\";","module.exports = __webpack_public_path__ + \"static/media/NoCourses.429e5b1b.svg\";","module.exports = __webpack_public_path__ + \"static/media/Group.426d45f5.svg\";","module.exports = __webpack_public_path__ + \"static/media/completed_task.58d0e1ce.svg\";","module.exports = __webpack_public_path__ + \"static/media/amzbootcamp.a74bfaba.svg\";","module.exports = __webpack_public_path__ + \"static/media/language.79f2c64a.svg\";","module.exports = __webpack_public_path__ + \"static/media/misc.5b7c358b.svg\";","module.exports = __webpack_public_path__ + \"static/media/python.5df8fc8d.svg\";","module.exports = __webpack_public_path__ + \"static/media/random.68759971.svg\";","module.exports = __webpack_public_path__ + \"static/media/residential.f679e79a.svg\";","module.exports = __webpack_public_path__ + \"static/media/scratch.630838a3.svg\";","module.exports = __webpack_public_path__ + \"static/media/web.81bddddd.svg\";","var map = {\n\t\"./facebook.svg\": 1777,\n\t\"./linkedIn.svg\": 1778,\n\t\"./logo.svg\": 895,\n\t\"./playStore.svg\": 896,\n\t\"./twitter.svg\": 1779\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1776;","module.exports = __webpack_public_path__ + \"static/media/facebook.10ef3d73.svg\";","module.exports = __webpack_public_path__ + \"static/media/linkedIn.86fc7f5a.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter.46291b28.svg\";","const production = window.location.hostname;\n\nexport const AUTH_KEY = \"__AUTH__\";\n\nexport const PATHS = {\n HOME_PATH: \"/\",\n HOME_PAGE: \"/home\",\n LOGIN: \"/login\",\n CLASS: \"/batch\",\n BATCH_CLASSES: \"/batch/:batchId\",\n COURSE: \"/course\",\n PATHWAY_COURSE_CONTENT: \"/course-content/:pathwayId/:courseId/:exerciseId\",\n PATHWAY_COURSE_CONTENT_EDIT:\n \"/course-content-edit/:pathwayId/:courseId/:exerciseId\",\n COURSE_CONTENT: \"/course/:courseId\",\n EXERCISE: \"/exercise/:exerciseId\",\n PATHWAY_COURSE: \"/pathway/:pathwayId\",\n RESIDENTIAL_COURSE: \"/residential-course\",\n MISCELLANEOUS_COURSE: \"/open-course\",\n MENTOR: \"/mentor\",\n VIDEOS: \"/classes-video\",\n\n SCRATCH:\n process.env.NODE_ENV === \"development\"\n ? \"https://dev.scratch.merakilearn.org/\"\n : \"https://scratch.merakilearn.org/\",\n // SCRATCH:\n // production === \"merakilearn.org\"\n // ? \"https://scratch.merakilearn.org/\"\n // : \"https://dev.scratch.merakilearn.org/\",\n\n USER: \"/user\",\n PROFILE: \"/profile\",\n ME: \"/me\",\n PRIVACY_POLICY: \"/privacy\",\n AFE: \"/amazon-future-engineer\",\n PARTNERS: \"/partner\",\n PARTNER_DATA: \"/partner/:partnerId\",\n REPORT: \"/report\",\n STUDENT: \"/student/:studentId\",\n OPPORTUNITIES: \"/opportunities\",\n NAVGURUKUL_INTRODUCE: \"/navgurukul/:partnerId\",\n // ADMISSION: \"/admission\",\n REDIRECT: \"/redirect\",\n VOLUNTEER: \"/volunteer\",\n TEAM: \"/team\",\n STATEPARTNER: \"/state-dashboard/:clusterId\",\n STATE: \"/state-dashboard\",\n VOLUNTEER_OVERVIEW: \"/volunteer/:volunteerId\",\n OUR_PARTNER: \"/our-partner\",\n OUR_STORY: \"/our-story\",\n NEW_USER_DASHBOARD: \"/user-dashboard\",\n PYTHON_COURSE: \"/python-course\",\n SEARCHED_COURSE: \"/search-course\",\n RETURNING_USER_PAGE: \"/returning-user\",\n VOLUNTEER_AUTOMATION: \"/volunteer-with-us\",\n VOLUNTEER_FORM: \"/volunteer-form\",\n CLASS_FORM: \"/class-form-model\",\n TUTOR: \"/tutor-dashboard\",\n GSOC_IDEA: \"/gsoc-ideas-2023\",\n ACB_BATCH: \"/amazon-batch-class\",\n C4CA_PATHWAY: \"/c4ca-pathway\",\n AIDCX_PATHWAY: \"/aidcx-pathway\",\n // CREDITS: \"/credits\",\n};\n\nexport const HideHeader = [\n PATHS.PATHWAY_COURSE_CONTENT,\n PATHS.PATHWAY_COURSE_CONTENT_EDIT,\n PATHS.VOLUNTEER_FORM,\n];\nexport const HideFooter = [\n PATHS.LOGIN,\n PATHS.PATHWAY_COURSE_CONTENT,\n PATHS.PATHWAY_COURSE_CONTENT_EDIT,\n PATHS.PROFILE,\n PATHS.MENTOR,\n // PATHS.PRIVACY_POLICY,\n PATHS.NEW_USER_DASHBOARD,\n PATHS.VOLUNTEER_FORM,\n PATHS.C4CA_PATHWAY,\n PATHS.AIDCX_PATHWAY,\n PATHS.PARTNERS,\n PATHS.CLASS,\n PATHS.VOLUNTEER,\n];\n\nexport const LEARN_KEY = \"LEARN\";\nexport const ABOUT_KEY = \"ABOUT\";\nexport const GET_INVOLVED_KEY = \"GET_INVOLVED\";\nexport const GSOC_IDEA_KEY = \"Gsoc IDEA 2023\";\n\nexport const MENU_ITEMS = {\n [ABOUT_KEY]: [\n { titleMsgKey: \"OUR_STORY\", path: PATHS.OUR_STORY, type: \"internal\" },\n { titleMsgKey: \"MERAKI_TEAM\", path: PATHS.TEAM, type: \"internal\" },\n ],\n [GET_INVOLVED_KEY]: [\n // {\n // title: \"Become a Partner\",\n // path: PATHS.OUR_PARTNER,\n // type: \"internal\",\n // },\n\n {\n titleMsgKey: \"VOLUNTEER_WITH_US\",\n path: PATHS.VOLUNTEER_AUTOMATION,\n type: \"internal\",\n },\n\n {\n titleMsgKey: \"DONATE\",\n path: \"https://www.navgurukul.org/donate\",\n type: \"external\",\n },\n {\n titleMsgKey: \"CAREERS\",\n path: \"https://recruiterflow.com/navgurukul/jobs\",\n type: \"external\",\n },\n ],\n};\n\n// No Pathways should get added except for this\nexport const PATHWAYS_INFO = [\n {\n id: null,\n name: \"Miscellaneous Courses\",\n logo: \"misc\",\n description: \"Courses on Android, Game dev projects and more\",\n sub_description: \"Courses on Android, Game dev projects and more\",\n // type: \"internal\",\n path: PATHS.MISCELLANEOUS_COURSE,\n outcomes: [],\n },\n];\n\n/*\nexport const dateTimeFormat = (date) => {\n try {\n const datePart = date?.split(\"T\")[0].split(\"-\").reverse();\n const TimePart = date?.split(\"T\")[1].split(\":\");\n const finalDate = `${datePart[0]} ${month[datePart[1]]}, ${datePart[2]} `;\n const finalTime = `${TimePart[0]} : ${TimePart[1]}`;\n return { finalTime, finalDate };\n } catch {\n return { finalTime: \"\", finalDate: \"\" };\n }\n};\n*/\n\nconst month = {\n \"01\": \"Jan\",\n \"02\": \"Feb\",\n \"03\": \"Mar\",\n \"04\": \"Apr\",\n \"05\": \"May\",\n \"06\": \"Jun\",\n \"07\": \"Jul\",\n \"08\": \"Aug\",\n \"09\": \"Sep\",\n 10: \"Oct\",\n 11: \"Nov\",\n 12: \"Dec\",\n};\n\nexport const lang = {\n en: \"English\",\n hi: \"Hindi\",\n mr: \"Marathi\",\n ta: \"Tamil\",\n te: \"Telugu\",\n};\n\nexport const dateTimeFormat = (date) => {\n try {\n const datePart = date?.split(\"T\")[0].split(\"-\").reverse();\n const TimePart = date?.split(\"T\")[1].split(\":\");\n const finalDate = `${datePart[0]} ${month[datePart[1]]}, ${datePart[2]} `;\n const finalTime = `${TimePart[0]} : ${TimePart[1]}`;\n return { finalTime, finalDate };\n } catch {\n return { finalTime: \"\", finalDate: \"\" };\n }\n};\n\nexport const TimeLeft = (date) => {\n try {\n const datePart = date?.split(\"T\")[0].split(\"-\").reverse();\n const TimePart = date?.split(\"T\")[1].split(\":\");\n // calculate the time left for the event\n const timeLeft = new Date(\n `${datePart[0]} ${month[datePart[1]]}, ${datePart[2]} ${TimePart[0]}:${\n TimePart[1]\n }`\n );\n const now = new Date(\n new Date().toLocaleString(\"en-US\", {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: true,\n })\n );\n // const now = new Date();\n const diff = timeLeft - now;\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));\n const seconds = Math.floor((diff % (1000 * 60)) / 1000);\n\n if (days > 0) {\n return `${days} days ${hours} hrs ${minutes} mins`;\n } else if (hours > 0 && days === 0) {\n return `${hours} hrs ${minutes} mins`;\n } else if (minutes > 10 && days === 0) {\n return `${minutes} mins`;\n } else if (minutes <= 10 && minutes > -60) {\n return \"joinNow\";\n } else {\n return \"expired\";\n }\n } catch (error) {\n return \"expired\";\n }\n};\n\nexport const interpolatePath = (path, paramValues) =>\n path.replace(/:(\\w*)/g, (_, param) => paramValues[param]);\nexport const versionCode = 40;\n","export const types = {\n ON_USER_SIGN_INTENT: \"ON_USER_SIGN_INTENT\",\n ON_USER_SIGN_INTENT_RESOLVED: \"ON_USER_SIGN_INTENT_RESOLVED\",\n ON_USER_SIGN_INTENT_REJECTED: \"ON_USER_SIGN_INTENT_REJECTED\",\n ON_USER_UPDATE: \"ON_USER_UPDATE\",\n ON_USER_REFRESH_DATA_INTENT: \"ON_USER_REFRESH_DATA_INTENT\",\n ON_USER_REFRESH_DATA_SUCCESS: \"ON_USER_REFRESH_DATA_RESOLVED\",\n ON_USER_REFRESH_DATA_FAILURE: \"ON_USER_REFRESH_DATA_FAILURE\",\n\n ON_LOGOUT_INTENT: \"ON_LOGOUT_INTENT\",\n ON_USER_LOGIN_INTENT: \" ON_USER_LOGIN_INTENT\",\n};\n\nexport const actions = {\n onUserSignin(data) {\n return {\n type: types.ON_USER_SIGN_INTENT,\n data,\n };\n },\n onUserUpdate(data) {\n return {\n type: types.ON_USER_UPDATE,\n data,\n };\n },\n onUserSigninResolved(data) {\n return {\n type: types.ON_USER_SIGN_INTENT_RESOLVED,\n data,\n };\n },\n onUserSigninRejected(error) {\n return {\n type: types.ON_USER_SIGN_INTENT_REJECTED,\n error,\n };\n },\n onUserRefreshDataIntent(data) {\n return {\n type: types.ON_USER_REFRESH_DATA_INTENT,\n data,\n };\n },\n onUserRefreshDataSuccess(data) {\n return {\n type: types.ON_USER_REFRESH_DATA_SUCCESS,\n data,\n };\n },\n onUserRefreshDataFailure(error) {\n return {\n type: types.ON_USER_REFRESH_DATA_FAILURE,\n error,\n };\n },\n\n logout() {\n return {\n type: types.ON_LOGOUT_INTENT,\n };\n },\n onUserLogin(data) {\n return {\n type: types.ON_USER_LOGIN_INTENT,\n data,\n };\n },\n};\n","import { AUTH_KEY } from \"../constant.js\";\nimport { types } from \"../components/User/redux/action\";\n\nexport function getUserInitialState() {\n try {\n const state = localStorage.getItem(AUTH_KEY);\n if (state) {\n try {\n let parsedState = JSON.parse(state);\n return {\n User: parsedState,\n };\n } catch (e) {\n return {};\n }\n } else return {};\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n}\n\nexport const userStateMiddleware = (store) => (next) => (action) => {\n try {\n if (\n action.type === types.ON_USER_SIGN_INTENT_RESOLVED ||\n action.type === types.ON_USER_REFRESH_DATA_SUCCESS\n ) {\n let result = next(action);\n const authState = store.getState().User;\n localStorage.setItem(AUTH_KEY, JSON.stringify(authState));\n return result;\n } else if (action.type === types.ON_LOGOUT_INTENT) {\n let result = next(action);\n localStorage.removeItem(AUTH_KEY);\n return result;\n } else return next(action);\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n};\n","/**\n * Common HTTP Methods used\n */\nexport const METHODS = {\n GET: \"GET\",\n POST: \"POST\",\n PUT: \"PUT\",\n DELETE: \"DELETE\",\n HEAD: \"HEAD\",\n};\n\n/**\n * Generate the headers needed for the requests\n * @param {String} token - Token used on Authentication\n */\nexport const HeaderFactory = (token, platform = null) => {\n const headers = new Headers();\n if (!token) {\n return headers;\n }\n const customHeaders = {\n \"Content-Type\": \"application/json\",\n Authorization: token,\n // 'x-api-key': process.env.REACT_APP_TEST_API_KEY\n };\n if (platform) {\n return { ...customHeaders, ...platform };\n }\n return customHeaders;\n};\n\n/**\n * Handle Gracefully an HTTP Error\n * @param {Error} error - Fetch Error\n */\nexport function* ErrorHandler(error) {\n const genericResponse = { message: \"Something Went Wrong, try again later\" };\n if (error && error.json) {\n try {\n const data = yield error.json();\n return data;\n } catch (e) {\n return genericResponse;\n }\n } else return genericResponse;\n}\n","import axios from \"axios\";\nimport { METHODS, HeaderFactory } from \"../../../services/api\";\n\n/**\n * Sends google id-token to meraki back-end to register the user.\n *\n * @param {userData} mapped information for google user after signin with google\n * @param {object} opts\n *\n * @returns {Promise}\n */\nexport const sendGoogleUserData = (userData, tokens) => {\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/users/auth/google`,\n method: METHODS.POST,\n headers: HeaderFactory(tokens),\n data: {\n idToken: userData.idToken,\n mode: \"web\",\n },\n });\n};\n\nexport const sendUserCredentials = async (userData) => {\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/users/auth/merakiStudent`,\n method: METHODS.POST,\n data: {\n user_name: userData.username,\n password: userData.password,\n },\n });\n};\n\n/**\n * Sends id-token to Meraki back-end to get profile data of registered user.\n */\nexport const sendToken = (userData, tokens) => {\n return axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/me`,\n headers: {\n accept: \"application/json\",\n Authorization: userData.token,\n },\n });\n};\n\nexport const updateUser = (userData, tokens) => {\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/users/me`,\n method: METHODS.PUT,\n headers: HeaderFactory(tokens),\n data: userData,\n });\n};\n","import { takeLatest, put, call } from \"redux-saga/effects\";\n\nimport { types, actions } from \"./action\";\nimport { sendGoogleUserData, sendToken, sendUserCredentials } from \"./api\";\nimport { PATHS } from \"../../../constant\";\n\n/**\n * Handles sending google sign in user udata or token to back-end\n * depending on login method\n * @param {object} payload\n */\nfunction* handleUserData({ data }) {\n const res = data.idToken\n ? yield call(sendGoogleUserData, data)\n : yield call(sendToken, data);\n if (res.status === 200) {\n res.data.token = res.data.token || data.token;\n const mappedUserData = { ...res.data, isAuthenticated: true };\n yield put(actions.onUserSigninResolved(mappedUserData));\n } else {\n yield put(actions.onUserSigninRejected(res));\n }\n}\n\nfunction* handleUserLoginData({ data }) {\n try {\n const res = data\n ? yield call(sendUserCredentials, data)\n : yield call(sendToken, data);\n if (!res.data.error) {\n res.data.token = res.data.token || data.token;\n const mappedUserData = { ...res.data, isAuthenticated: true };\n yield put(actions.onUserSigninResolved(mappedUserData));\n } else {\n yield put(actions.onUserSigninRejected(res.data));\n }\n } catch (error) {\n yield put(actions.onUserSigninRejected(error));\n }\n}\n\nfunction* refreshUserData({ data }) {\n const res = yield call(sendToken, data);\n if (res.status === 200) {\n res.data.token = data.token;\n const mappedUserData = { ...res.data, isAuthenticated: true };\n yield put(actions.onUserRefreshDataSuccess(mappedUserData));\n } else {\n yield put(actions.onUserRefreshDataFailure(res));\n }\n}\n\nfunction* handleLogout() {\n yield (window.location.pathname = PATHS.LOGIN);\n}\n\nexport default function* () {\n yield takeLatest(types.ON_USER_LOGIN_INTENT, handleUserLoginData);\n yield takeLatest(types.ON_USER_SIGN_INTENT, handleUserData);\n yield takeLatest(types.ON_USER_REFRESH_DATA_INTENT, refreshUserData);\n yield takeLatest(types.ON_LOGOUT_INTENT, handleLogout);\n}\n","export const types = {\n GET_CLASSES_INTENT: \"GET_CLASSES_INTENT\",\n GET_CLASSES_INTENT_RESOLVED: \"GET_CLASSES_INTENT_RESOLVED\",\n GET_CLASSES_INTENT_REJECTED: \"GET_CLASSES_INTENT_REJECTED\",\n GET_DELETE_CLASSES: \"GET_DELETE_CLASSES\",\n GET_UPDATED_ENROLLED_CLASSES: \"GET_UPDATED_ENROLLED_CLASSES\",\n GET_UPDATED_DROP_OUT_CLASSES: \"GET_UPDATED_DROP_OUT_CLASSES\",\n};\n\nexport const actions = {\n getClasses(data) {\n return {\n type: types.GET_CLASSES_INTENT,\n data,\n };\n },\n getClassesResolved(data) {\n return {\n type: types.GET_CLASSES_INTENT_RESOLVED,\n data,\n };\n },\n getClassesRejected(error) {\n return {\n type: types.GET_CLASSES_INTENT_REJECTED,\n error,\n };\n },\n deleteClass(id) {\n return {\n type: types.GET_DELETE_CLASSES,\n id,\n };\n },\n enrolledClass(id) {\n return {\n type: types.GET_UPDATED_ENROLLED_CLASSES,\n id,\n };\n },\n dropOutClass(id) {\n return {\n type: types.GET_UPDATED_DROP_OUT_CLASSES,\n id,\n };\n },\n};\n","import { call, put, select } from \"redux-saga/effects\";\n// import { NetworkError } from '../services/error'\n\nimport { actions as userActions } from \"../components/User/redux/action\";\n\nexport const httpStatuses = {\n UNAUTHORIZED: [401],\n FORBIDDEN: [403],\n OPERATION_FAILED: [400, 404, 500, 502],\n SUCCESS: [200, 201, 202],\n};\n\nexport const authorizeRequest = function* (fn, data) {\n let token;\n try {\n token = yield select(({ User }) => User.data.token);\n } catch (error) {\n // if we don't have any token data in the redux for the user(i.e no tokens available) we will log out.\n yield put(userActions.logout());\n return;\n }\n try {\n let response = yield call(fn, data, token);\n // TODO: check if token needs to be refreshed by checking some particular code.\n // response = yield refreshToken(fn, data, token)\n if (httpStatuses.SUCCESS.includes(response.status)) {\n return response;\n }\n } catch (error) {\n const errorResponse = error.response;\n if (httpStatuses.OPERATION_FAILED.includes(errorResponse.status)) {\n return errorResponse;\n } else if (httpStatuses.FORBIDDEN.includes(errorResponse.status)) {\n return yield put(userActions.logout());\n }\n return { status: 503, message: \"Something went wrong\" };\n }\n};\n","import axios from \"axios\";\nimport { METHODS, HeaderFactory } from \"../../../services/api\";\n\n/**\n * end-point to get all the classes\n *\n * @param {classData} object no payload\n * @param {object} opts\n *\n * @returns {Promise}\n */\nexport const getAllClasses = (classData, token) => {\n const platform = { platform: \"web\" };\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/classes`,\n method: METHODS.GET,\n headers: HeaderFactory(token, platform),\n });\n};\n","import { takeLatest, put, call } from \"redux-saga/effects\";\nimport { types, actions } from \"./action\";\nimport { authorizeRequest, httpStatuses } from \"../../../services/auth\";\nimport { getAllClasses } from \"./api\";\n\n/**\n * Handles getting all the classes\n * @param {object} payload\n */\nfunction* handleGetClasses({ data }) {\n const classesResponse = yield call(authorizeRequest, getAllClasses, data);\n if (\n classesResponse &&\n httpStatuses.SUCCESS.includes(classesResponse.status)\n ) {\n yield put(actions.getClassesResolved(classesResponse.data));\n } else {\n yield put(actions.getClassesRejected(classesResponse));\n }\n}\nexport default function* () {\n yield takeLatest(types.GET_CLASSES_INTENT, handleGetClasses);\n}\n","export const types = {\n GET_COURSES_INTENT: \"GET_COURSES_INTENT\",\n GET_COURSES_INTENT_RESOLVED: \"GET_COURSES_INTENT_RESOLVED\",\n GET_COURSES_INTENT_REJECTED: \"GET_COURSES_INTENT_REJECTED\",\n\n GET_COURSE_CONTENT_INTENT: \"GET_COURSE_CONTENT_INTENT\",\n GET_COURSE_CONTENT_INTENT_RESOLVED: \"GET_COURSE_CONTENT_INTENT_RESOLVED\",\n GET_COURSE_CONTENT_INTENT_REJECTED: \"GET_COURSE_CONTENT_INTENT_REJECTED\",\n\n UPDATE_SELECTED_EXERCISE: \"UPDATE_SELECTED_EXERCISE\",\n};\n\nexport const actions = {\n getCourses(data) {\n return {\n type: types.GET_COURSES_INTENT,\n data,\n };\n },\n getCoursesResolved(data) {\n return {\n type: types.GET_COURSES_INTENT_RESOLVED,\n data,\n };\n },\n getCoursesRejected(error) {\n return {\n type: types.GET_COURSES_INTENT_REJECTED,\n error,\n };\n },\n\n getCourseContent(data) {\n return {\n type: types.GET_COURSE_CONTENT_INTENT,\n data,\n };\n },\n getCourseContentResolved(data) {\n return {\n type: types.GET_COURSE_CONTENT_INTENT_RESOLVED,\n data,\n };\n },\n getCourseContentRejected(error) {\n return {\n type: types.GET_COURSE_CONTENT_INTENT_REJECTED,\n error,\n };\n },\n\n /**\n *\n * @param {Object} data\n * @param {Object} data.exercise selected exercise which contain we are suppose to render\n * @param {Object} data.parentExercise if child exercise selected, keeping a reference on parent exercise\n * @param {Object} data.index Keeping a reference of selected main exericse index.\n * @param {Object} data.subExerciseIndex if currently child exercise has been clicked, rendered.\n * Keeping the reference of it's index\n */\n updateSelectedExercise(data) {\n return {\n type: types.UPDATE_SELECTED_EXERCISE,\n data,\n };\n },\n};\n","import get from \"lodash/get\";\n\nexport const mapCourses = (courses) => {\n // TODO: handle later when we provide functionality of enrolling courses.\n // const {enrolledCourses = [], allCourses = []} = courses\n // const mappedEnrolledCourses = enrolledCourses.map((course) => {\n // return {\n // id: course.id,\n // name: course.name,\n // logo: course.logo,\n // description: course.short_description,\n // }\n // })\n\n const mappedAllCourses = courses.map((course) => {\n return {\n id: course.id,\n name: course.name,\n logo: course.logo,\n description: course.short_description,\n course_type: course.course_type,\n };\n });\n\n return {\n // enrolledCourses: mappedEnrolledCourses,\n allCourses: mappedAllCourses,\n };\n};\n\n/**\n *\n * @param {Object} contentResponse\n * @param {Object} contentResponse.course.exercises[0] Map exercises in course content\n * typical exercise object from backend.\n * {\n * content: [{type: \"python\", value: {,…}},…]\n * course_id: \"116\"\n * github_link: \"https://github.com/navgurukul/newton/tree/master/if-else/debugging-part1/debugging-question4.md\"\n * id: \"2531\"\n * name: \"Question 4 \"\n * parent_exercise_id: \"2521\"\n * review_type: \"manual\"\n * sequence_num: null\n * slug: \"if-else__debugging-part1/debugging-question4\"\n * solution: null\n * submission_type: null\n * }\n */\nexport const mapCourseContent = (contentResponse) => {\n const { exercises = [] } = get(contentResponse, \"course\", {});\n const exerciseList = exercises.map((exercise) => {\n let childExercises = null;\n if (exercise.childExercises) {\n childExercises = exercise.childExercises.map((childExercise) => {\n if (typeof childExercise.content === \"string\") {\n childExercise.content = [\n { type: \"markdown\", value: exercise.content },\n ];\n }\n return {\n content: childExercise.content,\n githubLink: childExercise.github_link,\n id: childExercise.id,\n name: childExercise.name,\n slug: childExercise.slug,\n };\n });\n }\n if (typeof exercise.content === \"string\") {\n exercise.content = [{ type: \"markdown\", value: exercise.content }];\n }\n return {\n content: exercise.content,\n githubLink: exercise.github_link,\n id: exercise.id,\n name: exercise.name,\n slug: exercise.slug,\n childExercises: childExercises,\n };\n });\n\n return {\n exerciseList,\n };\n};\n","import axios from \"axios\";\nimport { METHODS } from \"../../../services/api\";\nimport { versionCode } from \"../../../constant\";\n\n/**\n * end-point to get all the courses\n *\n * @param {data} object payload, in this endpoint it will undefined or not needed\n * @param {object} opts\n *\n * @returns {Promise}\n */\nexport const getCourses = () => {\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/courses`,\n method: METHODS.GET,\n headers: {\n \"version-code\": versionCode,\n },\n // headers: HeaderFactory(token),\n });\n};\n\n/**\n * end-point to get content of a course\n *\n * @param {data} object payload\n * @param {String} data.courseId.\n * @param {object} opts\n *\n * @returns {Promise}\n */\nexport const getCourseContent = (data) => {\n const { courseId, lang, versionCode, user } = data;\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/courses/${courseId}/content/slug?lang=${lang}`,\n method: METHODS.GET,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization:\n user?.data?.token ?? localStorage.getItem(\"studentAuthToken\"),\n },\n // headers: HeaderFactory(token),\n });\n};\n","import { takeLatest, put, call } from \"redux-saga/effects\";\nimport { types, actions } from \"./action\";\nimport { httpStatuses } from \"../../../services/auth\";\nimport { mapCourses, mapCourseContent } from \"./util.js\";\nimport { getCourses, getCourseContent } from \"./api\";\n\n/**\n * Handles getting all the courses\n * @param {object} payload\n */\nfunction* handleGetCourses({ data }) {\n const coursesResponse = yield call(getCourses, data);\n if (\n coursesResponse &&\n httpStatuses.SUCCESS.includes(coursesResponse.status)\n ) {\n const mappedCourses = mapCourses(coursesResponse.data);\n yield put(actions.getCoursesResolved(mappedCourses));\n } else {\n yield put(actions.getCoursesRejected(coursesResponse));\n alert(\n `Something went wrong with error status: ${coursesResponse.status} ${coursesResponse.data.message}`\n );\n }\n}\n\n/**\n * Handle getting exercises fo a particular course\n * @param {object} payload\n */\nfunction* handleGetCourseContent({ data }) {\n const contentResponse = yield call(getCourseContent, data);\n if (\n contentResponse &&\n httpStatuses.SUCCESS.includes(contentResponse.status)\n ) {\n const mappedCourseContent = mapCourseContent(contentResponse.data);\n yield put(actions.getCourseContentResolved(mappedCourseContent));\n } else {\n yield put(actions.getCourseContentRejected(contentResponse));\n alert(\n `Something went wrong with error status: ${contentResponse.status} ${contentResponse.message}`\n );\n }\n}\n\nexport default function* () {\n yield takeLatest(types.GET_COURSES_INTENT, handleGetCourses);\n yield takeLatest(types.GET_COURSE_CONTENT_INTENT, handleGetCourseContent);\n}\n","export const types = {\n GET_PATHWAY_INTENT: \"GET_PATHWAY_INTENT\",\n GET_PATHWAY_INTENT_RESOLVED: \"GET_PATHWAY_INTENT_RESOLVED\",\n GET_PATHWAY_INTENT_REJECTED: \"GET_PATHWAY_INTENT_REJECTED\",\n\n GET_PATHWAY_DROPDOWN_INTENT: \"GET_PATHWAY_DROPDOWN_INTENT\",\n GET_PATHWAY_DROPDOWN_INTENT_RESOLVED: \"GET_PATHWAY_DROPDOWN_INTENT_RESOLVED\",\n GET_PATHWAY_DROPDOWN_INTENT_REJECTED: \"GET_PATHWAY_DROPDOWN_INTENT_REJECTED\",\n\n GET_PATHWAY_COURSE_INTENT: \"GET_PATHWAY_COURSE_INTENT\",\n GET_PATHWAY_COURSE_INTENT_RESOLVED: \"GET_PATHWAY_COURSE_INTENT_RESOLVED\",\n GET_PATHWAY_COURSE_INTENT_REJECTED: \"GET_PATHWAY_COURSE_INTENT_REJECTED\",\n\n GET_UPCOMING_BATCHES_INTENT: \"GET_UPCOMING_BATCHES_INTENT\",\n GET_UPCOMING_BATCHES_INTENT_RESOLVED: \"GET_UPCOMING_BATCHES_INTENT_RESOLVED\",\n GET_UPCOMING_BATCHES_INTENT_REJECTED: \"GET_UPCOMING_BATCHES_INTENT_REJECTED\",\n\n GET_UPCOMING_ENROLLED_CLASSES_INTENT: \"GET_UPCOMING_ENROLLED_CLASSES_INTENT\",\n GET_UPCOMING_ENROLLED_CLASSES_INTENT_RESOLVED:\n \"GET_UPCOMING_ENROLLED_CLASSES_INTENT_RESOLVED\",\n GET_UPCOMING_ENROLLED_CLASSES_INTENT_REJECTED:\n \"GET_UPCOMING_ENROLLED_CLASSES_INTENT_REJECTED\",\n\n GET_ENROLLED_BATCHES_INTENT: \"GET_ENROLLED_BATCHES_INTENT\",\n GET_ENROLLED_BATCHES_INTENT_RESOLVED: \"GET_ENROLLED_BATCHES_INTENT_RESOLVED\",\n GET_ENROLLED_BATCHES_INTENT_REJECTED: \"GET_ENROLLED_BATCHES_INTENT_REJECTED\",\n};\n\nexport const actions = {\n getPathways(data) {\n return {\n type: types.GET_PATHWAY_INTENT,\n data,\n };\n },\n getPathwaysResolved(data) {\n return {\n type: types.GET_PATHWAY_INTENT_RESOLVED,\n data,\n };\n },\n getPathwaysRejected(error) {\n return {\n type: types.GET_PATHWAY_INTENT_REJECTED,\n error,\n };\n },\n\n // getPathwaysDropdown\n\n getPathwaysDropdown(data) {\n return {\n type: types.GET_PATHWAY_DROPDOWN_INTENT,\n data,\n };\n },\n getPathwaysDropdownResolved(data) {\n return {\n type: types.GET_PATHWAY_DROPDOWN_INTENT_RESOLVED,\n data,\n };\n },\n getPathwaysDropdownRejected(error) {\n return {\n type: types.GET_PATHWAY_DROPDOWN_INTENT_REJECTED,\n error,\n };\n },\n\n //getPathwaysCourse\n\n getPathwaysCourse(data) {\n return {\n type: types.GET_PATHWAY_COURSE_INTENT,\n data,\n };\n },\n getPathwaysCourseResolved(data) {\n return {\n type: types.GET_PATHWAY_COURSE_INTENT_RESOLVED,\n data,\n };\n },\n getPathwaysCourseRejected(error) {\n return {\n type: types.GET_PATHWAY_COURSE_INTENT_REJECTED,\n error,\n };\n },\n\n //getUpcomingBatches\n\n getUpcomingBatches(data) {\n return {\n type: types.GET_UPCOMING_BATCHES_INTENT,\n data,\n };\n },\n getUpcomingBatchesResolved(data) {\n return {\n type: types.GET_UPCOMING_BATCHES_INTENT_RESOLVED,\n data,\n };\n },\n getUpcomingBatchesRejected(error) {\n return {\n type: types.GET_UPCOMING_BATCHES_INTENT_REJECTED,\n error,\n };\n },\n\n //getupcomingEnrolledClasses\n\n getupcomingEnrolledClasses(data) {\n return {\n type: types.GET_UPCOMING_ENROLLED_CLASSES_INTENT,\n data,\n };\n },\n getupcomingEnrolledClassesResolved(data) {\n return {\n type: types.GET_UPCOMING_ENROLLED_CLASSES_INTENT_RESOLVED,\n data,\n };\n },\n getupcomingEnrolledClassesRejected(error) {\n return {\n type: types.GET_UPCOMING_ENROLLED_CLASSES_INTENT_REJECTED,\n error,\n };\n },\n\n //getEnrolledBatches\n\n getEnrolledBatches(data) {\n return {\n type: types.GET_ENROLLED_BATCHES_INTENT,\n data,\n };\n },\n getEnrolledBatchesResolved(data) {\n return {\n type: types.GET_ENROLLED_BATCHES_INTENT_RESOLVED,\n data,\n };\n },\n getEnrolledBatchesRejected(error) {\n return {\n type: types.GET_ENROLLED_BATCHES_INTENT_REJECTED,\n error,\n };\n },\n};\n","import axios from \"axios\";\nimport { METHODS } from \"../../../services/api\";\nimport { versionCode, PATHWAYS_INFO } from \"../../../constant\";\n\nexport const getPathways = (authToken) => {\n const token = authToken ? authToken?.authToken?.data?.token : null;\n const branchDataSource = process.env.REACT_APP_MERAKI_URL.startsWith(\n \"https://dev\"\n )\n ? \"dev\"\n : \"main\";\n //update\n // return axios(\n // \"https://raw.githubusercontent.com/navgurukul/bhanwari-devi/\" +\n // branchDataSource +\n // \"/src/data/pathway_data_v40.json\"\n // ).catch((err) => {\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways?courseType=json`,\n method: METHODS.GET,\n headers: {\n \"version-code\": versionCode,\n Authorization: token,\n },\n // headers: HeaderFactory(token),\n })\n .then((response) => {\n if (!response?.data?.pathways) {\n return response;\n }\n // Augment pathways data from back-end with new data to simulate it all\n // coming from the back-end\n // quick way to copy exported constant since it's being modified\n const frontEndPathwayData = JSON.parse(JSON.stringify(PATHWAYS_INFO));\n const backEndPathwayData = response?.data?.pathways || [];\n const feCodeToIndexMap = frontEndPathwayData.reduce(\n (codeMap, pathway, index) => {\n if (pathway.code) {\n codeMap[pathway.code] = index;\n }\n return codeMap;\n },\n {}\n );\n\n response.data.pathways = backEndPathwayData.reduce(\n (pathwayData, pathway) => {\n const indexOfPathway = feCodeToIndexMap[pathway.code];\n if (indexOfPathway != undefined) {\n pathwayData[indexOfPathway] = {\n ...pathway,\n ...pathwayData[indexOfPathway],\n };\n } else {\n pathwayData.push(pathway);\n }\n return pathwayData;\n },\n frontEndPathwayData\n );\n\n return response;\n })\n .catch((err) => {});\n // });\n};\n\nexport const getPathwaysDropdown = (authToken) => {\n const token = authToken ? authToken?.authToken?.data?.token : null;\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/dropdown`,\n method: METHODS.GET,\n headers: {\n \"version-code\": versionCode,\n Authorization: token,\n },\n })\n .then((response) => {\n if (!response?.data?.pathways) {\n return response;\n }\n // Augment pathways data from back-end with new data to simulate it all\n // coming from the back-end\n // quick way to copy exported constant since it's being modified\n const frontEndPathwayData = JSON.parse(JSON.stringify(PATHWAYS_INFO));\n const backEndPathwayData = response?.data?.pathways || [];\n const feCodeToIndexMap = frontEndPathwayData.reduce(\n (codeMap, pathway, index) => {\n if (pathway.code) {\n codeMap[pathway.code] = index;\n }\n return codeMap;\n },\n {}\n );\n\n response.data.pathways = backEndPathwayData.reduce(\n (pathwayData, pathway) => {\n const indexOfPathway = feCodeToIndexMap[pathway.code];\n if (indexOfPathway != undefined) {\n pathwayData[indexOfPathway] = {\n ...pathway,\n ...pathwayData[indexOfPathway],\n };\n } else {\n pathwayData.push(pathway);\n }\n return pathwayData;\n },\n frontEndPathwayData\n );\n\n return response;\n })\n .catch((err) => {});\n};\n\nexport const getPathwaysCourse = (data) => {\n const { pathwayId, authToken } = data;\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/courses?courseType=json`,\n method: METHODS.GET,\n headers: {\n \"version-code\": versionCode,\n Authorization: authToken,\n },\n // headers: HeaderFactory(token),\n });\n};\n\nexport const getUpcomingBatches = (data) => {\n const { pathwayId, authToken } = data;\n\n // return axios({\n // method: METHODS.GET,\n // url: `${process.env.REACT_APP_MERAKI_URL}/classes/all?startDate=${new Date(\n // new Date().valueOf() - 7 * 24 * 60 * 60 * 1000\n // ).valueOf()}`,\n // headers: {\n // accept: \"application/json\",\n // Authorization: authToken,\n // },\n // })\n\n return axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/upcomingBatches`,\n headers: {\n accept: \"application/json\",\n Authorization: authToken,\n },\n });\n // .then((response) => {\n // if (!Array.isArray(response?.data)) {\n // return response;\n // }\n // // Assume they're sorted by time from nearest in the future from back-end and\n // // that batch classes scheduled to meet at least once per week (and haven't been canceled).\n // // In that case, upcoming batches are batches for which no classes starting from 1 week ago\n // // have met prior to now\n // const classesStartingFromLastWeek = response.data;\n // const classesStartingFromLastWeekRev = classesStartingFromLastWeek\n // .slice()\n // .reverse();\n // const recurringIds = new Set();\n // const upcomingBatchClasses = [];\n\n // classesStartingFromLastWeek.forEach((c) => {\n // // map old to new pathway for Python (fix, very hacky)\n // const cPathwayId =\n // c.pathway_v2 || { 39: 1 }[c.pathway_v1] || c.pathway_v1 || c.pathway_id;\n // if (\n // c.recurring_id &&\n // !recurringIds.has(c.recurring_id) &&\n // cPathwayId == pathwayId\n // ) {\n // recurringIds.add(c.recurring_id);\n // new Date(c.start_time) > new Date() && upcomingBatchClasses.push(c);\n // }\n // });\n\n // upcomingBatchClasses\n // .map((c) =>\n // classesStartingFromLastWeekRev.find(\n // (d) => c.recurring_id === d.recurring_id\n // )\n // )\n // .forEach(\n // (c, index) => (upcomingBatchClasses[index].end_batch_time = c.end_time)\n // );\n\n // response.data = upcomingBatchClasses;\n // return response;\n // });\n};\n\nexport const getupcomingEnrolledClasses = (data) => {\n const { pathwayId, authToken } = data;\n return axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/upcomingEnrolledClasses`,\n headers: {\n accept: \"application/json\",\n Authorization: authToken,\n },\n });\n};\n\nexport const getEnrolledBatches = (data) => {\n const { pathwayId, authToken } = data;\n return axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/enrolledBatches`,\n headers: {\n accept: \"application/json\",\n Authorization: authToken,\n },\n });\n};\n","import { takeLatest, put, call } from \"redux-saga/effects\";\nimport { types, actions } from \"./action\";\nimport { httpStatuses } from \"../../../services/auth\";\nimport {\n getPathways,\n getPathwaysDropdown,\n getPathwaysCourse,\n getUpcomingBatches,\n getupcomingEnrolledClasses,\n getEnrolledBatches,\n} from \"./api\";\n\nfunction* handleGetPathways({ data }) {\n const pathwaysResponse = yield call(getPathways, data);\n if (\n pathwaysResponse &&\n httpStatuses.SUCCESS.includes(pathwaysResponse.status)\n ) {\n yield put(actions.getPathwaysResolved(pathwaysResponse.data));\n } else {\n yield put(actions.getPathwaysRejected(pathwaysResponse));\n }\n}\n\nfunction* handleGetPathwaysDropdown({ data }) {\n const pathwaysDropdownResponse = yield call(getPathwaysDropdown, data);\n if (\n pathwaysDropdownResponse &&\n httpStatuses.SUCCESS.includes(pathwaysDropdownResponse.status)\n ) {\n yield put(\n actions.getPathwaysDropdownResolved(pathwaysDropdownResponse.data)\n );\n } else {\n yield put(actions.getPathwaysDropdownRejected(pathwaysDropdownResponse));\n }\n}\n\nfunction* handleGetPathwaysCourse({ data }) {\n const pathwayCourseResponse = yield call(getPathwaysCourse, data);\n if (\n pathwayCourseResponse &&\n httpStatuses.SUCCESS.includes(pathwayCourseResponse.status)\n ) {\n yield put(actions.getPathwaysCourseResolved(pathwayCourseResponse.data));\n } else {\n yield put(actions.getPathwaysCourseRejected(pathwayCourseResponse));\n }\n}\n\nfunction* handleGetUpcomingBatches({ data }) {\n const upcomingBatchesResponse = yield call(getUpcomingBatches, data);\n if (\n upcomingBatchesResponse &&\n httpStatuses.SUCCESS.includes(upcomingBatchesResponse.status)\n ) {\n yield put(actions.getUpcomingBatchesResolved(upcomingBatchesResponse.data));\n } else {\n yield put(actions.getUpcomingBatchesRejected(upcomingBatchesResponse));\n }\n}\n\nfunction* handleGetUpcomingEnrolledClasses({ data }) {\n const upcomingEnrolledClassesResponse = yield call(\n getupcomingEnrolledClasses,\n data\n );\n if (\n upcomingEnrolledClassesResponse &&\n httpStatuses.SUCCESS.includes(upcomingEnrolledClassesResponse.status)\n ) {\n yield put(\n actions.getupcomingEnrolledClassesResolved(\n upcomingEnrolledClassesResponse.data\n )\n );\n } else {\n yield put(\n actions.getupcomingEnrolledClassesRejected(\n upcomingEnrolledClassesResponse\n )\n );\n }\n}\n\nfunction* handleGetEnrolledBatches({ data }) {\n const enrolledBatchesResponse = yield call(getEnrolledBatches, data);\n if (\n enrolledBatchesResponse &&\n httpStatuses.SUCCESS.includes(enrolledBatchesResponse.status)\n ) {\n yield put(actions.getEnrolledBatchesResolved(enrolledBatchesResponse.data));\n } else {\n yield put(actions.getEnrolledBatchesRejected(enrolledBatchesResponse));\n }\n}\n\nexport function* Pathways() {\n yield takeLatest(types.GET_PATHWAY_INTENT, handleGetPathways);\n // yield takeLatest(\n // types.GET_PATHWAY_DROPDOWN_INTENT,\n // handleGetPathwaysDropdown\n // );\n yield takeLatest(types.GET_PATHWAY_COURSE_INTENT, handleGetPathwaysCourse);\n yield takeLatest(types.GET_UPCOMING_BATCHES_INTENT, handleGetUpcomingBatches);\n yield takeLatest(\n types.GET_UPCOMING_ENROLLED_CLASSES_INTENT,\n handleGetUpcomingEnrolledClasses\n );\n yield takeLatest(types.GET_ENROLLED_BATCHES_INTENT, handleGetEnrolledBatches);\n}\n\nexport function* PathwaysDropdown() {\n yield takeLatest(\n types.GET_PATHWAY_DROPDOWN_INTENT,\n handleGetPathwaysDropdown\n );\n}\n","import { fork, all } from \"redux-saga/effects\";\n\nimport User from \"./components/User/redux/saga\";\nimport Class from \"./components/Class/redux/saga\";\nimport Course from \"./components/Course/redux/saga\";\nimport { Pathways, PathwaysDropdown } from \"./components/PathwayCourse/redux/saga\";\n// import PathwaysDropdow from \"./components/PathwayCourse/redux/saga\";\n// import Notifications from './Notifications'\n\nexport default function* () {\n yield all([\n fork(User),\n fork(Class),\n fork(Course),\n fork(Pathways),\n fork(PathwaysDropdown),\n ]);\n}\n","export const types = {\n RESET_APP: \"RESET_APP\",\n};\n\nexport const actions = {\n clearAppState() {\n return {\n type: types.RESET_APP,\n };\n },\n};\n","import { types } from \"./action\";\n\nconst initialState = {\n loading: false,\n error: false,\n data: null,\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case types.ON_USER_SIGN_INTENT:\n return {\n ...state,\n loading: true,\n error: false,\n data: null,\n };\n case types.ON_USER_SIGN_INTENT_RESOLVED:\n return {\n ...state,\n loading: false,\n error: false,\n data: action.data,\n };\n\n case types.ON_USER_SIGN_INTENT_REJECTED:\n return {\n ...state,\n loading: false,\n error: action.error,\n data: null,\n };\n\n case types.ON_USER_REFRESH_DATA_INTENT:\n return {\n ...state,\n loading: true,\n error: false,\n // data: null,\n };\n case types.ON_USER_REFRESH_DATA_SUCCESS:\n return {\n ...state,\n loading: false,\n error: false,\n data: action.data,\n };\n\n case types.ON_USER_REFRESH_DATA_FAILURE:\n return {\n ...state,\n loading: false,\n error: action.error,\n data: null,\n };\n case types.ON_USER_LOGIN_INTENT:\n return {\n ...state,\n loading: true,\n error: false,\n data: null,\n };\n default:\n return state;\n }\n};\n","import { types } from \"./action\";\nconst initialState = {\n loading: false,\n error: false,\n data: null,\n allClasses: {\n loading: false,\n error: false,\n data: null,\n },\n};\nexport default (state = initialState, action) => {\n switch (action.type) {\n case types.GET_CLASSES_INTENT:\n return {\n ...state,\n allClasses: {\n loading: true,\n error: false,\n data: null,\n },\n };\n case types.GET_CLASSES_INTENT_RESOLVED:\n return {\n ...state,\n allClasses: {\n loading: false,\n error: false,\n data: action.data,\n },\n };\n case types.GET_CLASSES_INTENT_REJECTED:\n return {\n ...state,\n allClasses: {\n loading: false,\n error: action.error,\n data: null,\n },\n };\n case types.GET_DELETE_CLASSES:\n return {\n ...state,\n allClasses: {\n loading: false,\n error: false,\n data: state?.allClasses?.data?.filter((item) => {\n return item.id !== action.id;\n }),\n },\n };\n case types.GET_UPDATED_ENROLLED_CLASSES:\n return {\n ...state,\n allClasses: {\n loading: false,\n error: false,\n data: state.allClasses.data.map((item) => {\n if (item.id === action.id) {\n item.enrolled = true;\n }\n return item;\n }),\n },\n };\n case types.GET_UPDATED_DROP_OUT_CLASSES:\n return {\n ...state,\n allClasses: {\n loading: false,\n error: false,\n data: state.allClasses.data.map((item) => {\n if (item.id === action.id) {\n item.enrolled = false;\n }\n return item;\n }),\n },\n };\n default:\n return state;\n }\n};\n","import { types } from \"./action\";\n\nconst initialState = {\n loading: false,\n error: false,\n data: null,\n courseContent: {\n loading: false,\n error: false,\n data: null,\n },\n selectedExercise: {\n exercise: null,\n parentExercise: null, // reference to parent exercise in the list\n index: null, // reference to main exercise in the course exercise list\n subExerciseIndex: null, // reference to child exercise of an exercise\n },\n};\n\nexport default (state = initialState, action) => {\n switch (action.type) {\n case types.GET_COURSES_INTENT:\n return {\n ...state,\n loading: true,\n error: false,\n data: null,\n };\n case types.GET_COURSES_INTENT_RESOLVED:\n return {\n ...state,\n loading: false,\n error: false,\n data: action.data,\n };\n\n case types.GET_COURSES_INTENT_REJECTED:\n return {\n ...state,\n loading: false,\n error: action.error,\n data: null,\n };\n\n case types.GET_COURSE_CONTENT_INTENT:\n return {\n ...state,\n courseContent: {\n loading: true,\n error: false,\n data: null,\n },\n };\n\n case types.GET_COURSE_CONTENT_INTENT_RESOLVED:\n return {\n ...state,\n courseContent: {\n loading: false,\n error: false,\n data: action.data,\n },\n };\n\n case types.GET_COURSE_CONTENT_INTENT_REJECTED:\n return {\n ...state,\n courseContent: {\n loading: false,\n error: action.error,\n data: null,\n },\n };\n\n case types.UPDATE_SELECTED_EXERCISE:\n return {\n ...state,\n selectedExercise: action.data,\n };\n\n default:\n return state;\n }\n};\n","import { types } from \"./action\";\n\nconst initialState = {\n loading: false,\n error: false,\n data: null,\n};\n\nexport const Pathways = (state = initialState, action) => {\n switch (action.type) {\n case types.GET_PATHWAY_INTENT:\n return {\n ...state,\n loading: true,\n error: false,\n data: null,\n };\n case types.GET_PATHWAY_INTENT_RESOLVED:\n return {\n ...state,\n loading: false,\n error: false,\n data: action.data,\n };\n case types.GET_PATHWAY_INTENT_REJECTED:\n return {\n ...state,\n loading: false,\n error: action.error,\n data: null,\n };\n\n //PATHWAY_COURSE\n\n case types.GET_PATHWAY_COURSE_INTENT:\n return {\n ...state,\n pathwayCourse: {\n loading: true,\n error: false,\n data: null,\n },\n };\n case types.GET_PATHWAY_COURSE_INTENT_RESOLVED:\n return {\n ...state,\n pathwayCourse: {\n loading: false,\n error: false,\n data: action.data,\n },\n };\n case types.GET_PATHWAY_COURSE_INTENT_REJECTED:\n return {\n ...state,\n pathwayCourse: {\n loading: false,\n error: action.error,\n data: null,\n },\n };\n\n //UPCOMING_BATCHES\n\n case types.GET_UPCOMING_BATCHES_INTENT:\n return {\n ...state,\n upcomingBatches: {\n loading: true,\n error: false,\n data: [],\n },\n };\n case types.GET_UPCOMING_BATCHES_INTENT_RESOLVED:\n return {\n ...state,\n upcomingBatches: {\n loading: false,\n error: false,\n data: action.data,\n },\n };\n case types.GET_UPCOMING_BATCHES_INTENT_REJECTED:\n return {\n ...state,\n upcomingBatches: {\n loading: false,\n error: action.error,\n data: null,\n },\n };\n\n //UPCOMING_ENROLLED_CLASSES\n\n case types.GET_UPCOMING_ENROLLED_CLASSES_INTENT:\n return {\n ...state,\n upcomingEnrolledClasses: {\n loading: true,\n error: false,\n data: null,\n },\n };\n case types.GET_UPCOMING_ENROLLED_CLASSES_INTENT_RESOLVED:\n return {\n ...state,\n upcomingEnrolledClasses: {\n loading: false,\n error: false,\n data: action.data,\n },\n };\n case types.GET_UPCOMING_ENROLLED_CLASSES_INTENT_REJECTED:\n return {\n ...state,\n upcomingEnrolledClasses: {\n loading: false,\n error: action.error,\n data: null,\n },\n };\n\n //ENROLLED_BATCHES\n\n case types.GET_ENROLLED_BATCHES_INTENT:\n return {\n ...state,\n enrolledBatches: {\n loading: true,\n error: false,\n data: null,\n },\n };\n case types.GET_ENROLLED_BATCHES_INTENT_RESOLVED:\n return {\n ...state,\n enrolledBatches: {\n loading: false,\n error: false,\n data: action.data,\n },\n };\n case types.GET_ENROLLED_BATCHES_INTENT_REJECTED:\n return {\n ...state,\n enrolledBatches: {\n loading: false,\n error: action.error,\n data: null,\n },\n };\n\n default:\n return state;\n }\n};\n\nexport const PathwaysDropdown = (state = initialState, action) => {\n switch (action.type) {\n // getPathwaysDropdown\n case types.GET_PATHWAY_DROPDOWN_INTENT:\n return {\n ...state,\n loading: true,\n error: false,\n data: null,\n };\n case types.GET_PATHWAY_DROPDOWN_INTENT_RESOLVED:\n return {\n ...state,\n loading: false,\n error: false,\n data: action.data,\n };\n case types.GET_PATHWAY_DROPDOWN_INTENT_REJECTED:\n return {\n ...state,\n loading: false,\n error: action.error,\n data: null,\n };\n default:\n return state;\n }\n}\n","import { combineReducers } from \"redux\";\nimport { connectRouter } from \"connected-react-router\";\nimport { createBrowserHistory } from \"history\";\nimport { types as appTypes } from \"./components/App/redux/action\";\nimport User from \"./components/User/redux/reducer\";\nimport Class from \"./components/Class/redux/reducer\";\nimport Course from \"./components/Course/redux/reducer\";\nimport { Pathways, PathwaysDropdown as PathwaysDropdow } from \"./components/PathwayCourse/redux/reducer\";\n\n// import Notifications from './Notifications'\n\nexport const history = createBrowserHistory();\n\nconst appReducer = combineReducers({\n User,\n Pathways,\n PathwaysDropdow,\n // Notifications,\n Class,\n Course,\n router: connectRouter(history),\n});\n\nconst rootReducer = (state, action) => {\n // if we want to clean the redux state, i.e logging out the user\n if (action.type === appTypes.RESET_APP) {\n state = undefined;\n }\n return appReducer(state, action);\n};\n\nexport default rootReducer;\n","import { createStore, applyMiddleware, compose } from \"redux\";\nimport createSagaMiddleware from \"redux-saga\";\n// import { routerMiddleware } from 'connected-react-router'\nimport { getUserInitialState, userStateMiddleware } from \"./services/storage\";\n\nimport rootSaga from \"./rootSaga\";\nimport rootReducer from \"./rootReducer\";\n// import UserStorage from './middlewares/UserStorage'\n\nconst composeEnhanced =\n process.env.NODE_ENV === \"development\" &&\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n : compose;\n\nconst initialStore = () => {\n const sagaMiddleware = createSagaMiddleware();\n const store = createStore(\n rootReducer,\n getUserInitialState(),\n composeEnhanced(\n applyMiddleware(\n sagaMiddleware,\n userStateMiddleware\n // routerMiddleware(history)\n )\n )\n );\n sagaMiddleware.run(rootSaga);\n return store;\n};\n\nexport default initialStore;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n cardSubtitle: {\n color: \"#818181\",\n paddingBottom: 2,\n },\n pathwayContainer: {\n marginTop: 55,\n marginBottom: 48,\n },\n mobileVideo: {\n width: 700,\n },\n deskVideo: {\n width: 475,\n },\n heading: {\n paddingBottom: 7,\n },\n box: {\n paddingTop: 40,\n },\n Box1: {\n marginTop: 20,\n },\n course: {\n paddingBottom: 16,\n },\n courseCard: {\n // marginBottom: 10,\n },\n titleCard: {\n // marginBottom: 30,\n marginLeft: 16,\n },\n titleCardMob: {\n marginBottom: 30,\n },\n flex: {\n display: \"flex\",\n padding: \"16px 0\",\n },\n courseName: {\n background: \"#E9F5E9\",\n width: \"24px\",\n height: \"24px\",\n borderRadius: \"50%\",\n },\n classTitle: {\n padding: \"16px\",\n },\n openCourse: {\n background: \"#EEF1F5\",\n m: \"15px\",\n ml: \"35px\",\n height: \"200px\",\n },\n pathwayLink: {\n textDecoration: \"none\",\n },\n pathwayCard: {\n minWidth: \"250px\",\n // height: \"310px\",\n margin: \"16px 0\",\n \"&:hover\": {\n boxShadow:\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\",\n },\n },\n\n SupplementalCard: {\n background: \"linear-gradient(90deg, #FDFBFB 0%, #EBEDEE 100%)\",\n height: \"70px\",\n },\n courseImage: {\n objectFit: \"cover\",\n width: \"100%\",\n height: \"200px\",\n borderRadius: \"8px\",\n },\n courseTitleNumber: {\n display: \"flex\",\n alignItems: \"baseline\",\n paddingTop: \"16px\",\n },\n\n link: {\n color: \"green\",\n },\n\n UpcomingCard: {\n height: \"90%\",\n cursor: \"pointer\",\n \"&:hover\": {\n boxShadow:\n \"0px 12px 20px rgba(0, 0, 0, 0.06), 0px 12px 20px rgba(0, 0, 0, 0.04), 0px 12px 20px rgba(0, 0, 0, 0.08)\",\n },\n },\n cardContent: {\n height: \"60px\",\n overflow: \"hidden\",\n },\n progressBar: {\n width: \"95%\",\n },\n certButtons: {\n display: \"flex\",\n // justifyContent: \"space-around\",\n justifyContent: \"flex-end\",\n marginTop: \"32px\",\n },\n greenButton: {\n padding: \"8px 16px !important\",\n borderRadius: \"8px !important\",\n backgroundColor: \"#48A145 !important\",\n color: \"#FFFFFF !important\",\n // width: \"180px !important\",\n },\n disableButton: {\n padding: \"8px 16px !important\",\n borderRadius: \"8px !important\",\n backgroundColor: \"#E0E0E0 !important\",\n color: \"gray !important\",\n },\n\n // pdfFrame: {\n // height: \"100%\",\n // width: \"100%\",\n // border: \"none\",\n // outline: \"none\",\n // brackgroundColor: \"transparent !important\",\n // },\n\n // pdfWrapper: {\n // height: (props) => (props.isActive ? \"202px\" : \"372px\"),\n // },\n spanfont: {\n fontWeight: \"bold\",\n },\n modalBox: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"1rem\",\n marginBottom: \"1rem\",\n },\n modalContainer: {\n border: \"0px\",\n borderRadius: \"10px\",\n },\n customModalContainer: {\n overflow: \"scroll\",\n border: \"none\",\n borderRadius: \"10px\",\n },\n boxStyle: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingRight: \"10px\",\n \"@media (max-width: 980px)\": {\n flexDirection: \"column\",\n paddingBottom: \"14px\",\n },\n },\n alertBox: {\n width: \"100% !important\",\n backgroundColor: \"#48A145 !important\",\n },\n\n cardComponent: {\n display: \"flex\",\n gap: \"15px\",\n flexDirection: \"column\",\n },\n}));\n\nexport default useStyles;\n","export const breakpoints = {\n values: {\n xs: 0,\n sm: 600,\n md: 900,\n lg: 1200,\n xl: 1536,\n },\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Container,\n Grid,\n Typography,\n Box,\n Card,\n CardContent,\n CardActions,\n LinearProgress,\n} from \"@mui/material\";\nimport { METHODS } from \"../../../services/api\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport useStyles from \"../styles\";\nimport { PATHS, interpolatePath } from \"../../../constant\";\nimport { Link } from \"react-router-dom\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport LockOpenIcon from \"@mui/icons-material/LockOpen\";\nimport { toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\nimport DOMPurify from \"dompurify\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport get from \"lodash/get\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\n\ntoast.configure();\n\nfunction UnsafeHTML(props) {\n const { html, Container, ...otherProps } = props;\n const sanitizedHTML = DOMPurify.sanitize(html);\n return (\n \n );\n}\n\nfunction C4CApathway() {\n const user = useSelector(({ User }) => User);\n const [pathway, setPathway] = useState([]);\n const classes = useStyles();\n const history = useHistory();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n useEffect(() => {\n if (localStorage.getItem(\"studentAuth\") === null) history.push(\"/login\");\n\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/c4ca`,\n headers: {\n accept: \"application/json\",\n Authorization: localStorage.getItem(\"studentAuthToken\"),\n },\n })\n .then((response) => {\n if (pathway?.length < 1) setPathway(response?.data);\n })\n .catch((err) => {});\n }, []);\n\n const filterCourses = pathway?.modules?.filter((item) => {\n return item.courses.length > 0;\n });\n\n const [unlockedCourses, setUnlockedCourses] = useState([]);\n\n // Function to check if a course is unlocked\n\n // Effect to automatically unlock courses when their percentage reaches 100\n useEffect(() => {\n filterCourses &&\n filterCourses.forEach((item, index) => {\n const lastCourseIndex = item.courses.length - 1;\n item.courses.forEach((course, courseindex) => {\n if (course.completed_portion === 100) {\n if (courseindex < lastCourseIndex) {\n const nextCourse = item.courses[courseindex + 1];\n if (!isCourseUnlocked(nextCourse.id)) {\n // Automatically unlock the next course\n setUnlockedCourses([...unlockedCourses, nextCourse.id]);\n }\n }\n }\n if (item.completed_portion === 100) {\n if (index < filterCourses.length - 1) {\n const nextItem = filterCourses[index + 1];\n const firstCourseOfNextItem = nextItem.courses[0];\n\n if (!isCourseUnlocked(firstCourseOfNextItem.id)) {\n setUnlockedCourses([\n ...unlockedCourses,\n firstCourseOfNextItem.id,\n ]);\n }\n }\n }\n });\n });\n }, [unlockedCourses, filterCourses]);\n\n const isCourseUnlocked = (courseId) => {\n return unlockedCourses.includes(courseId);\n };\n\n return (\n \n \n \n \n Learning Outcomes\n \n \n {pathway?.name}\n \n \n {pathway?.description}\n \n \n \n {pathway?.outcomes?.length > 0 && (\n \n \n Learning Outcomes\n \n \n {pathway?.outcomes.map((content, index) => {\n if (content.component === \"text\") {\n return (\n \n \n \n \n \n \n \n \n );\n }\n })}\n \n \n )}\n {filterCourses?.map((item, index) => (\n \n \n {item.name}\n \n \n {item.courses &&\n item.courses?.map((course, courseindex) => (\n \n \n {\n !(\n isCourseUnlocked(course.id) ||\n (index === 0 && courseindex === 0)\n ) &&\n toast.success(\n \"Complete your previous course to unlock this course\",\n {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n }\n );\n }}\n >\n \n \n \n {isCourseUnlocked(course.id) ||\n (index === 0 && courseindex === 0) ? null : (\n \n )}\n \n {course.name}\n \n \n \n \n \n \n \n \n \n ))}\n \n {/* Conditionally render the Unlock button for the next module */}\n \n ))}\n \n );\n}\nexport default C4CApathway;\n","import React from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport { Route, Redirect } from \"react-router-dom\";\nimport { actions as userActions } from \"../../components/User/redux/action\";\nimport { PATHS } from \"../../constant\";\n\nimport C4CApathway from \"../../components/PathwayCourse/C4CApathway\";\nconst OnlyLoggedIn = (passedProps) => {\n const { user = {}, component: Component, ...rest } = passedProps;\n const dispatch = useDispatch();\n\n try {\n const token = localStorage.getItem(\"Token\");\n const studentAuth = localStorage.getItem(\"studentAuth\");\n if (token && (!user || !user.isAuthenticated)) {\n // Registered user attempting to log in by using redirect token;\n // let's send the token to our back-end to get profile data\n // from /users/me\n dispatch(userActions.onUserSignin({ token }));\n localStorage.removeItem(\"Token\");\n }\n // if (studentAuth) {\n // // Render the Component if the user is not authenticated but studentAuth is present\n // return \n // }\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n\n return (\n {\n return user && user.isAuthenticated ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n\nOnlyLoggedIn.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n\nexport default OnlyLoggedIn;\n","import { connect } from \"react-redux\";\nimport { withRouter } from \"react-router-dom\";\nimport OnlyLoggedIn from \"./OnlyLoggedIn\";\n\nconst mapStateToProps = (state) => ({\n user: state.User.data,\n});\n\nexport const PrivateRoute = withRouter(connect(mapStateToProps)(OnlyLoggedIn));\n","export const ADMIN_ROLE_KEY = \"ADMIN\";\nexport const STUDENT_ROLE_KEY = \"STUDENT\";\nexport const VOLUNTEER_ROLE_KEY = \"VOLUNTEER\";\nexport const PARTNER_ROLE_KEY = \"PARTNER\";\nexport const PARTNER_VIEW_ROLE_KEY = \"PARTNER_VIEW\";\nexport const PARTNER_EDIT_ROLE_KEY = \"PARTNER_EDIT\";\n\nconst ROLES = {\n [ADMIN_ROLE_KEY]: {\n msgKey: ADMIN_ROLE_KEY,\n savedValue: \"admin\",\n isDefault: false,\n },\n [STUDENT_ROLE_KEY]: {\n msgKey: STUDENT_ROLE_KEY,\n savedValue: \"student\",\n isDefault: true,\n },\n [VOLUNTEER_ROLE_KEY]: {\n msgKey: VOLUNTEER_ROLE_KEY,\n savedValue: \"volunteer\",\n isDefault: false,\n },\n [PARTNER_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n savedValue: \"partner\",\n isDefault: false,\n properties: {\n partnerId: null,\n partnerGroupId: null,\n },\n },\n [PARTNER_VIEW_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n savedValue: \"partner_view\",\n isDefault: false,\n },\n [PARTNER_EDIT_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n savedValue: \"partner_edit\",\n isDefault: false,\n },\n};\n\n// keys of roles which every user has\nconst DEFAULT_ROLES = Object.keys(ROLES).filter(\n (role) => ROLES[role].isDefault\n);\n\nconst savedRolesToKeysMap = Object.keys(ROLES).reduce((roleKeyMap, roleKey) => {\n roleKeyMap[ROLES[roleKey].savedValue] = roleKey;\n return roleKeyMap;\n}, {});\n\n/**\n * Selector to get user roles\n * @return {Array.<{key: string, msgKey: string, assignedRole:boolean, properties: Object}>}\n */\nexport const selectRolesData = ({ User }) => {\n const rolesList = (User?.data?.user?.rolesList || []).map(\n (savedRole) => savedRolesToKeysMap[savedRole] || savedRole\n );\n const unassignedDefaultRoles = DEFAULT_ROLES.filter(\n (roleKey) => !rolesList.includes(roleKey)\n );\n\n // special case for partner role\n const partnerId = User?.data?.user?.partner_id;\n const partnerGroupId = User?.data?.user?.partner_group_id;\n ROLES[PARTNER_ROLE_KEY].properties.partnerId = User?.data?.user?.partner_id;\n ROLES[PARTNER_ROLE_KEY].properties.partnerGroupId =\n User?.data?.user?.partner_group_id;\n\n return unassignedDefaultRoles\n .map((roleKey) => ({\n key: roleKey,\n msgKey:\n ROLES[roleKey]?.msgKey ||\n roleKey[0].toUpperCase() + roleKey.substring(1),\n assignedRole: false,\n properties: ROLES[roleKey]?.properties || null,\n }))\n .concat(\n rolesList.map((roleKey) => ({\n key: roleKey,\n msgKey:\n ROLES[roleKey]?.msgKey ||\n roleKey[0].toUpperCase() + roleKey.substring(1),\n assignedRole: true,\n properties: ROLES[roleKey]?.properties || null,\n }))\n );\n};\n\n/**\n * Selector to get user id\n * @return {string} user id\n */\nexport const selectUserId = ({ User }) => User?.data?.user?.id;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n background: \"linear-gradient(90deg, #C1DFC4 0%, #DEECDD 100%)\",\n padding: \"64px 0px\",\n },\n mobileContainer: {\n padding: \"32px 0px\",\n background: \"linear-gradient(90deg, #C1DFC4 0%, #DEECDD 100%)\",\n },\n cardGrid: {\n padding: \"10px 16px 10px 16px\",\n marginTop: \"20px\",\n },\n\n heading: {\n padding: \"5px 80px 2px 80px\",\n },\n\n card: {\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"32px 0px 0px 0px\",\n \"&:hover\": {\n boxShadow:\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\",\n },\n },\n\n imageCard: {\n height: \"50%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"32px 0px 0px 0px\",\n },\n\n engineerPopupCard: {\n width: \"280px\",\n marginRight: \"60px\",\n // padding: \"10px 20px 5px 0px\",\n padding: \"16px\",\n },\n\n typingPopupCard: {\n marginLeft: \"60px\",\n width: \"250px\",\n padding: \"16px\",\n },\n\n MerakiEntry: {\n marginTop: \"65px\",\n },\n\n ResMerakiEntry: {\n marginTop: \"20px\",\n padding: \"24px 16px\",\n },\n\n LearningBtn: {\n width: \"280px\",\n },\n\n responsiveBtn: {\n width: \"100%\",\n },\n\n playstoreImg: {\n width: \"18px\",\n },\n downloadBtn: {\n marginLeft: \"10px\",\n },\n link: {\n textDecoration: \"none\",\n color: \"black\",\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport useStyles from \"./styles\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { Typography, CardMedia, CardContent, Card, Box } from \"@mui/material\";\n\nfunction PathwayCard({ id, name, description, logo, hover }) {\n const classes = useStyles();\n\n return (\n \n {hover ? (\n \n {logo && (\n \n )}\n \n \n {name}\n \n \n {description}\n \n \n \n ) : (\n \n {logo && (\n \n )}\n \n \n {name}\n \n \n {description}\n \n \n \n )}\n \n );\n}\nexport default PathwayCard;\n","import React from \"react\";\n\nfunction ExternalLink(props) {\n return ;\n}\n\nexport default ExternalLink;\n","export const LEARN_KEY = \"LEARN\";\nexport const ABOUT_KEY = \"ABOUT\";\nexport const GET_INVOLVED_KEY = \"GET_INVOLVED\";\nexport const ADMIN_ROLE_KEY = \"ADMIN\";\nexport const STUDENT_ROLE_KEY = \"STUDENT\";\nexport const VOLUNTEER_ROLE_KEY = \"VOLUNTEER\";\nexport const PARTNER_ROLE_KEY = \"PARTNER\";\nexport const PARTNER_VIEW_ROLE_KEY = \"PARTNER_VIEW\";\nexport const PARTNER_EDIT_ROLE_KEY = \"PARTNER_EDIT\";\n// export const ROLE_KEYS =\n// [ADMIN_ROLE_KEY, STUDENT_ROLE_KEY, VOLUNTEER_ROLE_KEY, PARTNER_ROLE_KEY];\n// export const DEFAULT_ROLE_KEYS = [STUDENT_ROLE_KEY];\n\nexport const ROLES = {\n [ADMIN_ROLE_KEY]: {\n msgKey: ADMIN_ROLE_KEY,\n savedValue: \"admin\",\n isDefault: false,\n },\n [STUDENT_ROLE_KEY]: {\n msgKey: STUDENT_ROLE_KEY,\n savedValue: \"student\",\n isDefault: true,\n },\n [VOLUNTEER_ROLE_KEY]: {\n msgKey: VOLUNTEER_ROLE_KEY,\n savedValue: \"volunteer\",\n isDefault: false,\n },\n [PARTNER_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n savedValue: \"partner\",\n isDefault: false,\n },\n [PARTNER_VIEW_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n savedValue: \"partner_view\",\n isDefault: false,\n },\n [PARTNER_EDIT_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n savedValue: \"partner_edit\",\n isDefault: false,\n },\n};\n\nexport const MENU_ITEMS = {\n [LEARN_KEY]: {\n msgKey: LEARN_KEY,\n },\n [ABOUT_KEY]: {\n msgKey: ABOUT_KEY,\n },\n [GET_INVOLVED_KEY]: {\n msgKey: GET_INVOLVED_KEY,\n },\n [ADMIN_ROLE_KEY]: {\n msgKey: ADMIN_ROLE_KEY,\n },\n [STUDENT_ROLE_KEY]: {\n msgKey: STUDENT_ROLE_KEY,\n },\n [VOLUNTEER_ROLE_KEY]: {\n msgKey: VOLUNTEER_ROLE_KEY,\n },\n [PARTNER_ROLE_KEY]: {\n msgKey: PARTNER_ROLE_KEY,\n },\n};\n\n// Mapping from menu item keys to the MSG string keys for their text\n// For now we'll use the identity (e.g., MENU_MSG_KEY_MAP.ABOUT = 'ABOUT'),\n// but this map will allow flexibility if we wanted to change the MSG key\n// to say HEADER_ABOUT, reserving the ABOUT MSG key for 'about' appearing\n// in a paragraph.\nexport const MENU_MSG_KEY_MAP = {\n [LEARN_KEY]: LEARN_KEY,\n [ABOUT_KEY]: ABOUT_KEY,\n [GET_INVOLVED_KEY]: GET_INVOLVED_KEY,\n // Learn: 'LEARN',\n // About: 'ABOUT',\n // GetInvolved: 'GET_INVOLVED',\n};\n\nexport const PUBLIC_MENU_KEYS = [LEARN_KEY, ABOUT_KEY, GET_INVOLVED_KEY];\n// export const PUBLIC_MENU_KEYS = [\"LEARN\", \"ABOUT\", \"GET_INVOLVED\"];\n","import React, { useEffect } from \"react\";\nimport {\n Typography,\n CssBaseline,\n Container,\n Button,\n Card,\n Box,\n CardContent,\n} from \"@mui/material\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { selectRolesData } from \"../../components/User/redux/selectors\";\nimport { actions as pathwayActions } from \"../../components/PathwayCourse/redux/action\";\nimport { Grid } from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport axios from \"axios\";\nimport PathwayCard from \"./PathwayCard\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { Link } from \"react-router-dom\";\nimport { Redirect } from \"react-router-dom\";\nimport { PATHS } from \"../../constant\";\nimport ExternalLink from \"../../components/common/ExternalLink\";\nimport { useHistory } from \"react-router-dom\";\nimport { PATHWAYS_INFO } from \"../../constant\";\nimport {\n ADMIN_ROLE_KEY as ADMIN,\n PARTNER_ROLE_KEY as PARTNER,\n STUDENT_ROLE_KEY as STUDENT,\n VOLUNTEER_ROLE_KEY as VOLUNTEER,\n} from \"../../components/Header/constant\";\n\nfunction Home() {\n const isActive = useMediaQuery(\"(max-width:600px)\");\n const isActiveIpad = useMediaQuery(\"(max-width:1300px)\");\n const classes = useStyles();\n const dispatch = useDispatch();\n const { loading, data } = useSelector((state) => state.Pathways);\n const user = useSelector(({ User }) => User);\n const roles = useSelector(selectRolesData);\n const history = useHistory();\n\n useEffect(() => {\n // Get the full query string\n const queryString = window.location.search.substring(1); // Remove the \"?\" at the beginning\n console.log(\"Full Query String:\", queryString);\n\n // Split the query string into individual parameters\n const queryParams = queryString.split(\"&\");\n\n // Initialize variables\n let platformFlag = null;\n let studentAuth = null;\n\n // Loop through parameters to find the required ones\n queryParams.forEach((param) => {\n const [key, value] = param.split(\"=\"); // Split key-value pair\n if (key === \"platformFlag\") {\n platformFlag = decodeURIComponent(value).split(\"/\")[0];\n localStorage.setItem(\"platformFlag\", platformFlag);\n }\n if (key === \"studentAuth\") {\n studentAuth = decodeURIComponent(value);\n }\n }); \n console.log(\"Extracted platformFlag:\", platformFlag);\n console.log(\"Extracted studentAuth:\", studentAuth);\n\n // Store the studentAuth token if available\n if (studentAuth) {\n localStorage.setItem(\"studentAuthToken\", studentAuth);\n }\n\n // Get stored token from localStorage\n const storedAuthToken = localStorage.getItem(\"studentAuthToken\");\n\n console.log(\"Stored studentAuthToken:\", storedAuthToken);\n\n // Proceed with API call if token is valid\n if (studentAuth || (storedAuthToken !== \"null\" && storedAuthToken)) {\n const apiEndpoint =\n platformFlag === \"aidcx\" ? \"/career/team\" : \"/c4ca/teams\";\n\n console.log(\"API Endpoint:\", apiEndpoint);\n\n axios\n .get(`${process.env.REACT_APP_MERAKI_URL}${apiEndpoint}`, {\n headers: {\n Authorization: studentAuth ?? storedAuthToken ?? null,\n },\n })\n .then((res) => {\n console.log(\"API Response:\", res.data);\n\n localStorage.setItem(\"studentAuth\", JSON.stringify(res.data));\n\n history.push(\n platformFlag === \"aidcx\" ? \"/aidcx-pathway\" : \"/c4ca-pathway\"\n );\n })\n .catch((err) => {\n console.error(\"API Error:\", err);\n });\n } else {\n console.log(\"No valid studentAuthToken found.\");\n }\n }, []);\n\n useEffect(() => {\n dispatch(pathwayActions.getPathways());\n }, [dispatch]);\n\n const miscellaneousPathway = data?.pathways.filter((pathway) =>\n PATHWAYS_INFO.some((miscPathway) => pathway.name === miscPathway.name)\n );\n const pathwayData = data?.pathways\n .filter((pathway) => !miscellaneousPathway.includes(pathway))\n .concat(miscellaneousPathway);\n\n const partnerGroupId = user?.data?.user?.partner_group_id;\n const partnerId = user?.data?.user?.partner_id;\n const role = user?.data?.user?.rolesList;\n\n const rolesLandingPages = {\n [STUDENT]: PATHS.NEW_USER_DASHBOARD,\n [ADMIN]: PATHS.PARTNERS,\n [VOLUNTEER]: PATHS.CLASS,\n [PARTNER]: partnerGroupId\n ? `${PATHS.STATE}/${partnerGroupId}`\n : `${PATHS.PARTNERS}/${partnerId}`,\n };\n\n let defalutPage = \"/\";\n roles.map((userRole) => {\n if (role?.length == 0) {\n defalutPage = \"/pathway/1\";\n } else if (role && userRole.key === role[0].toUpperCase()) {\n defalutPage = rolesLandingPages[userRole.key];\n }\n });\n useEffect(() => {\n history.push(defalutPage);\n }, [defalutPage]);\n\n return (\n <>\n \n
\n {/* section 1 */}\n\n
\n \n \n \n \n India’s Premier Learning Platform for Underserved Communities\n \n \n Affordable and accessible programming education to the makers\n of the future India\n \n \n \n Start Learning\n \n \n \n \n \n \n \n\n {/* section 2 */}\n\n \n \n \n \n \n \n \n \n Trusted by 9+ Partners\n \n \n For our hybrid and free online learning approach\n \n \n \n \n \n \n \n \n \n \n \n 9000+ Active Students\n \n \n From all corners of India taking first step in tech world\n \n \n \n \n \n \n \n \n \n \n \n 5+ Monthly Mentor Sessions\n \n \n For direct interaction with industry experts at Amazon\n \n \n \n \n \n \n
\n\n {/* section 3 */}\n\n \n \n \n \n Why Meraki?\n \n Learning with Meraki is like taking the first steps into the\n world of tech.You can explore your interests before committing\n to longer and often paid learning programs.\n \n \n \n \n \n \n \n Courses from the very basics\n \n \n Start from scratch and work your way through the basics\n \n \n \n \n \n Free of cost\n \n \n Meraki is free forever in line with our goal to make tech\n education reach every underserved student in India\n \n \n \n \n \n \n \n Live lessons from teachers\n \n \n Structured classes from each topic from people in the industry\n to help you with every large or small concept and doubt\n \n \n \n \n \n In multiple regional languages\n \n \n Learn in your own mother tongue with clarity while also\n developing your English skills with our program\n \n \n \n \n \n\n {/* section 4 */}\n\n \n \n Explore the Learning Tracks\n \n \n \n \n {pathwayData?.map((item) => (\n \n \n \n ))}\n \n \n\n {/* Section 5 */}\n \n \n Hear from our Users\n \n \n \n \n \n \n \n \n I learned python very well from meraki-classes. The class\n was brilliant. Meraki classes provide us all session of\n python classes. It is very usefull in future. so Thank you\n for providing us for free classes.\n \n \n \n \n\n \n \n \n Rudresh Bhaleshwar\n \n \n \n \n \n \n \n \n \n \n I took Meraki classes so I learned lot of things about\n programming like python and learn how codes are execute .\n So after taking Meraki classes I learnt more about\n programming how it's work in application .\n \n \n \n \n \n \n Durganand Sahu\n \n \n \n \n \n \n \n \n \n I have enjoyed learning python in Meraki class. The\n teachers were teaching greatly. I thank thank to Sainath\n sir and Meraki class for doing available these python\n classes.\n \n \n \n \n \n \n Gayatri Panchal\n \n \n \n \n \n\n {/* Section 6 */}\n\n \n \n Have Questions?\n \n \n \n \n \n\n team@meraki.org\n \n \n \n \n \n +91 8891300300\n \n \n \n \n
\n \n );\n}\nexport default Home;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport \"./styles.scss\";\n\nconst Loader = ({ className = \"\", pageLoader = false }) => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nLoader.propTypes = {\n className: PropTypes.string,\n pageLoader: PropTypes.bool,\n // If main page loading pass this prop value as true\n};\n\nexport default Loader;\n","import React from \"react\";\nconst GoogleSvg = require(\"./Google.svg\");\nconst GoogleIcon = () => {\n return ;\n};\nexport default GoogleIcon;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n merakiLogin: {\n marginTop: \"60px\",\n },\n resMerakilogin: {\n marginTop: \"184px\",\n },\n googleLogin: {\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"47px\",\n width: \"254px\",\n borderRadius: \"17px\",\n padding: \"10px\",\n fontWeight: \"bold\",\n },\n\n responsiveGoogleLogin: {\n height: \"48px\",\n width: \"325px\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n\n Loder: {\n marginRight: \"70%\",\n },\n responsiveLoder: {\n marginLeft: \"10px\",\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport {\n Box,\n Button,\n Grid,\n IconButton,\n InputAdornment,\n TextField,\n Typography,\n} from \"@mui/material\";\nimport { Visibility, VisibilityOff } from \"@mui/icons-material\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { useMediaQuery } from \"@mui/material\";\n\nconst StudentLogin = ({\n handleSubmit,\n loading,\n errors,\n handleChange,\n formData,\n handlePasswordVisibility,\n}) => {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n return (\n <>\n \n \n \n or login with Username and Password\n \n \n \n\n
\n \n \n \n\n \n \n {formData.password.length > 0 && (\n \n {formData.showPassword ? (\n \n ) : (\n \n )}\n \n )}\n \n ),\n }}\n />\n \n\n \n \n Login\n \n \n\n \n \n Forgot password or Don't have login details?\n \n \n Please connect with your teacher to get the Username and Password\n \n \n \n \n );\n};\n\nexport default StudentLogin;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Redirect, useHistory, useLocation } from \"react-router-dom\";\nimport GoogleLogin from \"react-google-login\";\nimport axios from \"axios\";\nimport { actions as userActions } from \"../../components/User/redux/action\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { getQueryVariable } from \"../../common/utils\";\nimport Loader from \"../../components/common/Loader\";\nimport { METHODS } from \"../../services/api\";\nimport { actions as pathwayActions } from \"../../components/PathwayCourse/redux/action\";\nimport { Typography, Container, Grid, Stack, Box, Button } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport GoogleIcon from \"./assets/GoogleIcon\";\nimport useStyles from \"./styles\";\nimport { breakpoints } from \"../../theme/constant\";\nimport StudentLogin from \"./StudentLogin\";\n\nfunction Login(props) {\n const history = useHistory();\n const location = useLocation();\n const [queryString, setqueryString] = useState(null);\n const user = useSelector(({ User }) => User);\n const dispatch = useDispatch();\n const pathway = useSelector((state) => state.Pathways);\n const updateQueryString = (value) => {\n setqueryString(value);\n };\n const { loading, data } = useSelector(({ User }) => User);\n const rolesList = data !== null && data?.user?.rolesList;\n const isAuthenticated = data && data?.isAuthenticated;\n\n const [formData, setFormData] = useState({\n username: \"\",\n password: \"\",\n showPassword: false,\n });\n\n const [errors, setErrors] = useState({\n username: \"\",\n password: \"\",\n });\n\n const handlePasswordVisibility = () => {\n setFormData((prevFormData) => ({\n ...prevFormData,\n showPassword: !prevFormData.showPassword,\n }));\n };\n\n const handleChange = (e) => {\n const { name, value } = e.target;\n setFormData({ ...formData, [name]: value });\n setErrors({ ...errors, [name]: \"\" });\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n setErrors({ username: \"\", password: \"\" });\n if (!formData.username && !formData.password) {\n setErrors({\n ...errors,\n username: \"Please enter a username\",\n password: \"Please enter a password\",\n });\n return;\n } else if (!formData.username) {\n setErrors({ ...errors, username: \"Please enter a username\" });\n return;\n } else if (!formData.password) {\n setErrors({ ...errors, password: \"Please enter a password\" });\n return;\n }\n dispatch(userActions.onUserLogin(formData));\n };\n\n function onSignIn(googleUser) {\n let profile = googleUser.getBasicProfile();\n let { id_token: idToken } = googleUser.getAuthResponse();\n\n const googleData = {\n id: profile.getId(),\n name: profile.getName(),\n imageUrl: profile.getImageUrl(),\n email: profile.getEmail(),\n idToken,\n };\n // let's send the data to our backend.\n dispatch(userActions.onUserSignin(googleData));\n updateQueryString(getQueryVariable(\"referrer\"));\n // dispatch(userActions.onUserUpdate(referrer));\n }\n\n useEffect(() => {\n if (user.error) {\n if (user.error.errorCode === 2001) {\n setErrors({ ...errors, username: user.error.message });\n } else if (user.error.errorCode === 2002) {\n setErrors({ ...errors, password: user.error.message });\n }\n }\n dispatch(\n pathwayActions.getPathways({\n authToken: user,\n })\n );\n }, [dispatch, user.error]);\n\n const classes = useStyles();\n // const isActive = useMediaQuery(\"(max-width:600px)\");\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const isActiveIpad = useMediaQuery(\"(max-width:768px)\");\n\n const onGoogleLoginFail = (errorResponse) => {\n // eslint-disable-next-line no-console\n console.log(errorResponse);\n };\n\n const pythonPathway =\n pathway.data &&\n pathway.data.pathways.find((pathway) => pathway.code === \"PRGPYT\");\n const pythonPathwayId = pythonPathway && pythonPathway.id;\n\n // PathwayId for Amazon Pathway:-\n const amazonPathway =\n pathway.data &&\n pathway.data.pathways.find((pathway) => pathway.code === \"ACB\");\n const [amazonPathwayId, setAmazonPathwayId] = useState(null);\n\n useEffect(() => {\n if (amazonPathwayId == null) {\n setAmazonPathwayId(amazonPathway && amazonPathway.id);\n }\n }, [user]);\n\n // ---------------------------------------------\n\n const rolesLandingPages = {\n volunteer: PATHS.CLASS,\n admin: PATHS.PARTNERS,\n partner: PATHS.PARTNERS,\n default: interpolatePath(PATHS.NEW_USER_DASHBOARD),\n };\n\n if (isAuthenticated) {\n if (queryString) {\n axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/me`,\n headers: {\n accept: \"application/json\",\n Authorization: data.token,\n },\n data: { referrer: queryString },\n })\n .then((res) => {\n // For ACB Students joining using referrer link redirection below:-\n const queryParams = new URLSearchParams(location.search);\n const referrer = queryParams.get(\"referrer\");\n if (referrer.includes(\"amazon\")) {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE, {\n pathwayId: amazonPathwayId,\n })\n );\n }\n })\n .catch((err) => {});\n }\n if (props.location.state == \"/volunteer-with-us\") {\n if (rolesList.includes(\"volunteer\")) {\n return ;\n } else {\n return ;\n }\n }\n if (props.location.state) {\n return ;\n }\n\n // For already registered ACB Students redirection below:-\n if (\n data?.user?.partner_id == 932 &&\n !data?.user?.rolesList.includes(\"partner\") &&\n !data?.user?.rolesList.includes(\"admin\")\n ) {\n return (\n \n );\n }\n\n return (\n <>\n {pythonPathwayId && (\n \n )}\n \n );\n }\n\n if (rolesList != false) {\n if (!(rolesList.includes(\"partner\") || rolesList.includes(\"admin\"))) {\n return ;\n }\n } else if (rolesList.length == 0) {\n return ;\n }\n\n return (\n <>\n \n \n \n \n \n Embark on your learning journey with Meraki\n \n\n {loading ? (\n \n \n \n ) : (\n \n (\n }\n onClick={renderProps.onClick}\n style={{\n border: \"1px solid rgb(227 221 221)\",\n backgroundColor: \"white\",\n color: \"black\",\n width: isActive ? \"100%\" : \"max-content\",\n margin: \"10px 0\",\n paddingInline: \"50px\",\n fontSize: \"18px\",\n }}\n >\n Log In with Google\n \n )}\n onFailure={onGoogleLoginFail}\n cookiePolicy={\"single_host_origin\"}\n className={\n isActive\n ? classes.responsiveGoogleLogin\n : classes.googleLogin\n }\n />\n \n \n )}\n \n \n \n \"img\"\n \n \n \n \n );\n}\n\nexport default Login;\n","import React, { useState } from \"react\";\n\nconst Form = ({\n onSubmit,\n className = \"\",\n initialFieldsState = {},\n children,\n}) => {\n const [formFieldsState, setFormFieldsState] = useState(initialFieldsState);\n const setFormField = (fieldValue, fieldName) => {\n setFormFieldsState({\n ...formFieldsState,\n [fieldName]: fieldValue,\n });\n };\n\n return (\n
\n {children({\n formFieldsState,\n setFormField,\n setFormFieldsState,\n })}\n
\n );\n};\n\nexport default Form;\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport _ from \"lodash\";\nimport { toast } from \"react-toastify\";\nimport axios from \"axios\";\nimport { versionCode } from \"../../constant\";\nimport { TIME_CONSTANT, CLASS_FIELDS } from \"./constant\";\nimport Loader from \"../common/Loader\";\nimport Form from \"../common/form\";\nimport { METHODS } from \"../../services/api\";\nimport \"./styles.scss\";\nimport TextField from \"@mui/material/TextField\";\nimport Autocomplete from \"@mui/material/Autocomplete\";\n\nconst {\n TITLE,\n DESCRIPTION,\n FACILITATOR_EMAIL,\n FACILITATOR_NAME,\n START_TIME,\n CLASS_START_TIME,\n CLASS_END_TIME,\n LANG,\n TYPE,\n PATHWAY_ID,\n COURSE_ID,\n PARTNER_ID,\n EXERCISE_ID,\n MAX_ENROLMENT,\n FREQUENCY,\n ON_DAYS,\n OCCURRENCE,\n UNTIL,\n} = CLASS_FIELDS;\n\nfunction Class({ classToEdit, indicator }) {\n const isEditMode = !_.isEmpty(classToEdit);\n const [loading, setLoading] = useState(false);\n const [pathwayId, setPathwayId] = useState();\n const [pathwayCode, setPathwayCode] = useState();\n const [checkedState, setCheckedState] = useState(new Array(7).fill(false));\n const [day, setDay] = useState({});\n const [matchDay, setMatchDat] = useState(false);\n const [classType, setClassType] = useState(\"batch\");\n const [partnerData, setPartnerData] = useState([]);\n const [Selected_partner_id, setSelected_partner_id] = useState();\n\n const {\n title,\n description,\n facilitator,\n lang,\n type,\n start_time,\n end_time,\n pathway_id,\n course_id,\n // partner_id,\n exercise_id,\n max_enrolment,\n frequency,\n parent_class,\n } = classToEdit;\n\n const initialFormState = useMemo(() => {\n let on_days_list = [];\n let occurrence_data = \"\";\n let until_data = \"\";\n if (parent_class) {\n if (parent_class.on_days) on_days_list = parent_class.on_days.split(\",\");\n if (parent_class.occurrence) occurrence_data = parent_class.occurrence;\n if (parent_class.until) until_data = parent_class.until;\n }\n return {\n [TITLE]: title || \"\",\n [DESCRIPTION]: description || \"\",\n [FACILITATOR_NAME]: facilitator ? facilitator.name : \"\",\n [FACILITATOR_EMAIL]: facilitator ? facilitator.email : \"\",\n [START_TIME]: start_time\n ? moment.utc(start_time).format(\"YYYY-MM-DD\")\n : moment().format(\"YYYY-MM-DD\"),\n [CLASS_START_TIME]: start_time\n ? moment.utc(start_time).add(330, \"minute\").format(\"kk:mm\")\n : moment().format(\"kk:mm\"),\n [CLASS_END_TIME]: end_time\n ? moment.utc(end_time).add(330, \"minute\").format(\"kk:mm\")\n : moment().add(60, \"minute\").format(\"kk:mm\"),\n [LANG]: lang || \"hi\",\n [TYPE]: type || \"batch\",\n [COURSE_ID]: course_id || \"\",\n [PATHWAY_ID]: pathway_id || \"\",\n [EXERCISE_ID]: exercise_id || \"\",\n [MAX_ENROLMENT]: max_enrolment || \"0\",\n [FREQUENCY]: frequency || \"\",\n [ON_DAYS]: on_days_list || [],\n [OCCURRENCE]: occurrence_data || \"28\",\n [UNTIL]: until_data || \"\",\n };\n }, [classToEdit]);\n\n const days = {\n MO: \"Mon\",\n TU: \"Tue\",\n WE: \"Wed\",\n TH: \"Thu\",\n FR: \"Fri\",\n SA: \"Sat\",\n SU: \"Sun\",\n };\n\n const user = useSelector(({ User }) => User);\n const rolesList = user.data.user.rolesList;\n\n const canSpecifyFacilitator =\n rolesList.indexOf(\"classAdmin\") > -1 || rolesList.indexOf(\"admin\") > -1;\n\n const [pathways, setPathways] = useState([]);\n const [exercisesForSelectedCourse, setExercisesForSelectedCourse] = useState(\n {}\n );\n\n const editClass = (payload) => {\n payload.start_time = convertToIST(payload.start_time);\n payload.end_time = convertToIST(payload.end_time);\n if (classToEdit.type === \"batch\") {\n if (indicator === false) {\n delete payload.frequency;\n }\n }\n\n setLoading(true);\n return axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/apiDocs/classes/${classToEdit.id}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n \"version-code\": versionCode,\n \"update-all\": indicator,\n },\n data: payload,\n })\n .then(\n () => {\n toast.success(\"Updated class details!\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n setLoading(false);\n window.location.reload(1);\n },\n (error) => {\n toast.error(\n `Something went wrong with error status: ${error.response.status} ${error.response.data.message}`,\n {\n position: toast.POSITION.BOTTOM_RIGHT,\n }\n );\n setLoading(false);\n }\n )\n .catch((err) => {});\n };\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways?courseType=json`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setPathways(res.data.pathways);\n })\n .catch((err) => {});\n }, []);\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n const partners = res.data.partners.map((item, index) => {\n return {\n label: item.name,\n id: item.id,\n };\n });\n setPartnerData(partners);\n })\n .catch((err) => {});\n }, []);\n\n const onCourseChange = (courseId) => {\n if (exercisesForSelectedCourse[courseId]) {\n return;\n }\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/courses/${courseId}/exercises/v2`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setExercisesForSelectedCourse({\n ...exercisesForSelectedCourse,\n [courseId]: res.data.course.exercises,\n });\n })\n .catch((err) => {});\n };\n\n const convertToIST = (d) => {\n const b = d.split(/\\D+/);\n const dateInObj = new Date(\n Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], b[6])\n );\n const utc = dateInObj.getTime() + dateInObj.getTimezoneOffset() * 60000;\n return new Date(utc + 3600000 * +5.5).toISOString();\n };\n\n const handleTimeValidationAndCreateClass = (payload) => {\n const classStartTime = moment(\n `${payload[TIME_CONSTANT.CLASS_START_DATE]} ${\n payload[TIME_CONSTANT.CLASS_START_TIME]\n }`\n );\n const classEndTime = moment(\n `${payload[TIME_CONSTANT.CLASS_START_DATE]} ${\n payload[TIME_CONSTANT.CLASS_END_TIME]\n }`\n );\n\n if (classStartTime.valueOf() >= classEndTime.valueOf()) {\n toast.error(\"Class end time must be later than class start time.\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n // Making the class end time field focused, so user can edit it.\n return document.getElementById(TIME_CONSTANT.CLASS_END_TIME).focus();\n }\n // remove the unnecessary time fields and add date parameter\n delete payload[TIME_CONSTANT.CLASS_END_TIME];\n delete payload[TIME_CONSTANT.CLASS_START_TIME];\n payload[TIME_CONSTANT.CLASS_START_DATE] = `${moment(classStartTime).format(\n \"YYYY-MM-DDTHH:mm:ss\"\n )}Z`;\n payload[TIME_CONSTANT.CLASS_END_DATE] = `${moment(classEndTime).format(\n \"YYYY-MM-DDTHH:mm:ss\"\n )}Z`;\n\n payload[PARTNER_ID] = Selected_partner_id;\n\n if (!isEditMode) {\n createClass(payload);\n } else {\n editClass(payload);\n }\n };\n\n const changeHandler = async (e, setField, field) => {\n if (e.target.name === \"occurrence\") {\n setField({ ...field, [e.target.name]: e.target.value, until: \"\" });\n } else if (e.target.name === \"until\") {\n setField({\n ...field,\n [e.target.name]: e.target.value,\n occurrence: \"\",\n });\n } else {\n setField({ ...field, [e.target.name]: e.target.value });\n }\n };\n\n const handleOnChange = (position) => {\n const updatedCheckedState = checkedState.map((item, index) =>\n index === position ? !item : item\n );\n setCheckedState(updatedCheckedState);\n };\n\n // const checkBoxHandler = (e, day, key, field, setField) => {\n const checkBoxHandler = (e, days, count, key, field, setField) => {\n const obj = {\n [count]: days,\n };\n if (e.target.checked === true) {\n // const daysList = [...field[key], day];\n const daysList = [...field[key], days];\n const forDate = Object.assign(day, obj);\n setField(daysList, key);\n setDay(forDate);\n } else {\n _.remove(field[key], function (del) {\n return del === days;\n });\n delete day[count];\n }\n };\n\n const createClass = (payload) => {\n payload.start_time = convertToIST(payload.start_time);\n payload.end_time = convertToIST(payload.end_time);\n setLoading(true);\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/classes`,\n method: METHODS.POST,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n \"version-code\": versionCode,\n role: \"volunteer\",\n },\n data: {\n ...payload,\n },\n })\n .then(\n () => {\n toast.success(\"You successfully created a class.\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n setLoading(false);\n window.location.reload(1);\n },\n (error) => {\n toast.error(\n `Something went wrong with error status: ${error.response.status} ${error.response.data.message}`,\n {\n position: toast.POSITION.BOTTOM_RIGHT,\n }\n );\n setLoading(false);\n }\n )\n .catch((err) => {});\n };\n\n const onFormSubmit = (event) => {\n event && event.preventDefault();\n const formData = new FormData(event.target);\n\n let formFields = {\n category_id: 3,\n };\n\n for (let [fieldName, value] of formData.entries()) {\n if (value) {\n const weekDday = Object.values(day);\n if (fieldName === \"start_time\") {\n if (classType === \"batch\") {\n let incrementedDate = new Date(value);\n let onDay = incrementedDate.toString().split(\" \")[0];\n let flag = false;\n let firstDay = \"\";\n for (let i in days) {\n if (onDay === days[i]) {\n flag = true;\n }\n if (flag) {\n for (let j of weekDday) {\n if (days[j] === days[i]) {\n flag = false;\n firstDay = j;\n setMatchDat(false);\n break;\n } else {\n setMatchDat(true);\n }\n }\n }\n }\n const index = weekDday.indexOf(firstDay);\n if (days[firstDay] !== onDay) {\n let newDate;\n var i = 1;\n while (i <= 7) {\n incrementedDate = moment(incrementedDate).add(1, \"days\")._d;\n let Day = incrementedDate.toString().split(\" \")[0];\n if (days[weekDday[index]] === Day) {\n newDate = incrementedDate;\n break;\n }\n i = i + 1;\n }\n formFields[fieldName] = moment.utc(newDate).format(\"YYYY-MM-DD\");\n } else {\n formFields[fieldName] = value;\n }\n } else {\n formFields[fieldName] = value;\n }\n } else if (fieldName === \"max_enrolment\") {\n formFields[fieldName] = Number(value);\n if (value == 0) {\n delete formFields.max_enrolment;\n }\n } else if (fieldName === \"type\") {\n if (value === \"batch\") {\n formFields = { ...formFields, type: \"batch\", frequency: \"WEEKLY\" };\n } else {\n formFields[fieldName] = value;\n }\n } else if (fieldName === \"on_days\") {\n formFields[fieldName] = value.split(\",\");\n }\n // if (fieldName === \"pathway_id\") {\n // // formFields[fieldName] = parseInt(value);\n // console.log(\"removing pathway_id from payload\");\n // continue;\n // }\n else {\n formFields[fieldName] = value;\n }\n }\n }\n handleTimeValidationAndCreateClass(formFields);\n };\n\n return (\n
\n

\n {isEditMode\n ? `Update ${\n initialFormState[TYPE] == \"batch\" ? \"batch\" : \"doubt\"\n } class`\n : \"Create a Batch\"}\n

\n \n {({ formFieldsState, setFormField, setFormFieldsState }) => {\n // const checkEquivalence = _.isEqual(initialFormState, formFieldsState);\n let checkEquivalence = true;\n let disable =\n formFieldsState[TYPE] &&\n formFieldsState[PATHWAY_ID] &&\n formFieldsState[TITLE] &&\n formFieldsState[DESCRIPTION] &&\n formFieldsState[DESCRIPTION].length < 555;\n\n if (formFieldsState[TYPE] === \"batch\") {\n if (\n disable &&\n formFieldsState[ON_DAYS] &&\n (formFieldsState[UNTIL] || formFieldsState[OCCURRENCE])\n ) {\n checkEquivalence = false;\n }\n } else {\n if (disable) {\n checkEquivalence = false;\n }\n }\n\n return (\n <>\n \n \n \n \n \n\n \n \n \n {pathways.map((item, index) => {\n if (item.code == \"PRGPYT\" || item.code == \"SPKENG\") {\n return (\n \n {\n setPathwayCode(item.code);\n setPathwayId(e.target.value);\n setFormField(item.id, PATHWAY_ID);\n }}\n checked={\n pathwayId === `${item.id}` ? \"checked\" : false\n }\n id={`pathway-${index}`}\n />\n {item.name}\n \n );\n }\n })}\n \n
\n {!formFieldsState[PATHWAY_ID] && (\n \n Please choose a pathway\n \n )}\n {formFieldsState[TYPE] === \"doubt_class\" &&\n pathways.map((pathway) => {\n // this need to changes\n if (pathwayId == pathway.id) {\n return (\n \n \n {\n onCourseChange(e.target.value);\n setFormField(e.target.value, COURSE_ID);\n }}\n id=\"course_id\"\n >\n \n {pathway.courses.map((course) => {\n return (\n \n );\n })}\n \n \n );\n }\n })}\n {formFieldsState[TYPE] === \"doubt_class\" &&\n pathwayId &&\n formFieldsState[COURSE_ID] == \"\" && (\n Select a course\n )}\n {formFieldsState[COURSE_ID] && exercisesForSelectedCourse && (\n <>\n \n {\n setFormField(e.target.value, EXERCISE_ID);\n }}\n id=\"exercise_id\"\n >\n \n {(\n exercisesForSelectedCourse[formFieldsState[COURSE_ID]] ||\n []\n ).map((exercise) => {\n return (\n \n );\n })}\n \n \n )}\n \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n value={formFieldsState[TITLE]}\n id=\"title\"\n required\n aria-required\n />\n {!formFieldsState[TITLE] && (\n Title cannot be empty\n )}\n\n {/* {formFieldsState[PATHWAY_ID] !== 1 && (\n <> */}\n \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n value={formFieldsState[DESCRIPTION]}\n className={\n !formFieldsState[DESCRIPTION] ||\n formFieldsState[DESCRIPTION].length > 555\n ? \"textarea-field\"\n : \"textarea-field-without-validation\"\n }\n disabled={isEditMode && true}\n required\n aria-required\n />\n {!formFieldsState[DESCRIPTION] ? (\n \n Description cannot be empty\n \n ) : (\n formFieldsState[DESCRIPTION].length > 555 && (\n \n Description cannot be more than 555 character\n \n )\n )}\n {/* \n )} */}\n\n {canSpecifyFacilitator && (\n <>\n \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n id=\"facilitator_name\"\n disabled={isEditMode ? true : false}\n />\n \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n name={FACILITATOR_EMAIL}\n id=\"facilitator_email\"\n disabled={isEditMode ? true : false}\n />\n \n )}\n {\n return option.id === value.id;\n }}\n onChange={(e, newVal) => {\n setSelected_partner_id(newVal.id);\n }}\n name={PARTNER_ID}\n sx={{ width: 300, mb: \"30px\" }}\n renderInput={(params) => (\n \n )}\n />\n \n {\n changeHandler(e, setFormFieldsState, formFieldsState);\n }}\n id=\"start_time\"\n required\n aria-required\n />\n \n
\n \n {\n changeHandler(e, setFormFieldsState, formFieldsState);\n }}\n value={formFieldsState[CLASS_START_TIME]}\n id=\"class_start_time\"\n required\n aria-required\n />\n
\n
\n \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n value={formFieldsState[CLASS_END_TIME]}\n id=\"class_end_time\"\n required\n aria-required\n />\n
\n
\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n {formFieldsState[TYPE] === \"batch\" && (\n <>\n \n \n \n \n \n \n \n \n \n \n {formFieldsState[ON_DAYS].length == 0 && (\n Select days\n )}\n {matchDay && (\n \n Days does not match to selected date\n \n )}\n {/* \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n value={formFieldsState[UNTIL]}\n placeholder=\"Until when recurring classes\"\n disabled={isEditMode && !indicator ? true : false}\n required={\n formFieldsState[TYPE] === \"batch\" &&\n formFieldsState[OCCURRENCE] === \"\"\n ? true\n : false\n }\n />\n {!formFieldsState[UNTIL] && !formFieldsState[OCCURRENCE] && (\n Select date\n )} */}\n \n \n changeHandler(e, setFormFieldsState, formFieldsState)\n }\n disabled={true}\n value={formFieldsState[OCCURRENCE]}\n placeholder=\"How many recurring classes\"\n // disabled={isEditMode && !indicator ? true : false}\n required={\n formFieldsState[TYPE] === \"batch\" &&\n formFieldsState[UNTIL] === \"\"\n ? true\n : false\n }\n max={48}\n />\n \n )}\n {loading ? (\n
\n \n
\n ) : (\n \n {isEditMode ? `UPDATE CLASS` : \"Create Class\"}\n \n )}\n \n );\n }}\n \n
\n );\n}\nexport default Class;\n","export const TIME_CONSTANT = {\n CLASS_START_DATE: \"start_time\",\n CLASS_END_DATE: \"end_time\",\n CLASS_START_TIME: \"class_start_time\",\n CLASS_END_TIME: \"class_end_time\",\n};\n\nexport const CLASS_FIELDS = {\n TITLE: \"title\",\n DESCRIPTION: \"description\",\n FACILITATOR_NAME: \"facilitator_name\",\n FACILITATOR_EMAIL: \"facilitator_email\",\n START_TIME: \"start_time\",\n CLASS_START_TIME: \"class_start_time\",\n CLASS_END_TIME: \"class_end_time\",\n LANG: \"lang\",\n TYPE: \"type\",\n PATHWAY_ID: \"pathway_id\",\n COURSE_ID: \"course_id\",\n PARTNER_ID: \"partner_id\",\n EXERCISE_ID: \"slug_id\",\n MAX_ENROLMENT: \"max_enrolment\",\n FREQUENCY: \"frequency\",\n ON_DAYS: \"on_days\",\n OCCURRENCE: \"occurrence\",\n UNTIL: \"until\",\n SPACE_ID: \"space_id\",\n SCHEDULE: \"schedule\",\n};\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n display: \"flex\",\n maxWidth: \"352px\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n // margin: \"0px 4px 0px 4px\",\n padding: \"16px\",\n \"&:hover\": {\n boxShadow:\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\",\n },\n },\n spacing: {\n padding: \"12px 0\",\n },\n Buttons: {\n width: \"90%\",\n padding: \"0 20px\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n buttonGroup2: {\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr\",\n gridGap: \"10px\",\n },\n icons: {\n marginRight: \"15px\",\n },\n ModelBox: {\n margin: \"80px\",\n padding: \"16px\",\n borderRadius: \"8px\",\n },\n successModel: {\n alignItems: \"center\",\n align: \"center\",\n },\n FormCloseIcon: {\n cursor: \"pointer\",\n },\n NewVolunteerCardContainer: {\n width: \"100%\",\n padding: \"16px\",\n border: \"1px solid #CCA300\",\n borderRadius: \"8px\",\n margin: \"16px 0\",\n },\n NewVolunteerCardHeader: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n NewVolunteerCardCloseIcon: {\n cursor: \"pointer\",\n },\n successModel: {\n alignItems: \"center\",\n align: \"center\",\n },\n cardActions: {\n padding: \"0px !important\",\n alignItems: \"right\",\n justifyContent: \"flex-end\",\n },\n delete: {\n width: 113,\n margin: \"0px 8px 0px 8px\",\n color: \"#F44336\",\n },\n}));\n\nexport default useStyles;\n","/* eslint-disable no-unused-vars */\nimport {\n format as dateFnsFormat,\n isBefore as comesBefore,\n differenceInMinutes as minutesDifference,\n differenceInMilliseconds as msDifference,\n intervalToDuration,\n} from \"date-fns\";\nimport { zonedTimeToUtc } from \"date-fns-tz\";\nimport { formatInTimeZone as ftz } from \"date-fns-tz\";\n/**\n * Returns a copy of the given date if supplied a Date object input or a Date\n * object from the given timestamp.\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to make a new Date from\n * @return {Date} a copy of the inputted date or a new one from the timestamp\n */\nexport const makeDateFrom = (date) => {\n return typeof date === \"string\"\n ? new Date(zonedTimeToUtc(date).toISOString())\n : date;\n};\n\n/**\n * Wrapper for date-fns's isBefore but allows date strings\n * (See: https://date-fns.org/v2.28.0/docs/isBefore)\n * @param {Date|string} date A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date that should be before the other one to return true\n * @param {Date|string} dateToCompare A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to compare with\n * @return {Boolean} true exactly when the first date is before the second date\n */\nexport const isBefore = (date, dateToCompare) => {\n return comesBefore(makeDateFrom(date), makeDateFrom(dateToCompare));\n};\n\n/**\n * Returns true if the given date was in the past\n * @param {Date|string} date A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date that should be before now to return true\n * @return {Boolean} true exactly when date occurs before now\n */\nexport const isBeforeNow = (date) => {\n return isBefore(date, new Date());\n};\n\n/**\n * Returns the time left until the given date or a warning or expiration if the\n * date is within a specified amount of time at or before now\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to be formatted to determine the time remaining\n * @param {{expiredText: (string|undefined),\n * precision: (Array|undefined),\n * cutoffTextArr: (string|undefined),\n * cutoffNumArr: (Array|undefined)}=} options The options for the\n * string formatting. expiredText is what's shown if the Date is now or past.\n * precision[i] is the desired number of places to show when the ith item\n * in [years, months, days, hours, minutes, seconds] is the largest\n * non-zero unit in the time remaining (e.g., if precision[2] = 3), then\n * when the time remaining starts with days, days, minutes, and hours will\n * be displayed. cutoffTextArr[i] is what's shown if the largest nonzero unit\n * is at most cutoffNumArr[i].\n * @return {string} the time remaining or warning or expiration text\n */\nexport const timeLeftFormat = (\n date,\n {\n expiredText = \"expired\",\n precision = [6, 5, 4, 3, 2, 1],\n cutoffTextArr = [\n \"warning\",\n \"warning\",\n \"warning\",\n \"warning\",\n \"warning\",\n \"warning\",\n ],\n cutoffNumArr = [0, 0, 0, 0, 0, 0],\n } = {\n expiredText: \"expired\",\n precision: [6, 5, 4, 3, 2, 1],\n cutoffTextArr: [\n \"warning\",\n \"warning\",\n \"warning\",\n \"warning\",\n \"warning\",\n \"warning\",\n ],\n cutoffNumArr: [0, 0, 0, 0, 0, 0],\n }\n) => {\n const targetDate = makeDateFrom(date);\n const now = makeDateFrom(new Date());\n\n if (isBefore(targetDate, now)) {\n return expiredText;\n }\n\n const timeRemaining = intervalToDuration({\n start: now,\n end: targetDate,\n });\n const { years, months, days, hours, minutes, seconds } = timeRemaining;\n const units = [years, months, days, hours, minutes, seconds];\n const abbreviations = [\"yr\", \"mo\", \"day\", \"hr\", \"min\", \"sec\"];\n const indexOfLeadingUnit = units.findIndex((num) => num > 0);\n\n if (units[indexOfLeadingUnit] <= cutoffNumArr[indexOfLeadingUnit]) {\n return cutoffTextArr[indexOfLeadingUnit];\n } else {\n return units\n .slice(\n indexOfLeadingUnit,\n indexOfLeadingUnit + precision[indexOfLeadingUnit]\n )\n .map(\n (num, index) =>\n `${num} ${abbreviations[index + indexOfLeadingUnit]}${\n num !== 1 ? \"s\" : \"\"\n }`\n )\n .join(\" \");\n }\n};\n\n/**\n * Provides the local date and time strings of the provided date in Meraki's\n * standardized format (currently HH : mm and dd MMM, yyyy)\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to be formatted\n * @param {string} the string of tokens\n * @param {Object|undefined} an object with options\n * @return {{finalTime: string, finalDate: string}} the formatted date/time\n * strings or empty strings if the input is null or undefined\n */\nexport const dateTimeFormat = (date) => {\n if (date == null) {\n return { finalTime: \"\", finalDate: \"\" };\n }\n\n return {\n finalTime: format(date, \"HH : mm\"),\n finalDate: format(date, \"dd MMM, yyyy\"),\n };\n};\n\n/**\n * Wrapper for date-fns's differenceInMinutes but allows date strings\n * (See: https://date-fns.org/v2.28.0/docs/differenceInMinutes)\n * @param {Date|string} dateLeft A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or left Date in difference\n * @param {Date|string} dateRight A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or right Date in difference\n * @return {number} the signed number of full (rounded towards 0) minutes\n * between the given dates (dateLeft - dateRight minutes)\n */\nconst differenceInMinutes = (dateLeft, dateRight) => {\n return minutesDifference(makeDateFrom(dateLeft), makeDateFrom(dateRight));\n};\n\n/**\n * Gets the signed number of full (rounded towards 0) minutes from now until\n * given date (If the date occurs at least a full minute later, the number\n * will be positive; if it occurs at least a full minute earlier, it will\n * be negative.)\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to get the minutes until\n * @returns {number} the number of full minutes from now until date\n */\nexport const minutesUntil = (date) => {\n return differenceInMinutes(date, new Date());\n};\n\n/**\n * Wrapper for date-fns's differenceInMilliseconds but allows date strings\n * (See: https://date-fns.org/v2.28.0/docs/differenceInMilliseconds)\n * @param {Date|string} dateLeft A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or left Date in difference\n * @param {Date|string} dateRight A valid Date string recognized by\n * formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or right Date in difference\n * @return {number} the signed number of full milliseconds between the given\n * dates (dateLeft - dateRight seconds)\n */\nconst differenceInMilliseconds = (dateLeft, dateRight) => {\n return msDifference(makeDateFrom(dateLeft), makeDateFrom(dateRight));\n};\n\n/**\n * Gets the signed number of milliseconds from now until given date (If the\n * date occurs at least a millisecond later, the number will be positive;\n * if it occurs at least a millisecond earlier, it will be negative.)\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to get the milliseconds until\n * @returns {number} the (signed) number of milliseconds from now until date\n */\nexport const millisecondsUntil = (date) => {\n return differenceInMilliseconds(date, new Date());\n};\n\n/**\n * Returns a timestamp of the given date in the required back-end format\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to be formatted\n * @return {string} the serialized date (currently YYYY-MM-DDTHH:mm:ss.sssZ)\n * See: https://tc39.es/ecma262/#sec-date-time-string-format\n */\n// const serializeForBackEnd = (date) => {\n// return makeDateFrom(date).toISOString();\n// };\n\nconst formatInTimeZone = (date, timeZone, formatStr) => {\n return ftz(makeDateFrom(date), timeZone, formatStr);\n};\n\nexport const formatInUtc = (date, formatStr) => {\n return formatInTimeZone(date, \"UTC\", formatStr);\n};\n\n/**\n * Wrapper for the date-fns format function but allows date strings\n * (See: https://date-fns.org/v2.16.1/docs/format#arguments)\n * @param {Date|string} date A valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date to be formatted\n * @param {string} formatStr the string of tokens\n * @param {Object|undefined} options an object with options\n * @return {string} the formatted date string in the user's local time zone\n */\nexport const format = (date, formatStr, options) => {\n if (date) {\n const dateToFormat = makeDateFrom(date);\n return dateFnsFormat(dateToFormat, formatStr, options);\n } else {\n return \"\";\n }\n};\n\n// module.exports = { timeLeftFormat, format };\n","import React, { useState, useEffect } from \"react\";\nimport { timeLeftFormat } from \"../../../common/date\";\nimport { Button } from \"@mui/material\";\nimport ExternalLink from \"../../common/ExternalLink\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\n\nfunction ClassJoinTimerButton({\n startTime = new Date(),\n link,\n joinOnClick,\n buttonType,\n onCanJoin,\n}) {\n const ONE_SECOND = 1000; //millisecs\n const ONE_MINUTE = 60 * ONE_SECOND;\n const CAN_JOIN_MSG = \"Join Now\";\n // const TOO_LATE = \"less than a minute (too late to join)\";\n // const CLASS_PAST_START = \"progress or concluded (too late to join)\";\n const timeLeftFormatOptions = {\n expiredText: CAN_JOIN_MSG,\n precision: [2, 2, 2, 2, 1, 1],\n cutoffTextArr: [\"\", \"\", \"\", \"\", CAN_JOIN_MSG, CAN_JOIN_MSG],\n cutoffNumArr: [0, 0, 0, 0, 10, 60],\n };\n // const canJoin = () => minutesUntil(startTime) <= 10;\n const [timeRemainingMsg, setTimeRemainingMsg] = useState(\n timeLeftFormat(startTime, timeLeftFormatOptions)\n );\n\n useEffect(() => {\n if (timeRemainingMsg === CAN_JOIN_MSG) {\n onCanJoin && onCanJoin(true);\n }\n setTimeRemainingMsg(timeLeftFormat(startTime, timeLeftFormatOptions));\n const timer = setInterval(() => {\n const newTimeRemainingMsg = timeLeftFormat(\n startTime,\n timeLeftFormatOptions\n );\n setTimeRemainingMsg(newTimeRemainingMsg);\n if (newTimeRemainingMsg === CAN_JOIN_MSG) {\n clearInterval(timer); // can join so can dispose of timer now\n }\n }, ONE_MINUTE);\n return () => clearInterval(timer); // cleans up on unmount\n }, [startTime]);\n\n return (\n <>\n {timeRemainingMsg === CAN_JOIN_MSG ? (\n \n }\n onClick={joinOnClick ? joinOnClick : undefined}\n >\n {CAN_JOIN_MSG}\n \n \n ) : (\n }\n >\n Starts in {timeRemainingMsg}\n \n )}\n \n );\n}\n\nexport default ClassJoinTimerButton;\n","import React, { useEffect, useState } from \"react\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogContentText from \"@mui/material/DialogContentText\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport useStyles from \"./styles\";\nimport {\n MenuItem,\n Typography,\n FormControl,\n InputLabel,\n Select,\n} from \"@mui/material\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport { useSelector } from \"react-redux\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { toast } from \"react-toastify\";\n\ntoast.configure();\n\nfunction MergeClass({\n itemID,\n setRefreshKey,\n setClassRefresh,\n itemName,\n merge_date,\n}) {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n const [Mergeclassid, setMarginId] = useState();\n const [Mergeclasses, setMergeclasses] = useState([]);\n const user = useSelector(({ User }) => User);\n\n const handleClickOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const handleMerge = () => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/classes/upcoming/${merge_date}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n }).then((res) => {\n setMergeclasses(res.data);\n });\n };\n\n const handleSubmit = (e) => {\n // mergeClass put API\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/classes/${itemID}/mergeClass`,\n params: {\n classId: Mergeclassid,\n },\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n },\n }).then(() => {\n setRefreshKey(true);\n setClassRefresh(false);\n toast.success(\"You successfully merge classes.\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n });\n };\n const Pathwayfilter = Mergeclasses?.filter((item) => {\n return item.title !== itemName;\n });\n\n return (\n
\n {\n handleClickOpen();\n setClassRefresh(true);\n handleMerge();\n }}\n sx={{ width: 133, margin: \"0px 10px\" }}\n >\n Merge Class\n \n\n \n \n Merge Class\n \n \n \n \n \n Please choose another batch's class to add students of this class\n to it\n \n \n \n Merge to Class\n \n {\n setMarginId(e.target.value);\n }}\n >\n {Pathwayfilter?.length === 1 ? (\n No Batch \n ) : (\n Pathwayfilter?.map((item) => {\n return (\n item.id !== itemID && (\n \n {item.title}\n \n )\n );\n })\n )}\n \n \n \n The tutor and students will receive the updated class invitation\n \n \n \n \n {\n handleSubmit(itemID);\n handleClose();\n }}\n >\n Confirm Class Merge\n \n \n \n
\n );\n}\nexport default MergeClass;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\n// import { dateTimeFormat, TimeLeft } from \"../../../constant\";\n// import { timeLeftFormat } from \"../../common/date\";\n// import { format, dateTimeFormat, timeLeftFormat } from \"../../../common/date\";\nimport { METHODS } from \"../../services/api\";\nimport { actions as classActions } from \"./redux/action\";\nimport \"./styles.scss\";\nimport { toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { format, dateTimeFormat, timeLeftFormat } from \"../../common/date\";\n\nimport {\n Typography,\n Button,\n Box,\n Stack,\n Menu,\n MenuItem,\n Checkbox,\n Dialog,\n DialogTitle,\n DialogActions,\n} from \"@mui/material\";\n// import { useHistory } from 'react-router-dom';\nimport MoreVertIcon from \"@mui/icons-material/MoreVert\";\nimport MergeClass from \"./MergeClass\";\n\ntoast.configure();\n\nfunction EditClass({\n item,\n editClass,\n Newpathways,\n pathwayId,\n indicator,\n setRefreshKey,\n mergeDate,\n}) {\n const dispatch = useDispatch();\n const [enrollShowModal, setEnrollShowModal] = React.useState(false);\n const [unenrollShowModal, setunenrollShowModal] = React.useState(false);\n const [showModal, setShowModal] = React.useState(false);\n const [editShowModal, setEditShowModal] = React.useState(false);\n const [deleteCohort, setDeleteCohort] = React.useState(false);\n const user = useSelector(({ User }) => User);\n const [anchorElUser, setAnchorElUser] = React.useState(null);\n const [classRefresh, setClassRefresh] = useState(false);\n\n const handleOpenUserMenu = (event) => {\n event.stopPropagation();\n setAnchorElUser(event.currentTarget);\n };\n\n const handleClose = () => {\n setShowModal(false);\n setDeleteCohort(false);\n };\n\n const handleEdit = () => {\n setEditShowModal(true);\n setAnchorElUser(null);\n };\n\n const handleCloseEdit = (e) => {\n e.stopPropagation();\n setEditShowModal(false);\n };\n\n const handleClickOpen = () => {\n setShowModal(!showModal);\n\n setAnchorElUser(null);\n };\n\n const handleClickOpenUnenroll = () => {\n setunenrollShowModal(!unenrollShowModal);\n\n setAnchorElUser(null);\n };\n\n const rolesList = user.data.user.rolesList;\n let flag = false;\n rolesList.includes(\"admin\") || rolesList.includes(\"classAdmin\")\n ? (flag = true)\n : (flag = false);\n\n // API CALL FOR DELETE CLASS\n const deleteHandler = (id) => {\n const notify = () => {\n toast.success(\" Deleted the class successfully\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n };\n setShowModal(!showModal);\n return axios({\n method: METHODS.DELETE,\n url: `${process.env.REACT_APP_MERAKI_URL}/classes/${id}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n \"delete-all\": indicator,\n },\n }).then(() => {\n setRefreshKey(true);\n notify();\n dispatch(classActions.deleteClass(id));\n });\n };\n\n const ACBPathway = Newpathways?.find((path) => {\n return item?.PartnerSpecificBatches?.pathway_id === path.id;\n });\n\n const merge_date = format(item.start_time, \"yyyy-MM-dd\");\n\n return (\n <>\n \n\n {/* dialog box for edit delete and merge class */}\n {\n setAnchorElUser(null);\n }}\n >\n {(item?.facilitator?.email === user.data.user.email || flag) && (\n <>\n {\n e.stopPropagation();\n handleEdit();\n }}\n sx={{ width: 133, margin: \"0px 10px\" }}\n >\n Edit\n \n\n {ACBPathway?.code === \"ACB\" && !item?.merge_class && (\n \n )}\n {\n handleClickOpen();\n e.stopPropagation();\n }}\n sx={{ width: 133, margin: \"0px 10px\", color: \"#F44336\" }}\n >\n Delete\n \n \n )}\n\n {!rolesList.includes(\"volunteer\") && item.enrolled && (\n handleClickOpenUnenroll()}\n sx={{ width: 120, margin: \"0px 10px\" }}\n >\n Dropout\n \n )}\n \n\n \n {/* dialog box for delete button */}\n {showModal ? (\n \n \n \n Are you sure you want to delete this class?\n \n \n {/* {(item.type === \"cohort\" || item.type === \"batch\") && (\n \n {\n setDeleteCohort(true);\n }}\n />\n }\n label=\"Delete all classes of this Batch?\"\n />\n \n )} */}\n \n \n \n {\n e.stopPropagation();\n return deleteHandler(item.id);\n }}\n color=\"error\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n No\n \n \n \n \n \n ) : null}\n {/* dialog box for edit class*/}\n {editShowModal ? (\n \n \n \n Do you want to edit this class?\n \n \n\n \n \n \n {\n e.stopPropagation();\n setEditShowModal(false);\n\n return editClass(item.id, indicator);\n }}\n color=\"primary\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n Cancel\n \n \n \n \n \n ) : null}\n {/* dialog box for enroll class */}\n \n \n );\n}\nexport default EditClass;\n","import React from \"react\";\nimport { Typography, Box, Stack } from \"@mui/material\";\nimport useStyles from \"./styles\";\n\nfunction SuccessModel({ successModalMsg, classType }) {\n const classes = useStyles();\n return (\n \n \n \n \"img\"\n \n {`The ${\n classType == \"batch\" ? classType : \"doubt class\"\n } has been ${successModalMsg} successfully`}\n \n \n \n
\n );\n}\n\nexport default SuccessModel;\n\n// const SuccessModel = () => {\n// const classes = useStyles();\n// return (\n// \n// \n// \"img\"\n// \n// The batch has been created successfully\n// \n// \n// \n// );\n// };\n","import React from \"react\";\nimport {\n Box,\n Typography,\n Container,\n Stack,\n TextField,\n Grid,\n Button,\n} from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport moment from \"moment\";\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { DesktopTimePicker } from \"@mui/x-date-pickers/DesktopTimePicker\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { CircularProgress } from \"@mui/material\";\n\nfunction EditdateForm({\n classFields,\n classToEdit,\n setClassFields,\n changeHandler,\n submitHandle,\n buttonDisabled,\n setShowModal,\n isEditMode,\n setIsEditMode,\n loading,\n}) {\n const classes = useStyles();\n\n return (\n <>\n \n \n \n \n \n Update Class Details\n \n \n \n {\n setShowModal(false);\n setIsEditMode(false);\n }}\n />\n \n \n \n Batch Name\n \n \n {classToEdit.title}\n \n \n Class Name\n \n \n {classToEdit.sub_title}\n \n {\n changeHandler(e);\n }}\n InputLabelProps={{ shrink: true }}\n />\n \n Class Time\n \n \n {[\n { label: \"Start Time\", prop: \"start_time\" },\n { label: \"End Time\", prop: \"end_time\" },\n ].map(({ label, prop }) => (\n \n {/* same time for every class */}\n \n \n {\n setClassFields({\n ...classFields,\n [prop]: time,\n });\n }}\n minTime={\n classFields.date === moment().format(\"YYYY-MM-DD\")\n ? new Date(new Date().setSeconds(0))\n : null\n }\n renderInput={(params) => }\n />\n \n \n \n ))}\n \n {loading ? (\n
\n \n
\n ) : (\n \n Update Class Details\n \n )}\n \n
\n \n );\n}\nexport default EditdateForm;\n","import React, { useEffect, useState } from \"react\";\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { DesktopTimePicker } from \"@mui/x-date-pickers/DesktopTimePicker\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport { lang } from \"../../constant\";\nimport useStyles from \"./styles\";\nimport { METHODS } from \"../../services/api\";\nimport axios from \"axios\";\nimport { versionCode } from \"../../constant\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { CircularProgress, FormHelperText } from \"@mui/material\";\nimport { actions as pathwayActions } from \"./../PathwayCourse/redux/action\";\n\nimport {\n Typography,\n Grid,\n Button,\n Box,\n Stack,\n Autocomplete,\n Checkbox,\n FormGroup,\n Radio,\n RadioGroup,\n TextField,\n FormControl,\n FormControlLabel,\n FormLabel,\n MenuItem,\n Select,\n InputLabel,\n} from \"@mui/material\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport moment from \"moment\";\nimport { formatInUtc } from \"../../common/date\";\nimport _ from \"lodash\";\nimport SuccessModel from \"./SuccessModel\";\nimport EditdateForm from \"./EditdateForm\";\nimport { set } from \"date-fns\";\n\nfunction ClassForm({\n isEditMode,\n setShowModal,\n classToEdit,\n indicator,\n formType,\n setIsEditMode,\n Newpathways,\n setNewPathways,\n singleTime,\n setRefreshKey,\n}) {\n const user = useSelector(({ User }) => User);\n const [partnerPathwayId, setPartnerPathwayId] = useState();\n const [volunteer, setVolunteer] = useState([]);\n\n const [classFields, setClassFields] = useState({\n category_id: 3,\n title: classToEdit?.title || \"\",\n partner_id: classToEdit?.partner_id || [],\n date: classToEdit.start_time\n ? moment.utc(classToEdit.start_time.split(\"T\")[0]).format(\"YYYY-MM-DD\")\n : moment.utc(new Date()).format(\"YYYY-MM-DD\"),\n on_days: classToEdit.parent_class\n ? classToEdit.parent_class?.on_days?.split(\",\")\n : [],\n start_time: classToEdit?.start_time\n ? new Date(classToEdit?.start_time)\n : new Date(new Date().setSeconds(0)),\n end_time: classToEdit?.end_time\n ? new Date(classToEdit?.end_time)\n : new Date(new Date().setTime(new Date().getTime() + 1 * 60 * 60 * 1000)),\n lang: classToEdit?.lang || \"en\",\n max_enrolment:\n classToEdit?.max_enrolment == null\n ? \"No Limit\"\n : classToEdit?.max_enrolment || \"10\",\n frequency: classToEdit?.parent_class\n ? classToEdit.parent_class.frequency\n : \"WEEKLY\",\n description: classToEdit.description\n ? classToEdit.description\n : formType === \"batch\"\n ? \"abc\"\n : \"\",\n type: classToEdit.type || formType,\n pathway_id:\n classToEdit?.PartnerSpecificBatches?.pathway_id?.[0] ||\n classToEdit?.pathway_v2?.[0] ||\n partnerPathwayId?.[0],\n volunteer_id: classToEdit?.volunteer_id || \"\",\n facilitator_name: classToEdit?.facilitator?.name || \"\",\n space_id: classToEdit?.id || \"\",\n schedule: classToEdit?.schedule || {},\n });\n\n const [display, setDisplay] = useState(false);\n const [matchDay, setMatchDay] = useState(false);\n const [partnerData, setPartnerData] = useState([]);\n const [exercisesForSelectedCourse, setExercisesForSelectedCourse] = useState(\n []\n );\n const [tutorPathwayId, setTutorPathwayId] = useState([]);\n const [selectedPartners, setSelectedPartners] = useState([]);\n const [loading, setLoading] = useState(false);\n const [successModalMsg, setSuccessModalMsg] = useState(\"create\");\n const [showSuccessModal, setShowSuccessModal] = useState(false);\n const [buttonDisabled, setButtonDisabled] = useState(true);\n const [showError, setShowError] = useState({\n title: false,\n partner: false,\n days: false,\n course: false,\n exercise: false,\n description: false,\n });\n const [helperText, setHelperText] = useState({\n title: \"\",\n partner: \"\",\n course: \"\",\n exercise: \"\",\n description: \"\",\n });\n const [onInput, setOnInput] = useState({\n title: false,\n partner: false,\n course: false,\n exercise: false,\n description: false,\n });\n const [onSpace, setOnSpace] = useState([]);\n const [selectSpace, setSelectSpace] = useState([]);\n const [checked, setChecked] = useState(true);\n //getting pathway courses\n const dispatch = useDispatch();\n const data = useSelector((state) => {\n return state;\n });\n\n const handleTimeCheckedChange = (event) => {\n setChecked(!checked);\n };\n\n useEffect(() => {\n dispatch(pathwayActions.getPathwaysCourse({ pathwayId: 1 }));\n }, [dispatch]);\n\n //For title error field (batch and doubt class)\n useEffect(() => {\n if (onInput.title === true && classFields.title === \"\") {\n setShowError((prev) => {\n return { ...prev, title: true };\n });\n setHelperText((prev) => {\n if (classFields.type === \"batch\") {\n return { ...prev, title: \"Please enter a batch name\" };\n } else {\n return { ...prev, title: \"Please enter a class title\" };\n }\n });\n } else {\n setShowError((prev) => {\n return { ...prev, title: false };\n });\n setHelperText((prev) => {\n return { ...prev, title: \"\" };\n });\n }\n }, [classFields.title]);\n\n //For partner error field (batch only)\n useEffect(() => {\n if (classFields.type == \"batch\") {\n if (onInput.partner && classFields.partner_id.length === 0) {\n setShowError((prev) => {\n return { ...prev, partner: true };\n });\n setHelperText((prev) => {\n return { ...prev, partner: \"Please select one or more partners\" };\n });\n } else {\n setShowError((prev) => {\n return { ...prev, partner: false };\n });\n setHelperText((prev) => {\n return { ...prev, partner: \"\" };\n });\n }\n }\n }, [classFields.partner_id?.length]);\n useEffect(() => {\n setClassFields((prev) => {\n return { ...prev, pathway_id: partnerPathwayId?.[0] };\n });\n }, [partnerPathwayId]);\n\n //For course error field (doubt class only)\n useEffect(() => {\n if (onInput.course && !classFields.course_id) {\n setShowError((prev) => {\n return { ...prev, course: true };\n });\n setHelperText((prev) => {\n return { ...prev, course: \"Please select a course\" };\n });\n } else {\n setShowError((prev) => {\n return { ...prev, course: false };\n });\n setHelperText((prev) => {\n return { ...prev, course: \"\" };\n });\n }\n }, [classFields.course_id, onInput.course]);\n\n //For exercise error field (doubt class only)\n useEffect(() => {\n if (onInput.exercise && !classFields.slug_id && classFields.course_id) {\n setShowError((prev) => {\n return { ...prev, exercise: true };\n });\n setHelperText((prev) => {\n return {\n ...prev,\n exercise: \"Please select an exercise for the above course\",\n };\n });\n } else {\n setShowError((prev) => {\n return { ...prev, exercise: false };\n });\n setHelperText((prev) => {\n return { ...prev, exercise: \"\" };\n });\n }\n }, [classFields.slug_id, onInput.exercise]);\n\n //For description error field (doubt class only)\n useEffect(() => {\n if (onInput.description && !classFields.description) {\n setShowError((prev) => {\n return { ...prev, description: true };\n });\n setHelperText((prev) => {\n return {\n ...prev,\n description: \"Please enter a short description of the class\",\n };\n });\n } else if (onInput.description && classFields.description.length > 555) {\n setShowError((prev) => {\n return { ...prev, description: true };\n });\n setHelperText((prev) => {\n return {\n ...prev,\n description: `Word limit exceeded by ${\n classFields.description.length - 555\n } characters`,\n };\n });\n } else {\n setShowError((prev) => {\n return { ...prev, description: false };\n });\n setHelperText((prev) => {\n return { ...prev, description: \"\" };\n });\n }\n }, [classFields.description]);\n\n //For disabled button (batch and doubt class)\n useEffect(() => {\n if (classFields.type === \"batch\") {\n if (\n classFields.title !== \"\" &&\n classFields.partner_id?.length > 0 &&\n classFields.on_days?.length > 0 &&\n (checked\n ? Object.keys(classFields.schedule).length === 0\n : Object.keys(classFields.schedule).length > 1)\n ) {\n setButtonDisabled(false);\n } else {\n setButtonDisabled(true);\n }\n } else {\n if (\n classFields.title !== \"\" &&\n ((classFields.course_id && classFields.slug_id) ||\n classFields.pathway_id) &&\n classFields.description &&\n classFields.description.length < 555 &&\n (checked\n ? Object.keys(classFields.schedule).length === 0\n : Object.keys(classFields.schedule).length > 1)\n ) {\n setButtonDisabled(false);\n } else {\n setButtonDisabled(true);\n }\n }\n }, [\n classFields.title,\n classFields.partner_id?.length,\n classFields.on_days?.length,\n classFields.start_time,\n classFields.end_time,\n classFields.course_id,\n classFields.slug_id,\n classFields.description,\n checked,\n classFields.schedule,\n ]);\n\n const courses =\n data?.Pathways?.pathwayCourse?.data?.courses?.map((item) => {\n return {\n label: item.name,\n value: item.id,\n };\n }) || [];\n\n const selectedCourseLabel = courses.find(\n (item) => item.value === classFields.course_id\n );\n\n const selectedExerciseLabel = exercisesForSelectedCourse.find(\n (item) => item.id === classFields.slug_id\n );\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const capEnrollment = [\"No Limit\", 10, 20, 30];\n const days = {\n MO: \"Mon\",\n TU: \"Tue\",\n WE: \"Wed\",\n TH: \"Thu\",\n FR: \"Fri\",\n SA: \"Sat\",\n SU: \"Sun\",\n };\n const formultipleDays = {\n MO: \"Monday\",\n TU: \"Tuesday\",\n WE: \"Wednesday\",\n TH: \"Thursday\",\n FR: \"Friday\",\n SA: \"Saturday\",\n SU: \"Sunday\",\n };\n const commonElements = Object.keys(formultipleDays).filter((element) =>\n classFields.on_days.includes(element)\n );\n const filteredDayValues = commonElements.map((key) => formultipleDays[key]);\n\n function convert24To00(timeString) {\n // If the input is \"24:xx:xx\", convert \"24\" to \"00\" and keep the rest unchanged\n if (timeString.startsWith(\"24:\")) {\n return `00${timeString.substring(2)}`;\n }\n\n return timeString;\n }\n\n const changeHandler = (e) => {\n setClassFields({ ...classFields, [e.target.name]: e.target.value });\n };\n\n const handleDaySelection = (e) => {\n const index = classFields.on_days.indexOf(e.target.value);\n if (index === -1) {\n setClassFields({\n ...classFields,\n [\"on_days\"]: [...classFields.on_days, e.target.value],\n });\n } else {\n const dayDeleted = classFields.on_days.filter(\n (selectedDay) => selectedDay !== e.target.value\n );\n setClassFields({ ...classFields, [\"on_days\"]: dayDeleted });\n }\n };\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n const partners = res.data.partners.map((item, index) => {\n return {\n label: item.name,\n id: item.id,\n };\n });\n setPartnerData(partners);\n })\n .catch((err) => {});\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/volunteers`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n const volunteers = res?.data?.map((item, index) => {\n return {\n label: item.name,\n id: item.volunteer_id,\n pathway_id: item.pathway_id,\n };\n });\n setVolunteer(volunteers);\n })\n .catch((err) => {});\n }, []);\n\n useEffect(() => {\n let datass = partnerData.filter((item) => {\n return classFields.partner_id.includes(item.id);\n });\n setSelectedPartners(datass);\n }, [partnerData]);\n\n const convertToIST = (d) => {\n const b = d.split(/\\D+/);\n const dateInObj = new Date(\n Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], b[6])\n );\n const utc = dateInObj.getTime() + dateInObj.getTimezoneOffset() * 60000;\n return new Date(utc + 3600000 * +5.5).toISOString();\n };\n\n const createClass = (payload) => {\n setLoading(true);\n if (checked) {\n payload.start_time = classFields.start_time;\n payload.end_time = classFields.end_time;\n }\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/classes`,\n method: METHODS.POST,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n \"version-code\": versionCode,\n role: \"volunteer\",\n },\n data: {\n ...payload,\n },\n })\n .then(\n (res) => {\n if (res.status === 200) {\n setRefreshKey(true);\n setLoading(false);\n setShowSuccessModal(true);\n setSuccessModalMsg(\"created\");\n setTimeout(() => {\n setShowSuccessModal(false);\n setShowModal(false);\n }, 2000);\n }\n },\n (error) => {\n setLoading(false);\n }\n )\n .catch((err) => {});\n };\n\n const editClass = (payload) => {\n setLoading(true);\n\n payload.start_time = classFields.start_time;\n payload.end_time = classFields.end_time;\n\n return axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/classes/${classToEdit.id}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n \"version-code\": versionCode,\n \"update-all\": indicator,\n },\n data: payload,\n }).then(\n (res) => {\n if (res.status === 200) {\n setRefreshKey(true);\n setLoading(false);\n setShowSuccessModal(true);\n setSuccessModalMsg(\"edited\");\n // setSingleTime(true);\n setTimeout(() => {\n setShowSuccessModal(false);\n setShowModal(false);\n }, 2000);\n }\n },\n (error) => {\n setLoading(false);\n // setSingleTime(!singleTime);\n }\n );\n };\n\n const onCourseChange = (courseId) => {\n setClassFields({ ...classFields, course_id: courseId });\n\n if (exercisesForSelectedCourse.length > 0) {\n return;\n }\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/courses/${courseId}/content/slug?lang=en`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n const filteredExercises = res.data.course.course_content.filter(\n (exercise) => exercise.content_type === \"exercise\"\n );\n setExercisesForSelectedCourse(filteredExercises);\n })\n .catch((err) => {});\n };\n\n const onExerciseChange = (exerciseId) => {\n setClassFields({ ...classFields, slug_id: exerciseId });\n };\n\n const checkForDoubtClass =\n classFields.type === \"doubt_class\" &&\n classFields.course_id !== \"\" &&\n classFields.slug_id !== \"\" &&\n classFields.title !== \"\" &&\n classFields.description !== \"\" &&\n classFields.start_time !== \"\" &&\n classFields.end_time !== \"\"\n ? false\n : true;\n\n const submitHandle = () => {\n const weekDday = Object.values(classFields.on_days);\n if (classFields.type === \"batch\") {\n let incrementedDate = new Date(classFields.date);\n let onDay = incrementedDate.toString().split(\" \")[0];\n let flag = false;\n let firstDay = \"\";\n for (let i in days) {\n for (let k in days) {\n if (onDay === days[k]) {\n flag = true;\n }\n if (flag) {\n for (let j of weekDday) {\n if (days[j] === days[k]) {\n flag = false;\n firstDay = j;\n setMatchDay(false);\n break;\n } else {\n setMatchDay(true);\n }\n }\n }\n }\n }\n const index = weekDday.indexOf(firstDay);\n if (days[firstDay] !== onDay) {\n let newDate;\n var i = 1;\n while (i <= 7) {\n incrementedDate = moment(incrementedDate).add(1, \"days\")._d;\n let Day = incrementedDate.toString().split(\" \")[0];\n if (days[weekDday[index]] === Day) {\n newDate = incrementedDate;\n break;\n }\n i = i + 1;\n }\n // Fields.date = moment.utc(newDate).format(\"YYYY-MM-DD\");\n classFields.date = formatInUtc(newDate, \"yyyy-MM-dd\");\n } else {\n classFields.date = classFields.date;\n }\n } else {\n classFields.date = classFields.date;\n }\n\n //deleting partner_id when it's length is 0\n if (classFields.partner_id.length === 0) delete classFields.partner_id;\n\n const commonFields = [\n \"title\",\n \"description\",\n \"start_time\",\n \"end_time\",\n \"category_id\",\n \"pathway_id\",\n \"lang\",\n \"type\",\n \"volunteer_id\",\n \"space_id\",\n ];\n\n let payload;\n if (classFields.type === \"doubt_class\") {\n delete classFields.space_id;\n\n payload = _.pick(classFields, [\n ...commonFields,\n \"course_id\",\n \"slug_id\",\n \"partner_id\",\n ]);\n } else if (classFields.type === \"batch\") {\n if (classFields.pathway_id != 7) {\n delete classFields.space_id;\n }\n payload = _.pick(classFields, [\n ...commonFields,\n \"partner_id\",\n \"frequency\",\n \"on_days\",\n ]);\n }\n if (classFields.max_enrolment != \"No Limit\") {\n //add max_enrolment field only if it is not No Limit\n payload.max_enrolment = classFields.max_enrolment;\n } else {\n delete classFields.max_enrolment;\n }\n\n //deleting partner_id when it's length is 0\n if (classFields.partner_id.length === 0) delete classFields.partner_id;\n\n if (checked) {\n // same time for differnt days\n //taking hours and minues from the time\n classFields.start_time = `${classFields.start_time.getHours()}:${classFields.start_time.getMinutes()}`;\n\n classFields.end_time = `${classFields.end_time.getHours()}:${classFields.end_time.getMinutes()}`;\n\n //combining time and date\n const classStartTime = moment(\n `${classFields.date} ${classFields.start_time}`\n );\n const classEndTime = moment(\n `${classFields.date} ${classFields.end_time}`\n );\n\n if (classStartTime.valueOf() >= classEndTime.valueOf()) {\n } //checking start time is greater than end time\n\n //deleting date as we have combined with time and we don't want date separately\n delete classFields.date;\n // delete classFields[date];\n\n //adding combined date and time to start_time and end_time\n classFields.start_time = `${moment(classStartTime).format(\n \"YYYY-MM-DDTHH:mm:ss\"\n )}Z`;\n classFields.end_time = `${moment(classEndTime).format(\n \"YYYY-MM-DDTHH:mm:ss\"\n )}Z`;\n } else {\n // timing for multiple days\n //taking first key value from schedule object\n const startDate = new Date();\n const startend =\n classFields.schedule[Object.keys(classFields.schedule)[0]];\n const endDate = new Date();\n\n startDate.setHours(startend.startTime.split(\":\")[0]);\n startDate.setMinutes(startend.startTime.split(\":\")[1]);\n endDate.setHours(startend?.endTime?.split(\":\")[0]);\n endDate.setMinutes(startend.endTime.split(\":\")[1]);\n const originalStartString = moment(startDate).format(\n \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\"\n );\n const tStartIndex = originalStartString.toUpperCase().indexOf(\"T\"); //finding index of T\n const modifiedStartDateString =\n tStartIndex !== -1\n ? `${classFields.date}T${originalStartString.substring(\n tStartIndex + 1\n )}`\n : originalStartString; //combining time and date\n\n const originalEndString = moment(endDate).format(\n \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\"\n );\n //combining time and date with T and Z format for end time and start time\n\n const tEndIndex = originalEndString.toUpperCase().indexOf(\"T\");\n const modifiedEndDateString =\n tEndIndex !== -1\n ? `${classFields.date}T${originalEndString.substring(tEndIndex + 1)}`\n : originalEndString;\n\n payload = {\n ...classFields,\n start_time: modifiedStartDateString,\n end_time: modifiedEndDateString,\n }; //adding start time and end time to payload\n\n delete payload.date;\n checked && delete payload.schedule; //deleting date and schedule from payload\n }\n if (!indicator && isEditMode) {\n delete payload.schedule;\n delete payload.frequency;\n // delete payload.partner_id;\n // delete payload.type;\n delete payload.volunteer_id;\n delete payload.description;\n delete payload.title;\n delete payload.on_days;\n delete payload.category_id;\n delete payload.lang;\n }\n\n (!isEditMode ? createClass : editClass)(payload);\n };\n const handleFocus = (event) => {\n event.preventDefault();\n const { target } = event;\n if (classFields.title === \"\") {\n setDisplay(true);\n }\n };\n useEffect(() => {\n if (\n selectedPartners.length === 1 &&\n selectedPartners[0].label.toLocaleLowerCase() ===\n \"amazon coding bootcamp\".toLocaleLowerCase()\n ) {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/space/${selectedPartners[0].id}`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n const space = res.data.data.map((item) => {\n return {\n label: item.space_name,\n id: item.id,\n };\n });\n setOnSpace(space);\n })\n .catch((err) => {});\n }\n }, [selectedPartners]);\n\n const pathwayName = partnerPathwayId?.map((item) => {\n const pathway = Newpathways.find((pathway) => pathway.id === item);\n return { id: pathway.id, label: pathway.name };\n });\n\n const sortedData =\n partnerPathwayId?.length && [...pathwayName].sort((a, b) => a.id - b.id);\n const partnerFormattedData =\n partnerPathwayId?.length &&\n sortedData\n .map((item) => item.label)\n .join(\", \")\n .replace(/,([^,]*)$/, \" and$1\");\n\n const pathwayData = Newpathways.find((item) => {\n return item.id === classFields.pathway_id;\n });\n\n useEffect(() => {\n if (pathwayData?.code === \"ACB\") {\n const amazonCodingBootcamp = partnerData.find(\n (partner) => partner.label?.toLowerCase() === \"amazon coding bootcamp\"\n );\n if (amazonCodingBootcamp) {\n setSelectedPartners([amazonCodingBootcamp]);\n setClassFields({\n ...classFields,\n [\"partner_id\"]: [amazonCodingBootcamp.id],\n });\n }\n }\n }, [pathwayData, partnerData]);\n\n return (\n <>\n {showSuccessModal ? (\n \n ) : !singleTime ? (\n \n \n \n \n \n {(isEditMode ? \"Update \" : \"Create \") +\n (classFields.type == \"batch\" ? \"Batch\" : \"Doubt Class\")}\n \n \n \n {\n setShowModal(false);\n setIsEditMode(false);\n // setSingleTime(true);\n }}\n />\n \n \n {\n return option.id === value.id;\n }}\n onChange={(e, newVal) => {\n setTutorPathwayId(newVal?.pathway_id);\n setPartnerPathwayId(newVal?.pathway_id);\n setClassFields((prev) => {\n return {\n ...prev,\n volunteer_id: newVal?.id,\n facilitator_name: newVal?.label,\n };\n });\n }}\n freeSolo\n renderInput={(params) => (\n {\n // setOnInput((prev) => {\n // return { ...prev, partner: true };\n // });\n }}\n helperText={helperText.partner}\n variant=\"outlined\"\n label=\"For Tutor\"\n />\n )}\n />\n {partnerPathwayId && classFields.type === \"batch\" && (\n \n {`The tutor has opted to teach ${partnerFormattedData} learning track.`}\n \n )}\n\n {partnerPathwayId?.length >= 2 && (\n <>\n \n Learning Track\n \n\n \n {\n setClassFields({\n ...classFields,\n pathway_id: parseInt(e.target.value),\n });\n }}\n sx={{ marginBottom: \"16px\" }}\n >\n {sortedData.map((item, index) => (\n }\n label={item.label}\n labelPlacement=\"end\"\n />\n ))}\n \n \n \n )}\n\n {classFields.type !== \"batch\" &&\n tutorPathwayId &&\n !tutorPathwayId.includes(7) && (\n \n Courses\n {\n setOnInput((prev) => {\n return { ...prev, course: true };\n });\n }}\n value={selectedCourseLabel?.label}\n onChange={(e) => {\n onCourseChange(e.target.value);\n }}\n >\n {data?.Pathways?.pathwayCourse?.data?.courses?.map(\n (course) => {\n return (\n \n {course.name}\n \n );\n }\n )}\n \n {helperText.course}\n \n )}\n {classFields.type !== \"batch\" &&\n tutorPathwayId &&\n !tutorPathwayId.includes(7) && (\n \n \n Exercises\n \n {\n setOnInput((prev) => {\n return { ...prev, exercise: true };\n });\n }}\n disabled={exercisesForSelectedCourse.length === 0}\n value={selectedExerciseLabel?.label}\n onChange={(e) => {\n onExerciseChange(e.target.value);\n }}\n >\n {exercisesForSelectedCourse &&\n exercisesForSelectedCourse.map((exercise) => {\n return (\n \n {exercise.name}\n \n );\n })}\n \n {helperText.exercise}\n \n )}\n\n {\n setOnInput((prev) => {\n return { ...prev, title: true };\n });\n }}\n id=\"outlined-error-helper-text\"\n fullWidth\n label={`${\n classFields.type === \"batch\" ? \"Batch Name\" : \"Class Title\"\n }`}\n name=\"title\"\n value={classFields.title}\n helperText={helperText.title}\n onChange={(e) => {\n changeHandler(e);\n }}\n />\n {classFields.type === \"batch\" && (\n \n We will automatically create 28 classes for a Python batch with\n titles and descriptions\n \n )}\n {/* {classFields.type === \"batch\" && ( */}\n \n {\n return option.id === value.id;\n }}\n onChange={(e, newVal) => {\n setSelectedPartners(newVal);\n setClassFields({\n ...classFields,\n [\"partner_id\"]: newVal.map((item) => item.id),\n });\n }}\n freeSolo\n renderInput={(params) => (\n {\n setOnInput((prev) => {\n return { ...prev, partner: true };\n });\n }}\n helperText={helperText.partner}\n variant=\"outlined\"\n label=\"For Partner\"\n />\n )}\n />\n \n {/* )} */}\n\n {classFields.type === \"batch\" &&\n selectedPartners.length === 1 &&\n selectedPartners[0].label === \"amazon coding bootcamp\" && (\n {\n return option.id === value.id;\n }}\n onChange={(e, newVal) => {\n setSelectSpace(newVal);\n setClassFields({\n ...classFields,\n [\"space_id\"]: newVal.id,\n });\n }}\n freeSolo\n renderInput={(params) => (\n {\n setOnInput((prev) => {\n return { ...prev, partner: true };\n });\n }}\n helperText={helperText.partner}\n variant=\"outlined\"\n label=\"For Group\"\n />\n )}\n />\n )}\n\n {classFields.type === \"batch\" && (\n \n This batch will be visible to students of only this partner\n \n )}\n {classFields.type !== \"batch\" && (\n {\n setOnInput((prev) => {\n return { ...prev, description: true };\n });\n }}\n helperText={helperText.description}\n multiline\n rows={3}\n fullWidth\n onChange={(e) => {\n changeHandler(e);\n }}\n />\n )}\n {\n changeHandler(e);\n }}\n InputLabelProps={{ shrink: true }}\n />\n {classFields.type === \"batch\" && (\n <>\n \n \n Schedule on days\n \n \n \n {Object.keys(days).map((item) => (\n \n }\n onClick={() => {\n setOnInput((prev) => {\n return { ...prev, days: true };\n });\n }}\n label={item}\n labelPlacement={item}\n />\n ))}\n \n {classFields.on_days?.length === 0 && onInput.days ? (\n \n Please select atleast one day\n \n ) : null}\n \n )}\n \n Class Timings\n \n \n }\n label=\"Keep the class timings same for all days\"\n sx={{ marginBottom: \"16px\" }}\n />\n\n {checked ? (\n \n {[\n { label: \"Start Time\", prop: \"start_time\" },\n { label: \"End Time\", prop: \"end_time\" },\n ].map(({ label, prop }) => (\n \n {/* same time for every class */}\n \n \n {\n setClassFields({\n ...classFields,\n [prop]: time,\n });\n }}\n minTime={\n classFields.date === moment().format(\"YYYY-MM-DD\")\n ? new Date(new Date().setSeconds(0))\n : null\n }\n renderInput={(params) => }\n />\n \n \n \n ))}\n \n ) : (\n classFields.on_days?.map((item, index) => (\n <>\n {/* change time day wise */}\n \n {filteredDayValues[index]} Time\n \n {\n \n {[\n { label: \"Start Time\", prop: \"startTime\" },\n { label: \"End Time\", prop: \"endTime\" },\n ].map(({ label, prop }, index) => (\n \n \n \n {\n setClassFields({\n ...classFields,\n schedule: {\n ...classFields.schedule,\n [item]: {\n ...classFields.schedule[item],\n [prop]: convert24To00(\n time.toLocaleTimeString(\"en-US\", {\n hour12: false,\n })\n ),\n },\n },\n });\n }}\n minTime={\n classFields.date ===\n moment().format(\"YYYY-MM-DD\")\n ? new Date(new Date().setSeconds(0))\n : null\n }\n renderInput={(params) => (\n \n )}\n />\n \n \n \n ))}\n \n }\n \n ))\n )}\n\n \n \n \n Language\n \n \n {Object.keys(lang)?.map((item) => {\n if (item !== \"mr\") {\n return (\n }\n checked={classFields.lang.includes(item)}\n onChange={(e) => {\n changeHandler(e);\n }}\n label={lang[item]}\n />\n );\n }\n })}\n \n \n \n \n \n Cap enrollments at\n \n \n {capEnrollment?.map((item) => {\n return (\n }\n checked={\n classFields.max_enrolment &&\n classFields.max_enrolment.includes(item)\n }\n onChange={(e) => {\n changeHandler(e);\n }}\n label={item}\n />\n );\n })}\n \n \n {loading ? (\n
\n \n
\n ) : (\n {\n submitHandle();\n }}\n >\n {(isEditMode ? \"Update \" : \"Create \") +\n (classFields.type == \"batch\" ? \"Batch\" : \"Doubt Class\")}\n \n )}\n \n
\n ) : (\n \n )}\n \n );\n}\n\nexport default ClassForm;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport useStyles from \"../styles\";\nimport { breakpoints } from \"../../../theme/constant\";\n// import { dateTimeFormat, TimeLeft } from \"../../../constant\";\n// import { timeLeftFormat } from \"../../common/date\";\nimport { format, dateTimeFormat, timeLeftFormat } from \"../../../common/date\";\nimport { METHODS } from \"../../../services/api\";\nimport { actions as classActions } from \"../redux/action\";\nimport \"./styles.scss\";\nimport { toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport Loader from \"../../common/Loader\";\nimport {\n Typography,\n Card,\n Grid,\n Button,\n CardActions,\n Container,\n Modal,\n Box,\n Stack,\n Dialog,\n FormControlLabel,\n DialogActions,\n DialogTitle,\n Skeleton,\n} from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { actions as pathwayActions } from \"../../PathwayCourse/redux/action\";\nimport ClassJoinTimerButton from \"../ClassJoinTimerButton\";\nimport MergeClass from \"../MergeClass\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\nimport { useParams } from \"react-router-dom\";\nimport EditClass from \"../EditClass\";\nimport ClassForm from \"../ClassForm\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\ntoast.configure();\n\nfunction ClassCard() {\n const params = useParams();\n const classId = params.batchId;\n const classes = useStyles();\n const dispatch = useDispatch();\n const [enrollShowModal, setEnrollShowModal] = React.useState(false);\n const [showModal, setShowModal] = React.useState(false);\n const [indicator, setIndicator] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const user = useSelector(({ User }) => User);\n const [canJoin, setCanJoin] = useState(false);\n const [classesData, setClassesData] = useState([]);\n const [Newpathways, setNewPathways] = useState([]);\n // const classStartTime = item.start_time; // && item.start_time.replace(\"Z\", \"\");\n // const classEndTime = item.end_time; // && item.end_time.replace(\"Z\", \"\");\n const [anchorElUser, setAnchorElUser] = React.useState(null);\n const [classToEdit, setClassToEdit] = useState({});\n const [isEditMode, setIsEditMode] = React.useState(false);\n const [refreshKey, setRefreshKey] = useState(true);\n const [skeletonloading, setSkeletonloading] = useState(true);\n\n const toggleModalOpen = () => {\n // setFormType();\n setClassToEdit({});\n // setShowModal(!showModal);\n };\n\n const handleCloseEnroll = () => {\n setEnrollShowModal(false);\n setIndicator(false);\n };\n\n const handleSubmit = (Id) => {\n setLoading(true);\n const notify = () => {\n toast.success(\"You have been enrolled to class successfully\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n };\n let getNotify = false;\n setEnrollShowModal(!enrollShowModal);\n const timer = setTimeout(() => {\n getNotify = true;\n setLoading(false);\n }, 10000);\n axios\n .post(\n // `${process.env.REACT_APP_MERAKI_URL}/classes/${Id}/register?register-all=${indicator}`,\n `${process.env.REACT_APP_MERAKI_URL}/classes/${Id}/register`,\n {},\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n \"register-to-all\": false,\n },\n }\n )\n .then((res) => {\n if (!getNotify) {\n notify();\n clearTimeout(timer);\n setLoading(false);\n }\n dispatch(classActions.enrolledClass(Id));\n })\n .catch((res) => {\n toast.error(\"Already enrolled in another batch\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n color: \"red\",\n });\n setLoading(false);\n });\n };\n\n useEffect(() => {\n refreshKey &&\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/batches/classes/${classId}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setClassesData(res.data);\n setRefreshKey(false);\n setSkeletonloading(false);\n })\n .catch((err) => {\n setSkeletonloading(true);\n });\n }, [classId, refreshKey]);\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const languageMap = {\n hi: \"Hindi\",\n te: \"Telugu\",\n en: \"English\",\n ta: \"Tamil\",\n doubt_class: \"Doubt Class\",\n };\n\n const handleClickOpenEnroll = () => {\n setEnrollShowModal(!enrollShowModal);\n setIndicator(false);\n };\n\n const rolesList = user.data.user.rolesList;\n let flag = false;\n rolesList.includes(\"admin\") || rolesList.includes(\"classAdmin\")\n ? (flag = true)\n : (flag = false);\n\n // API CALL FOR DROP OUT\n\n useEffect(() => {\n dispatch(\n pathwayActions.getPathways({\n authToken: user,\n })\n );\n }, [dispatch]);\n\n const editClass = (classId, indicator) => {\n setClassToEdit(classesData.find((classData) => classData.id === classId));\n setIsEditMode(true);\n setShowModal(true);\n setIndicator(indicator);\n };\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/names`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n }).then((res) => {\n setNewPathways(res.data);\n });\n }, []);\n const currentTime = new Date();\n\n // Loading effect\n\n if (skeletonloading) {\n return (\n \n {Array.from(Array(8)).map((_, index) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ))}\n \n );\n }\n return (\n <>\n \n \n {classesData.map((item) => (\n // && item.start_time.replace(\"Z\", \"\");\n \n <>\n new Date(item.start_time)\n ? \"primary.lighter\"\n : \"background.paper\",\n\n height: \"362px\",\n }}\n className={classes.card}\n >\n \n \n {item?.title}\n \n\n {((rolesList.length === 0 && item.enrolled) ||\n (rolesList.length >= 1 &&\n (item?.facilitator?.email === user.data.user.email ||\n flag))) && (\n \n {!(currentTime > new Date(item.start_time)) && (\n \n )}\n \n )}\n \n {/* dialog box for edit delete and merge class */}\n\n {/* it will show when two class merged */}\n {item?.merge_class && (\n \n \n\n {item?.merge_class}\n \n )}\n {!item?.title.toLowerCase().includes(\"scratch\") && (\n \n {item?.sub_title}\n \n )}\n \n \n {format(item.start_time, \"dd MMM yy\")}\n \n\n \n \n {format(item.start_time, \"hh:mm aaa\")} -{\" \"}\n {format(item.end_time, \"hh:mm aaa\")}\n \n\n \n \n {item?.volunteer?.name || item?.facilitator?.name}\n \n \n \n {languageMap[item?.lang]}\n \n\n {/* it's for enroll class, join class and class Timer button */}\n \n {currentTime > new Date(item.start_time) ? (\n \n }\n padding=\"0px !important\"\n >\n completed\n \n \n ) : item?.enrolled ? (\n loading ? (\n
\n \n
\n ) : (\n \n )\n ) : loading ? (\n
\n \n
\n ) : (\n {\n handleClickOpenEnroll();\n }}\n endIcon={}\n >\n Enroll\n \n )}\n
\n \n\n \n {enrollShowModal ? (\n \n \n \n Are you sure you want to enroll?\n \n \n\n \n \n \n {\n return handleSubmit(item.id);\n }}\n color=\"primary\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n Cancel\n \n \n \n \n \n ) : null}\n \n \n
\n ))}\n
\n\n {showModal && (\n \n {/* { class form modal for doubt class, batches and edit class} */}\n \n \n )}\n
\n \n );\n}\n\nexport default ClassCard;\n","import React from \"react\";\nimport { Box, Typography, Container } from \"@mui/material\";\nfunction NoClassesFound() {\n return (\n <>\n \n \"img\"\n \n Add classes by creating a new batch\n \n \n \n );\n}\n\nexport default NoClassesFound;\n","import React from \"react\";\nimport { Box, Typography, Container, Button } from \"@mui/material\";\n\nfunction NoVolunteerClass() {\n return (\n <>\n \n \"img\"\n \n Welcome to the Volunteer Dashboard!\n \n \n \n );\n}\n\nexport default NoVolunteerClass;\n","import React, { useState } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport useStyles from \"../styles\";\nimport { breakpoints } from \"../../../theme/constant\";\n\n// import { dateTimeFormat, TimeLeft } from \"../../../constant\";\n// import { timeLeftFormat } from \"../../common/date\";\nimport { format, dateTimeFormat, timeLeftFormat } from \"../../../common/date\";\nimport { METHODS } from \"../../../services/api\";\nimport { actions as classActions } from \"../redux/action\";\nimport \"./styles.scss\";\nimport { toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport Loader from \"../../common/Loader\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport {\n Typography,\n Card,\n Grid,\n Button,\n Box,\n Stack,\n Menu,\n MenuItem,\n Checkbox,\n CardActions,\n Dialog,\n DialogTitle,\n DialogActions,\n} from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n// import { useHistory } from 'react-router-dom';\nimport ClassJoinTimerButton from \"../ClassJoinTimerButton\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\nimport { interpolatePath, PATHS } from \"../../../constant\";\nimport EditClass from \"../EditClass\";\ntoast.configure();\n\nfunction BatchCard({ item, editClass, setRefreshKey, showClass }) {\n const classes = useStyles();\n const history = useHistory();\n const dispatch = useDispatch();\n const [enrollShowModal, setEnrollShowModal] = React.useState(false);\n const [unenrollShowModal, setunenrollShowModal] = React.useState(false);\n const [showModal, setShowModal] = React.useState(false);\n const [editShowModal, setEditShowModal] = React.useState(false);\n const [deleteCohort, setDeleteCohort] = React.useState(false);\n const [indicator, setIndicator] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const user = useSelector(({ User }) => User);\n const [canJoin, setCanJoin] = useState(false);\n\n // const classStartTime = item.start_time; // && item.start_time.replace(\"Z\", \"\");\n // const classEndTime = item.end_time; // && item.end_time.replace(\"Z\", \"\");\n const [anchorElUser, setAnchorElUser] = React.useState(null);\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const languageMap = {\n hi: \"Hindi\",\n te: \"Telugu\",\n en: \"English\",\n ta: \"Tamil\",\n doubt_class: \"Doubt Class\",\n };\n\n const handleCloseEnroll = () => {\n setEnrollShowModal(false);\n setIndicator(false);\n };\n const handleClickOpenEnroll = () => {\n setEnrollShowModal(!enrollShowModal);\n setIndicator(false);\n };\n\n const handleCloseUnenroll = () => {\n setunenrollShowModal(false);\n setIndicator(false);\n };\n const handleClickOpenUnenroll = () => {\n setunenrollShowModal(!unenrollShowModal);\n setIndicator(false);\n setAnchorElUser(null);\n };\n\n const rolesList = user.data.user.rolesList;\n let flag = false;\n rolesList.includes(\"admin\") || rolesList.includes(\"classAdmin\")\n ? (flag = true)\n : (flag = false);\n\n // API CALL FOR DELETE CLASS\n\n // API CALL FOR enroll class\n const handleSubmit = (Id) => {\n setLoading(true);\n const notify = () => {\n toast.success(\"You have been enrolled to class successfully\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n };\n let getNotify = false;\n setEnrollShowModal(!enrollShowModal);\n const timer = setTimeout(() => {\n getNotify = true;\n setLoading(false);\n }, 10000);\n axios\n .post(\n // `${process.env.REACT_APP_MERAKI_URL}/classes/${Id}/register?register-all=${indicator}`,\n `${process.env.REACT_APP_MERAKI_URL}/classes/${Id}/register`,\n {},\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n \"register-to-all\": true,\n },\n }\n )\n .then((res) => {\n if (!getNotify) {\n notify();\n clearTimeout(timer);\n setLoading(false);\n }\n dispatch(classActions.enrolledClass(Id));\n })\n .catch((res) => {\n toast.error(\"Already enrolled in another batch\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n color: \"red\",\n });\n setLoading(false);\n });\n };\n // API CALL FOR DROP OUT\n const handleDropOut = (Id) => {\n setLoading(true);\n const notify = () => {\n toast.success(\"You have been dropped out of class successfully\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n };\n let getNotify = false;\n setunenrollShowModal(!unenrollShowModal);\n const timer = setTimeout(() => {\n getNotify = true;\n dispatch(classActions.dropOutClass(Id));\n setLoading(false);\n notify();\n }, 10000);\n return axios({\n method: METHODS.DELETE,\n url: `${process.env.REACT_APP_MERAKI_URL}/classes/${Id}/unregister?unregister-all=${indicator}`,\n // url: `${process.env.REACT_APP_MERAKI_URL}/classes/${Id}/unregister`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n // \"unregister-to-all\": indicator,\n },\n }).then((res) => {\n if (!getNotify) {\n notify();\n clearTimeout(timer);\n setLoading(false);\n }\n dispatch(classActions.dropOutClass(Id));\n });\n };\n\n /*\n const EnrolledAndTimer = () => {\n const timeLeftOptions = {\n precision: [3, 3, 3, 2, 2, 1],\n cutoffNumArr: [0, 0, 0, 0, 10, 60],\n cutoffTextArr: [\"\", \"\", \"\", \"\", \"joinNow\", \"joinNow\"],\n expiredText: \"joinNow\",\n };\n const [Timer, setTimer] = useState(\n timeLeftFormat(item.start_time, timeLeftOptions)\n );\n const ONE_MINUTE = 60000; //millisecs\n setInterval(() => {\n setTimer(timeLeftFormat(item.start_time, timeLeftOptions));\n }, ONE_MINUTE);\n return (\n <>\n {Timer === \"joinNow\" ? (\n \n \n \n ) : (\n \n )}\n \n );\n };\n */\n\n return (\n <>\n {\n showClass &&\n history.push(\n interpolatePath(PATHS.BATCH_CLASSES, {\n batchId: item?.recurring_id,\n })\n );\n }}\n >\n \n \n {item?.title}\n \n\n {item?.enroled && (\n \n Enrolled\n \n )}\n {((rolesList.length === 0 && item.enrolled) ||\n (rolesList.length >= 1 &&\n (item?.facilitator?.email === user.data.user.email || flag))) && (\n \n \n \n )}\n \n {showClass ? (\n \n \n {format(item?.batch_start, \"dd MMM yy\")} -{\" \"}\n {format(item?.batch_end, \"dd MMM yy\")}\n \n ) : (\n \n \n {format(item?.start_time, \"dd MMM yy\")} -{\" \"}\n {format(item?.end_time, \"dd MMM yy\")}\n \n )}\n\n {/* \n \n {format(classStartTime, \"hh:mm aaa\")} -{\" \"}\n {format(classEndTime, \"hh:mm aaa\")}\n */}\n \n \n {item?.volunteer?.name || item?.facilitator?.name}\n \n \n \n {languageMap[item?.lang]}\n \n\n {/* it's for enroll class, join class and class Timer button */}\n \n {item?.enrolled ? (\n loading ? (\n
\n \n
\n ) : (\n \n )\n ) : loading ? (\n
\n \n
\n ) : (\n {\n e.stopPropagation();\n\n handleClickOpenEnroll();\n }}\n endIcon={}\n >\n Enroll\n \n )}\n
\n \n \n {enrollShowModal ? (\n enrollShowModal()}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n PaperProps={{\n style: {\n minWidth: \"35%\",\n borderRadius: 8,\n },\n }}\n >\n \n \n Are you sure you want to enroll?\n \n \n\n {/* \n \n */}\n\n \n \n \n {\n return handleSubmit(item.id);\n }}\n color=\"primary\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n Cancel\n \n \n \n \n \n ) : null}\n {unenrollShowModal ? (\n unenrollShowModal()}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n PaperProps={{\n style: {\n minWidth: \"35%\",\n borderRadius: 8,\n },\n }}\n >\n \n \n Are you sure you want to drop out\n \n \n\n {(item.type === \"cohort\" || item.type === \"batch\") && (\n \n {\n setIndicator(true);\n }}\n />\n }\n label=\" Drop all classes of this Batch?\"\n />\n \n )}\n \n \n \n {\n return handleDropOut(item.id);\n }}\n color=\"primary\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n Cancel\n \n \n \n \n \n ) : null}\n \n {/* */}\n \n );\n}\n\nexport default BatchCard;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport { actions as classActions } from \"../redux/action\";\nimport Loader from \"../../common/Loader\";\nimport ClassCard from \"../ClassCard\";\nimport \"./styles.scss\";\nimport {\n Grid,\n TextField,\n Typography,\n Skeleton,\n Card,\n useMediaQuery,\n Alert,\n Box,\n Button,\n} from \"@mui/material\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport NoClassesFound from \"../NoClassesFound\";\nimport NoVolunteerClass from \"../NoVolunteerClass\";\nimport axios from \"axios\";\n\nimport { METHODS } from \"../../../services/api\";\n\nimport BatchCard from \"../ClassCard/BatchCard\";\nfunction ClassList({\n editClass,\n isShow,\n setFormType,\n showClass,\n toggleModalOpen,\n pathwayID,\n canSpecifyFacilitator,\n Newpathways,\n setSingleTime,\n singleTime,\n data,\n loading,\n refreshKey,\n setRefreshKey,\n}) {\n const dispatch = useDispatch();\n\n // const { loading, data = [] } = useSelector(({ Class }) => Class.allClasses);\n const [totalCount, setTotalCount] = useState();\n const [recurring_classes_data_set, set_recurring_classes_data_set] =\n useState(null);\n\n const [filterText, setFilterText] = useState(null);\n const user = useSelector(({ User }) => User);\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n if (loading) {\n return (\n \n {Array.from(Array(8)).map((_, index) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ))}\n \n );\n }\n\n // separate recurring classes and single classes\n let recurring_classes_data = [];\n let single_classes = [];\n data &&\n data.forEach((item) => {\n if (item.recurring_id) {\n recurring_classes_data.push(item);\n } else {\n single_classes.push(item);\n }\n });\n const _ = require(\"lodash\");\n // remove duplicate classes\n var recurring_classes = _.uniqBy(recurring_classes_data, \"recurring_id\");\n // if user type in search box, it will filter the classes\n var classData =\n (filterText?.length > 0 && recurring_classes_data_set) || recurring_classes;\n\n const handleFilterChange = (e) => {\n // for filter the batch\n setFilterText(e.target.value);\n if (filterText?.length > 0) {\n const filtered_recurring_classes = recurring_classes.filter(\n (item) =>\n item.title.toLowerCase().indexOf(e.target.value.toLowerCase()) > -1\n );\n // for filter doubt class\n const filter_single_class = single_classes.filter(\n (item) =>\n item.title.toLowerCase().indexOf(e.target.value.toLowerCase()) > -1\n );\n\n set_recurring_classes_data_set([\n ...filtered_recurring_classes,\n ...filter_single_class,\n ]);\n } else {\n set_recurring_classes_data_set(null);\n }\n };\n\n const handlePaste = (e) => {\n // when user paste in search box, it will filter the classes\n e.preventDefault();\n setFilterText(e.clipboardData.getData(\"text\"));\n // when user paste in search box, batches should be filter by that pathway\n const filtered_recurring_classes = recurring_classes.filter(\n (item) =>\n item.title\n .toLowerCase()\n .indexOf(e.clipboardData.getData(\"text\").toLowerCase()) > -1\n );\n // when user paste in search box, doubt class should be filter by that pathway\n const filter_single_class = single_classes.filter(\n (item) =>\n item.title\n .toLowerCase()\n .indexOf(e.clipboardData.getData(\"text\").toLowerCase()) > -1\n );\n\n set_recurring_classes_data_set([\n ...filtered_recurring_classes,\n ...filter_single_class,\n ]);\n };\n\n const pathwayFilter = canSpecifyFacilitator\n ? classData.filter((item) => {\n // if I click on a pathway, batches should be filter by that pathway\n return item?.pathway_id === pathwayID;\n })\n : classData;\n\n const singlepathwayFilter = canSpecifyFacilitator\n ? // if I click on pathway, doubt class should be filter by that pathway\n single_classes.filter((item) => {\n return item?.pathway_id === pathwayID;\n })\n : single_classes;\n\n return (\n <>\n {(data?.length > 0 || canSpecifyFacilitator) && (\n \n \n {}\n \n ),\n }}\n placeholder=\"Enter Batch or Class Name\"\n value={filterText}\n sx={{\n margin: isActive ? \"0 0 0 4px\" : \"0px 0 0 0px\",\n maxWidth: isActive ? \"100%\" : \"99%\",\n borderRadius: \"8px\",\n }}\n fullWidth={isActive && true}\n onPaste={handlePaste}\n onChange={handleFilterChange}\n />\n\n {canSpecifyFacilitator && (\n {\n setFormType(showClass ? \"batch\" : \"doubt_class\");\n toggleModalOpen();\n }}\n // sx={{ m: !isActive ? \"10px 16px 20px 5px\" : \"0px 0px\"}}\n >\n {showClass ? \"Create Batch\" : \"Create Doubt Class\"}\n \n )}\n \n )}\n\n <>\n \n {data && data.length > 0 ? (\n <>\n {!filterText?.length > 0\n ? single_classes.map((item, index) => {\n return (\n item.type ===\n `${showClass ? \"batch\" : \"doubt_class\"}` && (\n \n \n \n )\n );\n })\n : \"\"}\n {classData.length > 0\n ? classData.map((item, index) => {\n return (\n item.type ===\n `${showClass ? \"batch\" : \"doubt_class\"}` && (\n \n \n \n )\n );\n })\n : \"\"}\n \n ) : canSpecifyFacilitator ? (\n \n \n \n ) : (\n \n \n \n )}\n \n \n \n );\n}\nexport default ClassList;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n successModel: {\n alignItems: \"center\",\n align: \"center\",\n },\n confirmationModal: {\n marginTop: \"300px\",\n padding: \"20px\",\n borderRadius: \"8px\",\n },\n dividerColor: {\n color: \"grey\",\n backgroundColor: \"grey\",\n height: \"2px\",\n border: \"none\",\n },\n underLine: {\n padding: \"12px 35px\",\n borderBottom: \"3px solid transparent\",\n cursor: \"pointer\",\n },\n drawerList: {\n transform: \"translate(0%, 0%)\",\n width: \"100%\",\n bgcolor: \"background.paper\",\n boxShadow: 24,\n padding: \"0px 0px\",\n },\n listButton: {\n margin: \"0px\",\n padding: \"0px\",\n justifyContent: \"space-between\",\n },\n}));\n\nexport default useStyles;\n","import CloseIcon from \"@mui/icons-material/Close\";\nimport { Grid, Box, Container, Typography } from \"@mui/material\";\nimport React from \"react\";\nimport useStyles from \"./styles\";\nfunction NewVolunteerCard({ setNewVolunteer }) {\n const classes = useStyles();\n\n return (\n \n \n \n Hi there! Thanks for choosing to share your knowledge with our\n students\n {\n setNewVolunteer(false);\n localStorage.setItem(\"isNewVolunteer\", false);\n }}\n className={classes.NewVolunteerCardCloseIcon}\n />\n \n \n If you are new to teaching with Meraki, you can enroll in one of the\n classes below to experience how tutors take classes for Meraki\n students. Wish you the best for your time with us.\n \n \n \n );\n}\n\nexport default NewVolunteerCard;\n","import React, { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n Drawer,\n List,\n ListItem,\n ListItemButton,\n ListItemIcon,\n Typography,\n} from \"@mui/material\";\nimport ChevronRightIcon from \"@mui/icons-material/ChevronRight\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useStyles from \"./styles\";\n\nfunction DrawerLeft({\n setPathwayId,\n setPathwayName,\n Newpathways,\n pathwayName,\n setRefreshKey,\n}) {\n const [mobileOpen, setMobileOpen] = React.useState(\"\");\n const { data } = useSelector((state) => state.PathwaysDropdow);\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const handleChange = (id) => {\n setPathwayId(id);\n setRefreshKey(true);\n };\n const user = useSelector(({ User }) => User);\n const [selectedValue, setSelectedValue] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n const classes = useStyles();\n\n const handleItemClick = (value) => {\n setSelectedValue(value);\n setIsOpen(false);\n };\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen);\n };\n const listData = (\n \n {Newpathways &&\n Newpathways.map((item) => {\n if (\n item.code == \"PRGPYT\" ||\n item.code == \"SPKENG\" ||\n item.code === \"ACB\"\n ) {\n return (\n \n {\n handleChange(item.id);\n setPathwayName(item.name);\n }}\n sx={{\n justifyContent: \"space-between\",\n padding: isActive ? \"4px 0px\" : \"8px 0px 8px 16px\",\n borderRadius: \"8px\",\n }}\n value={item.name}\n >\n {item.name}\n \n \n \n \n \n );\n }\n })}\n \n );\n\n return (\n <>\n {/* left drawer for Learning track */}\n {!isActive ? (\n \n \n Learning Track\n \n\n {listData}\n \n ) : (\n
\n {/* Learning Track dropdown for mobile viwes*/}\n\n
\n \n Learning Track\n \n\n \n \n {pathwayName}\n\n \n \n \n \n \n
\n\n {isOpen && (\n
\n {/* */}\n {listData}\n
\n )}\n
\n )}\n \n );\n}\n\nexport default DrawerLeft;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport CreateClassComponent from \"../../components/Class\";\nimport ClassesList from \"../../components/Class/ClassList\";\nimport { useSelector } from \"react-redux\";\nimport \"../../components/Class/ClassList/styles.scss\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport \"./styles.scss\";\nimport useStyles from \"./styles\";\nimport {\n Container,\n Button,\n Modal,\n useMediaQuery,\n Box,\n Stack,\n Typography,\n Dialog,\n DialogTitle,\n DialogActions,\n Grid,\n} from \"@mui/material\";\nimport { breakpoints } from \"../../theme/constant\";\nimport ClassForm from \"../../components/Class/ClassForm\";\nimport SuccessModel from \"../../components/Class/SuccessModel\";\nimport NewVolunteerCard from \"../../components/Class/NewVolunteerCard\";\nimport DrawerLeft from \"./Drawer\";\nimport ReactPaginate from \"react-paginate\";\n\nfunction ToggleClassFormModal() {\n const [showModal, setShowModal] = useState(false);\n const [formType, setFormType] = useState(\"batch\");\n const [classToEdit, setClassToEdit] = useState({});\n const [indicator, setIndicator] = useState(false);\n const [showConsentModal, setShowConsentModal] = useState(false);\n const [refreshKey, setRefreshKey] = useState(true);\n // const { data = [] } = useSelector(({ Class }) => Class.allClasses);\n const user = useSelector(({ User }) => User);\n const [open, setOpen] = React.useState(false);\n const handleOpen = () => setOpen(true);\n const [openSuccessfullModal, setOpenSuccessfullModal] = useState(false);\n const [isEditMode, setIsEditMode] = React.useState(false);\n const classes = useStyles();\n const [showClass, setShowClasses] = useState(true);\n const [pathwayID, setPathwayId] = useState(1);\n\n const [pathwayName, setPathwayName] = useState(\"Python\");\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const isActiveIpad = useMediaQuery(\"(max-width:1300px)\");\n\n const rolesList = user.data.user.rolesList;\n const canSpecifyFacilitator = rolesList.indexOf(\"admin\") > -1;\n\n const [calenderConsent, setCalenderConsent] = useState(true);\n const [authUrl, setAuthUrl] = useState(\"\");\n const [Newpathways, setNewPathways] = useState([]);\n const [typeOfClass, setTypeOfClass] = useState(\"batch\");\n const url = window.location.href;\n\n const toggleModalOpen = () => {\n // setFormType();\n setClassToEdit({});\n // setShowModal(!showModal);\n CalenderConsent();\n };\n\n //here can check\n const editClass = (classId, indicator) => {\n setClassToEdit(data.find((classData) => classData.id === classId));\n setIsEditMode(true);\n setShowModal(true);\n setIndicator(indicator);\n };\n\n const CalenderConsent = () => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/calendar/tokens`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n if (res.data.success) {\n setCalenderConsent(true);\n setShowModal(true);\n } else {\n setCalenderConsent(false);\n setShowConsentModal(true);\n setShowModal(false);\n }\n })\n .catch((err) => {});\n };\n\n const handleClose = () => {\n setShowConsentModal(false);\n };\n\n const codeGenerate = async () => {\n return axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/calendar/generateAuthURL`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setAuthUrl(res.data.url);\n })\n .catch((err) => {});\n };\n\n const calledOnce = useRef(false);\n const history = useHistory();\n\n useEffect(() => {\n let code;\n let payload;\n let user_id;\n let user_email;\n if (url.includes(\"code\")) {\n const decodedUri = decodeURIComponent(url);\n user_id = decodedUri.split(\"=\")[2].split(\"+\")[0];\n user_email = decodedUri.split(\"=\")[3].split(\"&\")[0];\n code = url.split(\"code=\")[1].split(\"scope\")[0];\n payload = {\n ...payload,\n user_id: parseInt(user_id, 10),\n user_email: user_email,\n };\n calledOnce.current = true;\n }\n if (calledOnce.current) {\n return axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/calendar/tokens`,\n\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n code: code,\n },\n data: payload,\n })\n .then((res) => {\n if (res.data.success) {\n setShowModal(true);\n history.push(\"/batch\");\n }\n })\n .catch((err) => {});\n }\n }, [calledOnce]);\n const [newVolunteer, setNewVolunteer] = useState(false);\n\n const [data, setData] = useState([]);\n const [page, setPage] = useState(0);\n const [loading, setLoading] = useState(true);\n const [totalCount, setTotalCount] = useState();\n const limit = 9;\n\n useEffect(() => {\n refreshKey &&\n axios({\n method: METHODS.GET,\n url: `${\n process.env.REACT_APP_MERAKI_URL\n }/batches/${pathwayID}?limit=${limit}&page=${\n page + 1\n }&typeOfClass=${typeOfClass}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setData(res.data.batches);\n setTotalCount(res.data.total_count);\n setLoading(false);\n setRefreshKey(false);\n })\n .catch((res) => {\n setLoading(false);\n });\n }, [pathwayID, limit, page, typeOfClass, refreshKey, setRefreshKey]);\n\n const pageCount = Math.ceil(totalCount / limit);\n\n const changePage = ({ selected }) => {\n setPage(selected);\n setRefreshKey(true);\n };\n\n useEffect(() => {\n try {\n const newVol = localStorage.getItem(\"isNewVolunteer\");\n if (newVol == \"true\" && newVol != null) {\n setNewVolunteer(true);\n } else {\n setNewVolunteer(false);\n }\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n }, [newVolunteer]);\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/names`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setNewPathways(res.data);\n })\n .catch((err) => {});\n }, []);\n\n return (\n \n {/* for New volunteer */}\n {canSpecifyFacilitator && (\n \n {newVolunteer && (\n \n )}\n \n )}\n \n {/* pathway drawer if you have admin role */}\n {canSpecifyFacilitator && (\n \n \n \n )}\n {/* for switch Batch to doubt class */}\n \n {canSpecifyFacilitator && !isActive && (\n {pathwayName}\n )}\n \n \n \n \n \n\n \n \n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n onPageChange={changePage}\n pageCount={pageCount}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n \n \n {/*
*/}\n\n \n\n {showModal && calenderConsent ? (\n \n {/* { class form modal for doubt class, batches and edit class} */}\n \n \n ) : (\n showConsentModal && (\n \n {/*........ New user to take Calendar access to create class....... */}\n\n \n \n Meraki needs access to your calendar to create classes.{\" \"}\n
\n Do you want to go ahead?\n
\n
\n \n \n \n \n Yes\n \n \n No\n \n \n \n \n \n )\n )}\n {openSuccessfullModal && (\n \n \n \n )}\n \n \n\n {openSuccessfullModal && (\n \n \n \n )}\n\n {authUrl && (window.location.href = authUrl)}\n \n );\n}\n\nexport default ToggleClassFormModal;\n","import React from \"react\";\nexport const DeviceProvider = React.createContext({});\nexport const LanguageProvider = React.createContext({});\n","import React, { useMemo } from \"react\";\nimport \"./styles.scss\";\n\nconst colors = [\n \"#D55F31\",\n \"#DD7F5A\",\n \"#E69F83\",\n \"#91C642\",\n \"#A7D168\",\n \"#BDDD8E\",\n \"#0052F2\",\n \"#2971FF\",\n \"#5E95FF\",\n \"#B8BCBD\",\n \"#D63447\",\n];\n\nfunction getRandomInt(min, max) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction getColor() {\n return colors[getRandomInt(0, 10)];\n}\n\n// in memory cache for name, color mapping\nconst nameColorMap = {};\n\nexport default ({ url, name, style = {} }) => {\n let avatarColor;\n if (!nameColorMap[name]) {\n avatarColor = useMemo(() => getColor(), [name]);\n nameColorMap[name] = avatarColor;\n } else {\n avatarColor = nameColorMap[name];\n }\n\n const renderContent = () => {\n if (!url) {\n return (\n
\n {name[0]}\n
\n );\n }\n return ;\n };\n return (\n
\n {renderContent()}\n
\n );\n};\n","import React from \"react\";\nimport \"./style.scss\";\n\nexport default ({ isOpen, className, options = [] }) => {\n if (isOpen) {\n return (\n
\n {options.map((option) => {\n return (\n \n {option.label}\n \n );\n })}\n
\n );\n }\n return null;\n};\n","import axios from \"axios\";\nexport const MATRIX_DOMAIN = \"https://m.navgurukul.org\";\n\nconst baseUrl = `${MATRIX_DOMAIN}/_matrix/client/r0`;\n\nexport const getMembers = async (accessToken, roomId) => {\n const getMembersResponse = await axios.get(\n `${baseUrl}/rooms/${roomId}/members?access_token=${accessToken}`\n );\n return getMembersResponse.data.chunk;\n};\n\nexport const getMemberName = (member) => {\n return member\n ? (member.content && member.content.displayname) ||\n (member.prev_content && member.prev_content.displayname)\n : \"\";\n};\n\nexport const getAreDatesOnDifferentDays = (firstDateTs, secondDateTs) => {\n let areDatesOnDifferentDay = false;\n const previousMessageDate = new Date(firstDateTs);\n const currentMessageDate = new Date(secondDateTs);\n const previousMessageDay = previousMessageDate.getDate();\n const currentMessageDay = currentMessageDate.getDate();\n\n if (currentMessageDay !== previousMessageDay) {\n areDatesOnDifferentDay = true;\n } else {\n const previousMessageMonth = previousMessageDate.getMonth();\n const currentMessageMonth = currentMessageDate.getMonth();\n if (previousMessageMonth !== currentMessageMonth) {\n areDatesOnDifferentDay = true;\n } else {\n const previousMessageYear = previousMessageDate.getFullYear();\n const currentMessageYear = currentMessageDate.getFullYear();\n if (previousMessageYear !== currentMessageYear) {\n areDatesOnDifferentDay = true;\n }\n }\n }\n return areDatesOnDifferentDay;\n};\n\nexport const fetchMessages = async (params) => {\n const {\n roomId,\n accessToken,\n fromSyncToken,\n limit = 10,\n direction = \"b\",\n } = params;\n\n const filters = JSON.stringify({\n types: [\"m.room.message\"],\n });\n\n let baseMessagesUrl = `${baseUrl}/rooms/${roomId}/messages?access_token=${accessToken}&limit=${limit}&dir=${direction}&filter=${filters}`;\n if (fromSyncToken) {\n baseMessagesUrl += `&from=${fromSyncToken}`;\n }\n\n const response = await axios.get(baseMessagesUrl);\n return {\n endToken: response.data.end,\n startToken: response.data.start,\n data: response.data.chunk.reverse(),\n };\n};\n\nexport const redactEvent = async (params) => {\n const { roomId, eventId, accessToken, trxnId = null, reason = \"\" } = params;\n const baseRedactEventUrl = `${baseUrl}/rooms/${roomId}/redact/${eventId}/${trxnId}?access_token=${accessToken}`;\n return await axios.put(baseRedactEventUrl, {\n reason,\n });\n};\n\nexport const leaveRoom = async (params) => {\n const { roomId, accessToken } = params;\n const leaveRoomUrl = `${baseUrl}/rooms/${roomId}/leave?access_token=${accessToken}`;\n return await axios.post(leaveRoomUrl);\n};\n","import React, { useState } from \"react\";\nimport Avatar from \"../../../components/common/Avatar\";\nimport Dropdown from \"../../../components/common/Dropdown\";\nimport format from \"date-fns/format\";\nimport { leaveRoom } from \"../utils\";\nimport \"./styles.scss\";\n\nexport default ({\n name,\n lastMessage,\n onSelect,\n isSelected,\n roomId,\n accessToken,\n}) => {\n const [isMessageActionsDropdownOpen, setIsMessageActionsDropdownOpen] =\n useState(false);\n const subtitle = lastMessage ? lastMessage.text : \"\";\n\n const renderSubtitle = () => {\n return subtitle.length > 30 ? subtitle.slice(0, 27) + \"...\" : subtitle;\n };\n\n const roomActions = [\n {\n label: \"Leave room\",\n value: \"leave room\",\n onClick: () => {\n leaveRoom({\n roomId,\n accessToken,\n });\n },\n },\n ];\n\n return (\n \n \n
\n
{name}
\n
\n {subtitle ? (\n renderSubtitle()\n ) : (\n empty\n )}\n
\n
\n
\n {lastMessage && lastMessage.origin_server_ts && (\n
{format(new Date(lastMessage.origin_server_ts), \"dd LLL\")}
\n )}\n {\n e.stopPropagation();\n setIsMessageActionsDropdownOpen(!isMessageActionsDropdownOpen);\n }}\n >\n
\n
\n
\n \n
\n
\n \n );\n};\n","import React, { useState, useEffect, useRef } from \"react\";\nimport Avatar from \"../../../components/common/Avatar\";\nimport { getMemberName } from \"../utils\";\nimport \"./styles.scss\";\n\nexport default ({\n onNewMessage,\n roomId,\n replyMessage,\n members,\n activateReplyToMessageState,\n}) => {\n const [value, onChange] = useState(\"\");\n const inputRef = useRef(null);\n\n useEffect(() => {\n if (replyMessage) {\n inputRef.current.focus();\n }\n }, [replyMessage]);\n\n const sendMessage = () => {\n if (value) {\n onChange(\"\");\n onNewMessage(value, roomId);\n }\n };\n\n const onKeyDown = (e) => {\n if (e.which === 13) {\n sendMessage();\n }\n };\n\n let replyMessageSenderName;\n\n if (replyMessage) {\n let member = members.find(\n (member) => member.sender === replyMessage.sender\n );\n replyMessageSenderName = getMemberName(member);\n }\n\n return (\n <>\n {replyMessage && (\n
\n {\n activateReplyToMessageState(null);\n }}\n />\n
\n Reply to\n \n
\n
\n \n
\n
\n {replyMessageSenderName}\n
\n
{replyMessage.content.body}
\n
\n
\n
\n )}\n
\n {\n onChange(e.target.value);\n }}\n />\n \n
\n \n );\n};\n","import React, { useState } from \"react\";\nimport LinkifyHtml from \"linkifyjs/html\";\n\nimport { format } from \"date-fns\";\nimport _ from \"lodash\";\nimport Avatar from \"../../../components/common/Avatar\";\nimport Dropdown from \"../../../components/common/Dropdown\";\nimport createDOMPurify from \"dompurify\";\nimport \"./styles.scss\";\nimport { JSDOM } from \"jsdom\";\nimport { getMemberName } from \"../utils\";\n\nconst window = new JSDOM(\"\").window;\nconst DOMPurify = createDOMPurify(window);\n\nconst getMessageClass = (type, isSelf) => {\n let messageClass = \"chat-message\";\n if (type === \"action\") {\n messageClass += \" chat-message-action\";\n }\n\n // condition for self or not\n messageClass += isSelf ? \" chat-message-self\" : \" chat-message-other\";\n return messageClass;\n};\n\nexport default ({\n message,\n isSelf,\n senderName,\n onSendMessage,\n deleteMessage,\n activateReplyToMessageState,\n members,\n}) => {\n const [isMessageActionsMenuOpen, setMessageActionsMenu] = useState(false);\n const [isMessageActionsDropdownOpen, setIsMessageActionsDropdownOpen] =\n useState(false);\n const handleMouseOver = () => {\n setMessageActionsMenu(true);\n };\n\n const formatMessage = (message) => {\n switch (message.content.msgtype) {\n case \"org.matrix.options\":\n return {\n ...message,\n value: message.content.label,\n options: message.content.options,\n };\n\n case \"text\":\n case \"m.text\":\n return {\n ...message,\n value: message.content.body,\n };\n }\n };\n\n const renderOptions = (options) => {\n return options.map((option) => {\n return (\n {\n onSendMessage(option.value);\n }}\n >\n {option.label}\n \n );\n });\n };\n\n const formattedMessage = formatMessage(message);\n\n if (formattedMessage) {\n let messageActions = [];\n if (isSelf) {\n messageActions.push({\n label: \"Delete message\",\n value: \"delete\",\n onClick: () => {\n deleteMessage(message.event_id);\n },\n });\n }\n\n if (formattedMessage && formattedMessage.content.msgtype === \"m.text\") {\n messageActions.push({\n label: \"Reply\",\n value: \"reply\",\n onClick: () => {\n activateReplyToMessageState(formattedMessage.event_id);\n },\n });\n }\n\n const replyToMessage = _.get(\n formattedMessage,\n \"content['m.relates_to']['m.in_reply_to']\"\n );\n\n return (\n \n {!isSelf && senderName && (\n \n )}\n
\n \n
\n {format(new Date(formattedMessage.origin_server_ts), \"hh:mm aaa\")}\n
\n \n {senderName}\n
\n \n {\n setMessageActionsMenu(false);\n setIsMessageActionsDropdownOpen(false);\n }}\n >\n {replyToMessage && (\n
\n
\n
in reply to
\n
\n member.sender === replyToMessage.sender\n )\n )}\n style={{\n marginRight: 8,\n width: 16,\n height: 16,\n fontSize: 12,\n }}\n />\n
\n {getMemberName(\n members.find(\n (member) => member.sender === replyToMessage.sender\n )\n )}\n
\n
\n
\n
{replyToMessage.body}
\n
\n )}\n \n {isMessageActionsMenuOpen && messageActions.length > 0 && (\n
\n {\n setIsMessageActionsDropdownOpen(\n !isMessageActionsDropdownOpen\n );\n }}\n >\n \n \n \n
\n )}\n \n {formattedMessage.options && renderOptions(formattedMessage.options)}\n \n {isSelf && senderName && (\n \n )}\n \n );\n }\n return null;\n};\n","import React, { useEffect, useRef } from \"react\";\nimport Message from \"../Message\";\nimport format from \"date-fns/format\";\nimport { getMemberName, getAreDatesOnDifferentDays } from \"../utils\";\nimport \"./styles.scss\";\n\nexport default ({\n messages,\n selfChatId,\n onScroll,\n members,\n onSendMessage,\n deleteMessage,\n activateReplyToMessageState,\n prevScrollPosition,\n}) => {\n const messagesRef = useRef();\n\n useEffect(() => {\n if (prevScrollPosition) {\n messagesRef.current.scrollTop = prevScrollPosition;\n }\n }, [messages && messages.length]);\n\n return (\n
\n
\n {messages &&\n messages\n .filter((message) => message.type === \"m.room.message\")\n .map((message, index) => {\n let shouldDisplayDayMarker = false;\n if (messages[index - 1]) {\n shouldDisplayDayMarker = getAreDatesOnDifferentDays(\n messages[index - 1].origin_server_ts,\n message.origin_server_ts\n );\n } else {\n shouldDisplayDayMarker = true;\n }\n const member = members.find(\n (member) => member.sender === message.sender\n );\n\n return (\n \n {shouldDisplayDayMarker && (\n
\n {format(new Date(message.origin_server_ts), \"do MMM\")}\n
\n )}\n -1}\n />\n
\n );\n })}\n
\n
\n );\n};\n","import React from \"react\";\nimport \"./styles.scss\";\n\nconst FloatingIcon = ({ icon, styles, onClick }) => {\n return (\n \n {icon}\n \n );\n};\n\nexport default FloatingIcon;\n","import React, { useEffect, useState, useContext } from \"react\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport _ from \"lodash\";\nimport { DeviceProvider } from \"../../common/context\";\nimport { useSelector } from \"react-redux\";\nimport * as sdk from \"matrix-js-sdk\";\nimport RoomNav from \"./RoomNav\";\nimport ChatInput from \"./ChatInput\";\nimport Messages from \"./Messages\";\nimport { MATRIX_DOMAIN, fetchMessages, redactEvent, getMembers } from \"./utils\";\nimport FloatingIcon from \"../../components/common/FloatingIcon\";\nimport Loader from \"../../components/common/Loader\";\nimport \"./styles.scss\";\n\nlet PAGINATION_THRESHOLD = 200;\n\nconst Mentor = () => {\n const { data } = useSelector(({ User }) => User);\n const [client, setClient] = useState(null);\n const { isMobile } = useContext(DeviceProvider);\n const { chat_id, chat_password } = data.user;\n const [rooms, setRooms] = useState([]);\n const [selectedRoomId, setSelectedRoomId] = useState(null);\n const [prevScrollPosition, setPrevScrollPosition] = useState(null);\n const [roomNamesMap, setRoomNamesMap] = useState({});\n const [members, setMembers] = useState({});\n const [accessToken, setAccessToken] = useState(\"\");\n const [replyMessage, setReplyMessage] = useState(null);\n const [syncToken, setSyncToken] = useState({\n fromSyncToken: \"\",\n toSyncToken: \"\",\n });\n const [isInitializingClient, setInitializaingClient] = useState(true);\n const [roomMessages, setRoomMessage] = useState({});\n\n const onSendMessage = (message, roomId) => {\n const messageObj = {\n body: message,\n msgtype: \"m.text\",\n };\n\n if (replyMessage) {\n messageObj[\"m.relates_to\"] = {\n [\"m.in_reply_to\"]: {\n event_id: replyMessage.event_id,\n body: replyMessage.content.body,\n sender: replyMessage.sender,\n },\n };\n\n setReplyMessage(null);\n }\n\n client.sendEvent(roomId, \"m.room.message\", messageObj);\n };\n\n const removeMessageEvent = (eventId) => {\n setRoomMessage((roomMessages) => {\n let newMessages = roomMessages[selectedRoomId].filter((messageEvent) => {\n return messageEvent.event_id !== eventId;\n });\n\n return {\n ...roomMessages,\n [selectedRoomId]: newMessages,\n };\n });\n };\n\n const addMessageFromMessageEvent = (messageEvent) => {\n setRoomMessage((roomMessages) => {\n const existingMessages = roomMessages[messageEvent.room_id] || [];\n const doesMessageEventExist = Boolean(\n existingMessages.find(\n (message) => message.event_id === messageEvent.event_id\n )\n );\n if (!doesMessageEventExist) {\n const newMessages = _.sortBy(existingMessages.concat(messageEvent), [\n (message) => message.origin_server_ts,\n ]);\n return {\n ...roomMessages,\n [messageEvent.room_id]: newMessages,\n };\n } else {\n return roomMessages;\n }\n });\n };\n\n const addRoomName = (roomId, roomName) => {\n if (!roomNamesMap[roomId]) {\n setRoomNamesMap((existingRoomNames) => {\n return {\n ...existingRoomNames,\n [roomId]: roomName,\n };\n });\n }\n };\n\n const handleMatrixEvent = (event) => {\n if (event.event) {\n switch (event.getType()) {\n case \"m.room.name\":\n addRoomName(event.event.room_id, event.event.content.name);\n break;\n\n case \"m.room.message\":\n addMessageFromMessageEvent(event.event);\n break;\n\n case \"m.room.member\":\n if (event.event.content.membership === \"leave\") {\n if (event.event.sender.includes(chat_id)) {\n setRooms((rooms) => {\n return rooms.filter(\n (room) => room.roomId !== event.event.room_id\n );\n });\n }\n }\n if (event.event.content.membership === \"join\") {\n if (event.event.sender.includes(chat_id)) {\n setRooms((rooms) => {\n const doesRoomExist = !!rooms.find((room) => {\n return room.roomId === event.event.room_id;\n });\n if (!doesRoomExist) {\n return rooms.concat([\n {\n name:\n event.event.content.name ||\n roomNamesMap[event.event.room_id] ||\n \"\",\n roomId: event.event.room_id,\n },\n ]);\n }\n return rooms;\n });\n }\n }\n break;\n }\n }\n };\n\n const clientSync = (state) => {\n if (state === \"PREPARED\") {\n let initialRooms = client.getRooms();\n setRooms(() => {\n const clientRooms = client.getRooms() || [];\n clientRooms.forEach((room) => addRoomName(room.roomId, room.name));\n setRooms(clientRooms);\n });\n setSelectedRoomId(isMobile ? null : initialRooms[0].roomId);\n setInitializaingClient(false);\n\n client.on(\"event\", handleMatrixEvent);\n }\n };\n\n useEffect(() => {\n const roomWithoutName = rooms.find((room) => !room.name);\n if (!!roomWithoutName && roomNamesMap[roomWithoutName.roomId]) {\n setRooms((existingRooms) => {\n return existingRooms.map((room) => {\n if (!room.name) {\n room.name = roomNamesMap[room.roomId] || \"\";\n }\n return room;\n });\n });\n }\n }, [rooms, roomNamesMap]);\n\n useEffect(() => {\n if (client) {\n client\n .login(\"m.login.password\", { user: chat_id, password: chat_password })\n .then((response) => {\n setAccessToken(response.access_token);\n client.startClient();\n });\n\n client.once(\"sync\", clientSync);\n }\n }, [client, roomNamesMap]);\n\n useEffect(() => {\n setClient(\n sdk.createClient({\n baseUrl: MATRIX_DOMAIN,\n userId: chat_id,\n accessToken: chat_password,\n })\n );\n }, [chat_id, chat_password]);\n\n const handleScroll = useDebouncedCallback((element) => {\n if (\n element.scrollHeight + element.scrollTop <\n element.clientHeight + PAGINATION_THRESHOLD\n ) {\n setPrevScrollPosition(element.scrollTop);\n getMessages();\n }\n }, 1000);\n\n const getSelectedRoomMembers = async () => {\n const roomMembers = await getMembers(accessToken, selectedRoomId);\n setMembers({\n ...members,\n [selectedRoomId]: roomMembers || [],\n });\n };\n\n useEffect(() => {\n if (accessToken && selectedRoomId) {\n getSelectedRoomMembers();\n }\n }, [accessToken, selectedRoomId]);\n\n const deleteMessage = async (eventId) => {\n const redactedEventResponse = await redactEvent({\n roomId: selectedRoomId,\n eventId,\n accessToken,\n reason: \"user deleted message\",\n });\n if (redactedEventResponse && redactedEventResponse.data) {\n removeMessageEvent(eventId);\n }\n };\n\n const activateReplyToMessageState = (messageEventId) => {\n const message = roomMessages[selectedRoomId].find(\n (message) => message.event_id === messageEventId\n );\n setReplyMessage(message);\n };\n\n const getMessages = async () => {\n let getMessagesPayload = {\n roomId: selectedRoomId,\n accessToken,\n limit: 15,\n };\n\n if (syncToken.fromSyncToken[selectedRoomId]) {\n getMessagesPayload.fromSyncToken =\n syncToken.fromSyncToken[selectedRoomId];\n }\n let messagesResponse = await fetchMessages(getMessagesPayload);\n setSyncToken({\n fromSyncToken: {\n ...syncToken.fromSyncToken,\n [selectedRoomId]: messagesResponse.endToken,\n },\n });\n const textMessages = messagesResponse.data.filter(\n (message) => message.type === \"m.room.message\" && message.content.msgtype\n );\n textMessages.forEach(addMessageFromMessageEvent);\n };\n\n useEffect(() => {\n if (accessToken && selectedRoomId) {\n setPrevScrollPosition(null);\n getMessages();\n }\n }, [selectedRoomId, accessToken]);\n\n const renderRooms = () => {\n return (\n !(isMobile && selectedRoomId) && (\n \n
    \n {rooms.map((room) => {\n return (\n {\n setSelectedRoomId(room.roomId);\n }}\n lastMessage={\n roomMessages[room.roomId]\n ? roomMessages[room.roomId][0]\n : null\n }\n />\n );\n })}\n
\n \n )\n );\n };\n\n const renderChat = () => {\n return (\n <>\n
\n {\n handleScroll(e.target);\n }}\n deleteMessage={deleteMessage}\n members={members[selectedRoomId] || []}\n activateReplyToMessageState={activateReplyToMessageState}\n onSendMessage={(value) => {\n onSendMessage(value, selectedRoomId);\n }}\n />\n \n
\n {isMobile && selectedRoomId && (\n {\n setSelectedRoomId(null);\n }}\n icon={}\n styles={{\n top: 16,\n left: 16,\n }}\n />\n )}\n \n );\n };\n\n return (\n
\n {isInitializingClient ? (\n \n ) : (\n <>\n {renderRooms()}\n {renderChat()}\n \n )}\n
\n );\n};\n\nexport default Mentor;\n","import React, { useState } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport Loader from \"../common/Loader\";\nimport { toast } from \"react-toastify\";\nimport \"./styles.scss\";\n\nfunction MerakiChatRoom() {\n const [loading, setLoading] = useState(false);\n const user = useSelector(({ User }) => User);\n const [chatRoom, setChatRoom] = useState({\n name: \"\",\n topic: \"\",\n roomAliasName: \"\",\n visibility: \"\",\n });\n\n const handleChange = async (event) => {\n setChatRoom({ ...chatRoom, [event.target.name]: event.target.value });\n };\n\n const submit = (event) => {\n setLoading(true);\n event && event.preventDefault();\n axios\n .post(`${process.env.REACT_APP_MERAKI_URL}/chat/room`, chatRoom, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then(() => {\n toast.success(\"Room Created!\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n setLoading(false);\n })\n .catch((error) => {\n toast.error(\n `Room couldn't be created!: ${error.response.status} ${error.response.data.message.error}`,\n {\n position: toast.POSITION.BOTTOM_RIGHT,\n }\n );\n setLoading(false);\n });\n };\n\n return (\n <>\n
\n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
\n \n \n
\n \n );\n}\n\nexport default MerakiChatRoom;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\n// import { BsArrowUpDown } from \"react-icons/bs\";\nimport { BsArrowDownUp } from 'react-icons/bs';\nimport { METHODS } from \"../../services/api\";\nimport { useDebounce } from \"use-debounce\";\nimport ReactPaginate from \"react-paginate\";\nimport moment from \"moment\";\nimport Slider from \"rc-slider\";\nimport \"rc-slider/assets/index.css\";\nimport \"./styles.scss\";\n\n\n\nconst { createSliderWithTooltip } = Slider;\nconst Range = createSliderWithTooltip(Slider.Range);\n\nconst getPartnerIdFromUrl = () => {\n let partnerId;\n if (window.location.pathname.includes(\"partner\")) {\n partnerId = window.location.pathname.split(\"/\").pop();\n }\n return partnerId;\n};\n\nfunction MerakiUsers() {\n const [pageNumber, setPageNumber] = useState(0);\n const [totalCount, setTotalCount] = useState();\n const [message, setMessage] = useState(\"\");\n const [students, setStudents] = useState([]);\n const [slicedStudents, setSlicedStudents] = useState([]);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [sortMethod, setSortMethod] = useState(\"dsc\");\n const [sort_class, setSortClass] = useState(\"sorter\");\n const [filterVal, setFilterVal] = useState([0, 0]);\n const [filteredData, setFilteredData] = useState(false);\n const [debouncedText] = useDebounce(searchTerm, 400);\n\n const user = useSelector(({ User }) => User);\n\n const limit = 10;\n let id = getPartnerIdFromUrl();\n useEffect(() => {\n // let id = getPartnerIdFromUrl();\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/students/classes${\n searchTerm.length > 0 ? `?name=${searchTerm}` : \"\"\n }`,\n headers: { accept: \"application/json\", Authorization: user.data.token },\n })\n .then((res) => {\n if (\n id == user.data.user.partner_id ||\n user.data.user.rolesList.indexOf(\"admin\") > -1\n ) {\n if (res.data.students.length < 1) {\n setMessage(\"There are no results to display\");\n } else {\n const data = res.data.students\n .map((item) => {\n if (item.classes_registered.length > 0) {\n item.averageRating = 0;\n let avg = 0;\n let count = 0;\n item.classes_registered.map((f) => {\n if (f.feedback.feedback) {\n avg = avg + parseInt(f.feedback.feedback);\n count += 1;\n }\n });\n if (avg > 0) item.averageRating = avg / count;\n else item.averageRating = avg;\n item.classes_registered = item.classes_registered.sort(\n (c1, c2) => {\n return new Date(c1.start_time) - new Date(c2.start_time);\n }\n );\n }\n return {\n ...item,\n // not overwriting original created_at because we need the date object to sort by date\n formatted_created_at: item.created_at\n ? moment(item.created_at.replace(\"Z\", \"\")).format(\n \"DD-MM-YYYY\"\n )\n : \"\",\n classes_registered: item.classes_registered.map((item) => {\n return {\n ...item,\n formatted_start_time: item.start_time\n ? moment(item.start_time.replace(\"Z\", \"\")).format(\n \"DD-MM-YYYY\"\n )\n : \"\",\n /**\n * REVIEW\n * Why item is there again in the next line?\n */\n item,\n formatted_end_time: item.end_time\n ? moment(item.end_time.replace(\"Z\", \"\")).format(\n \"hh:mm a\"\n )\n : \"\",\n };\n }),\n };\n })\n .sort((a, b) => {\n return a.name.localeCompare(b.name);\n });\n setStudents(data);\n setSlicedStudents(\n data.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n setTotalCount(res.data.count);\n }\n }\n })\n .catch((err) => {});\n }, [debouncedText]);\n\n const pageCount = Math.ceil(totalCount / limit);\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n };\n\n const sortStudents = (byMethod) => {\n const students = filteredData ? filter : students;\n let sortedStudents;\n if (byMethod === \"name\") {\n sortedStudents = students.sort().reverse();\n } else if (byMethod === \"enroll_date\") {\n sortedStudents = students.sort((a, b) =>\n sortMethod === \"asc\"\n ? new Date(a.created_at) - new Date(b.created_at)\n : new Date(b.created_at) - new Date(a.created_at)\n );\n } else if (byMethod === \"total_classes\") {\n sortedStudents = students.sort((a, b) =>\n sortMethod === \"asc\"\n ? a.classes_registered.length - b.classes_registered.length\n : b.classes_registered.length - a.classes_registered.length\n );\n } else if (byMethod === \"last_class_title\") {\n const zeroClass = students.filter((a) => {\n return a.classes_registered.length <= 0;\n });\n sortedStudents = students\n .filter((a) => {\n return a.classes_registered.length > 0;\n })\n .sort((a, b) => {\n return sortMethod === \"asc\"\n ? a.classes_registered[\n a.classes_registered.length - 1\n ].title.localeCompare(\n b.classes_registered[b.classes_registered.length - 1].title\n )\n : b.classes_registered[\n b.classes_registered.length - 1\n ].title.localeCompare(\n a.classes_registered[a.classes_registered.length - 1].title\n );\n });\n sortedStudents = [...sortedStudents, ...zeroClass];\n } else if (byMethod === \"last_class_date\") {\n const zeroClass = students.filter((a) => {\n return a.classes_registered.length <= 0;\n });\n sortedStudents = students\n .filter((a) => {\n if (a.classes_registered.length > 0) {\n a.classes_registered = a.classes_registered.sort((c1, c2) => {\n return new Date(c1.start_time) - new Date(c2.start_time);\n });\n return a;\n }\n })\n .sort((a, b) => {\n const startTimeOfA = [];\n const startTimeOfB = [];\n a.classes_registered.forEach((c) =>\n startTimeOfA.push(new Date(c.start_time))\n );\n b.classes_registered.forEach((c) =>\n startTimeOfB.push(new Date(c.start_time))\n );\n return sortMethod === \"asc\"\n ? Math.max(...startTimeOfA) - Math.max(...startTimeOfB)\n : Math.max(...startTimeOfB) - Math.max(...startTimeOfA);\n });\n sortedStudents = [...sortedStudents, ...zeroClass];\n } else if (byMethod === \"rating\") {\n const zeroClass = students.filter((a) => {\n return a.classes_registered.length <= 0;\n });\n sortedStudents = students.sort((a, b) => {\n return sortMethod === \"asc\"\n ? a.averageRating - b.averageRating\n : b.averageRating - a.averageRating;\n });\n sortedStudents = [...sortedStudents, ...zeroClass];\n }\n setStudents(sortedStudents);\n setSlicedStudents(\n sortedStudents.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n if (sortMethod === \"asc\") {\n setSortClass(\"sorter\");\n setSortMethod(\"dsc\");\n } else {\n setSortClass(\"sorter turn\");\n setSortMethod(\"asc\");\n }\n };\n\n const handleChange = (value) => {\n setFilteredData(true);\n setFilterVal(value);\n };\n\n let filter = [];\n students.filter((item) => {\n if (filterVal[0] === 0) {\n if (item.classes_registered.length === 0) {\n filter.push(item);\n }\n } else if (filterVal[0] === 30) {\n if (item.classes_registered.length >= 30) {\n filter.push(item);\n }\n } else {\n const range = (min, max) =>\n Array.from({ length: max - min + 1 }, (_, i) => min + i);\n range(filterVal[0], filterVal[1]).map((range) => {\n if (item.classes_registered.length === range) {\n filter.push(item);\n }\n });\n }\n });\n\n useEffect(() => {\n if (filteredData) {\n const slicedData = filter.slice(\n pageNumber * limit,\n (pageNumber + 1) * limit\n );\n setSlicedStudents(slicedData);\n } else {\n const slicedData = students.slice(\n pageNumber * limit,\n (pageNumber + 1) * limit\n );\n setSlicedStudents(slicedData);\n }\n }, [pageNumber, filterVal]);\n\n return (\n
\n
\n
\n {\n setSearchTerm(e.target.value);\n }}\n />\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n onPageChange={changePage}\n pageCount={pageCount}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n
\n
\n \n
\n (value === 40 ? (value = \"30+\") : value)}\n value={filterVal}\n onChange={handleChange}\n marks={{\n 0: 0,\n 1: 1,\n 6: 6,\n 10: 10,\n 15: 15,\n 20: 20,\n 25: 25,\n 30: 30,\n 40: `${30}+`,\n }}\n />\n
\n {\n setFilteredData(false);\n setFilterVal([0, 0]);\n }}\n className=\"filter-clear\"\n >\n clear\n \n
\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n {filteredData\n ? slicedStudents.map((item) => {\n let getStars = 0;\n let totalStarts = item.classes_registered.length * 5;\n item.classes_registered.map((stars) => {\n getStars = getStars + Number(stars.feedback.feedback);\n });\n return (\n \n \n\n \n\n \n \n\n \n \n \n \n \n );\n })\n : slicedStudents.map((item) => {\n let getStars = 0;\n let totalStarts = item.classes_registered.length * 5;\n item.classes_registered.map((stars) => {\n getStars = getStars + Number(stars.feedback.feedback);\n });\n return (\n \n \n\n \n\n \n \n\n \n \n \n \n \n );\n })}\n {message ?

{message}

: null}\n \n
\n Students Name\n sortStudents(\"name\")}\n >\n \n \n \n Partner Name\n {/* sortStudents(\"name\")}\n >\n \n */}\n \n Enroll date\n sortStudents(\"enroll_date\")}\n >\n \n \n \n Classes Attended\n sortStudents(\"total_classes\")}\n >\n \n \n \n Last Class Title\n sortStudents(\"last_class_title\")}\n >\n \n \n \n Last Class Date\n sortStudents(\"last_class_date\")}\n >\n \n \n Last Class Time\n Average Rating\n sortStudents(\"rating\")}\n >\n \n \n
{item.name}\n {item.partner ? item.partner.name : \"NA\"}\n \n {item.formatted_created_at}\n \n {\" \"}\n {item.classes_registered.length}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"] != \"\"\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n : \"NA\"}\n \n {[1, 2, 3, 4, 5].map((star) => {\n return Math.ceil(item.averageRating) > 0 &&\n star <= Math.ceil(item.averageRating) ? (\n \n ) : (\n \n );\n })}\n
{item.name}\n {item.partner ? item.partner.name : \"NA\"}\n \n {item.formatted_created_at}\n \n {\" \"}\n {item.classes_registered.length}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"] != \"\"\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n : \"NA\"}\n \n {[1, 2, 3, 4, 5].map((star) => {\n return Math.ceil(item.averageRating) > 0 &&\n star <= Math.ceil(item.averageRating) ? (\n \n ) : (\n \n );\n })}\n
\n
\n );\n}\n\nexport default MerakiUsers;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport \"./styles.scss\";\nimport { toast } from \"react-toastify\";\nimport MerakiCreateRoom from \"../CreateChatRoom/index\";\nimport MerakiUsers from \"../MerakiUsers\";\n\nfunction User() {\n const user = useSelector(({ User }) => User);\n const [allClasses, setAllClasses] = useState([]);\n const [values, setValues] = useState({\n email: \"\",\n roomId: \"\",\n });\n const lang = { en: \"English\", hi: \"Hindi\", sp: \"Spoken English\" };\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/chat/rooms`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setAllClasses(res.data);\n })\n .catch((err) => {});\n }, []);\n\n const changeHandler = (e) => {\n setValues({ ...values, [e.target.name]: e.target.value });\n };\n\n const submitHandler = () => {\n const notify = () => {\n const roomAlias = allClasses.filter((c) => {\n return c.room_id === values.roomId;\n });\n const className =\n lang[roomAlias[0].room_alias.split(\"meraki\")[1].substr(0, 2)] +\n \" Class - \" +\n roomAlias[0].room_alias\n .split(\":navgurukul.org\")[0]\n .split(\"meraki\")[1]\n .split(\"class\")[1];\n toast.success(`Added ${values.email} to ${className} successfully!`, {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n };\n return axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/chat/addUser/${values.roomId}?email=${values.email}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then(() => {\n notify();\n })\n .catch((err) => {});\n };\n\n return (\n <>\n \n
\n \n \n \n \n \n {allClasses.map((item, index) => {\n const className =\n lang[item.room_alias.split(\"meraki\")[1].substr(0, 2)] +\n \" Class - \" +\n item.room_alias\n .split(\":navgurukul.org\")[0]\n .split(\"meraki\")[1]\n .split(\"class\")[1];\n return (\n \n );\n })}\n \n \n
\n
\n \n
\n \n );\n}\n\nexport default User;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n underline: {\n width: \"60px\",\n textAlign: \"center\",\n marginBottom: \"30px\",\n },\n list: {\n display: \"flex\",\n marginLeft: \"12px\",\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport { Container, Box, Typography } from \"@mui/material\";\nimport CircleIcon from \"@mui/icons-material/Circle\";\nimport useStyles from \"./styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\n\nfunction PrivacyPolicy() {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n return (\n \n \n \n Privacy Policy\n \n \n NavGurukul Foundation for Social Welfare built the Meraki app as an\n Open Source app. This service is provided by NavGurukul Foundation for\n Social Welfare at no cost and is intended for use as is.\n \n \n This page is used to inform visitors regarding our policies with the\n collection, use, and disclosure of personal information if anyone\n decided to use our service. If you choose to use our service, then you\n agree to the collection and use of information in relation to this\n policy. The personal information that we collect is used for providing\n and improving the service. We will not use or share your information\n with anyone except as described in this privacy policy.\n \n \n The terms used in this privacy policy have the same meanings as in our\n terms and conditions, which is accessible at Meraki unless otherwise\n defined in this privacy policy.\n \n \n \n \n Information Collection and Use\n \n \n For a better experience, while using our service, we may require you\n to provide us with certain personally identifiable information,\n including but not limited to Email Address, Name, Profile Picture\n link, Google User ID. The information that we request will be retained\n by us and used as described in this privacy policy. The app does use\n third party services that may collect information used to identify\n you. Link to privacy policy of third party service providers used by\n the app.\n \n \n The app does use third party services that may collect information\n used to identify you. Link to privacy policy of third party service\n providers used by the app.\n \n \n \n Google Play Services\n \n \n \n Google Analytics for Firebase\n \n \n \n Log Data\n\n \n We want to inform you that whenever you use our service, in the case\n of an error in the app we collect data and information (through third\n party products) on your phone called log data. This log data may\n include information such as your device Internet Protocol (“IP”)\n address, device name, operating system version, the configuration of\n the app when utilizing our service, the time and date of your use of\n the service, and other statistics.\n \n \n \n Cookies\n \n Cookies are files with a small amount of data that are commonly used\n as anonymous unique identifiers. These are sent to your browser from\n the websites that you visit and are stored on your devices internal\n memory.\n \n \n This service does not use these “cookies” explicitly. However, the app\n may use third party code and libraries that use “cookies” to collect\n information and improve their services. You have the option to either\n accept or refuse these cookies and know when a cookie is being sent to\n your device. If you choose to refuse our cookies, you may not be able\n to use some portions of this service.\n \n \n \n Service Providers\n\n \n We may employ third-party companies and individuals due to the\n following reasons:-\n {[\n \"To facilitate our service\",\n \"To provide the service on our behalf\",\n \"To perform service-related services\",\n \"To assist us in analyzing how our service is used\",\n ].map((text) => (\n \n \n {text}\n \n ))}\n \n \n We want to inform users of this service that these third parties have\n access to your personal information. The reason is to perform the\n tasks assigned to them on our behalf. However, they are obligated not\n to disclose or use the information for any other purpose.\n \n \n \n Security\n\n \n We value your trust in providing us your personal information, thus we\n are striving to use commercially acceptable means of protecting it.\n But remember that no method of transmission over the internet, or\n method of electronic storage is 100% secure and reliable, and we\n cannot guarantee its absolute security.\n \n \n \n Links to Other Sites\n\n \n This service may contain links to other sites. If you click on a\n third-party link, you will be directed to that site. Note that these\n external sites are not operated by us. Therefore, we strongly advise\n you to review the privacy policy of these websites. We have no control\n over and assume no responsibility for the content, privacy policies,\n or practices of any third-party sites or services.\n \n \n \n Children’s Privacy\n\n \n These services do not address anyone under the age of 13. We do not\n knowingly collect personally identifiable information from children\n under 13 years of age. In the case we discover that a child under 13\n has provided us with personal information, we immediately delete this\n from our servers. If you are a parent or guardian and you are aware\n that your child has provided us with personal information, please\n contact us so that we will be able to do necessary actions.\n \n \n \n \n Changes to this Privacy Policy\n \n\n \n We may update our privacy policy from time to time. Thus, you are\n advised to review this page periodically for any changes. We will\n notify you of any changes by posting the new privacy policy on this\n page. This policy is effective as of 2020-12-01\n \n \n \n Contact Us\n\n \n If you have any questions or suggestions about our privacy policy, do\n not hesitate to contact us at{\" \"}\n team@merakilearn.org.\n \n \n \n );\n}\n\nexport default PrivacyPolicy;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport ReactPaginate from \"react-paginate\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\n// import { BsArrowUpDown } from \"react-icons/bs\";\nimport { BsArrowDownUp } from 'react-icons/bs';\n\nimport \"./styles.scss\";\nimport { METHODS } from \"../../../services/api\";\nimport { Link } from \"react-router-dom\";\nimport { useDebounce } from \"use-debounce\";\nimport { PATHS } from \"../../../constant\";\nimport { useSelector } from \"react-redux\";\nimport { toast } from \"react-toastify\";\nimport { Redirect } from \"react-router-dom\";\n\ntoast.configure();\n\nfunction PartnerDashboard() {\n const [pageNumber, setPageNumber] = useState(0);\n const [totalCount, setTotalCount] = useState();\n const [partners, setPartners] = useState([]);\n const [slicedPartners, setSlicedPartners] = useState([]);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [sortMethod, setSortMethod] = useState(\"dsc\");\n const [sort_class, setSortClass] = useState(\"sorter\");\n const [debouncedText] = useDebounce(searchTerm, 400);\n const [message, setMessage] = useState(\"\");\n const [isDisabled, setDisabled] = useState(false);\n\n const user = useSelector(({ User }) => User);\n const limit = 15;\n\n \n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners${\n searchTerm.length > 0 ? `?name=${searchTerm}` : \"\"\n }`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n }).then((res) => {\n if (res.data.partners.length < 1) {\n setSlicedPartners([]);\n setMessage(\"There are no results to display\");\n } else {\n setPartners(res.data.partners);\n setSlicedPartners(\n res.data.partners.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n setTotalCount(res.data.partners.length);\n }\n });\n }, [debouncedText]);\n\n useEffect(() => {\n const slicedData = partners.slice(\n pageNumber * limit,\n (pageNumber + 1) * limit\n );\n setSlicedPartners(slicedData);\n }, [pageNumber]);\n\n const pageCount = Math.ceil(totalCount / limit);\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n };\n\n const sortPartners = (byMethod) => {\n let sortedPartners = partners;\n if (byMethod === \"name\") {\n sortedPartners = partners.sort().reverse();\n } else if (byMethod === \"students\") {\n sortedPartners = partners.sort((a, b) => {\n return sortMethod === \"asc\" ? a.users - b.users : b.users - a.users;\n });\n }\n setPartners(sortedPartners);\n setSlicedPartners(\n sortedPartners.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n if (sortMethod === \"asc\") {\n setSortClass(\"sorter\");\n setSortMethod(\"dsc\");\n } else {\n setSortClass(\"sorter turn\");\n setSortMethod(\"asc\");\n }\n };\n\n const createMerakiLink = (id, platform) => {\n // commenting the console.log for now\n // console.log(id, platform);\n\n axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/${id}/merakiLink`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n platform: platform,\n },\n })\n .then((res) => {\n console.log(res);\n\n toast.success(\"Link created!\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners?${\n searchTerm.length > 0\n ? `name=${searchTerm}`\n : `limit=${limit}&page=${pageNumber + 1}`\n }`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n }).then((res) => {\n setPartners(res.data.partners);\n setTotalCount(res.data.count);\n });\n })\n .catch(() => {\n toast.error(\"Something went wrong\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n });\n };\n if (user.data.user.rolesList.indexOf(\"admin\") > -1) {\n return (\n <>\n
\n
\n
\n {\n setSearchTerm(e.target.value);\n setMessage(\"\");\n }}\n />\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n onPageChange={changePage}\n pageCount={pageCount}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n
\n \n \n \n \n \n \n \n {/* */}\n \n \n \n {slicedPartners.map((item) => {\n return (\n \n \n \n {item.meraki_link ? (\n \n ) : (\n \n )}\n {item.web_link ? (\n \n ) : (\n \n )}\n {/* */}\n \n );\n })}\n {message ?

{message}

: null}\n \n
\n Partner's Name\n sortPartners(\"name\")}\n >\n \n \n \n Number of students\n sortPartners(\"students\")}\n >\n \n \n Meraki - Android LinkMeraki - Web LinkPartner specific url
\n \n {\" \"}\n {item.name}\n \n {item.user}\n \n Get Link\n \n {\n toast.success(\"Copied to Clipboard\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 1200,\n });\n }}\n >\n \n \n \n createMerakiLink(item.id, \"android\")}\n >\n Create link\n \n \n \n Get Link\n \n {\n toast.success(\"Copied to Clipboard\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 1200,\n });\n }}\n >\n \n \n \n createMerakiLink(item.id, \"web\")}\n >\n Create link\n \n \n \n Get Url\n \n {\n toast.success(\"Copied to Clipboard\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 1200,\n });\n }}\n >\n \n \n
\n
\n \n );\n }\n return ;\n}\nexport default PartnerDashboard;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport { toast } from \"react-toastify\";\nimport \"./style.scss\";\nimport { METHODS } from \"../../services/api\";\nimport {\n TextField,\n InputAdornment,\n IconButton,\n Typography,\n Grid,\n} from \"@mui/material\";\nimport {\n Radio,\n RadioGroup,\n FormControlLabel,\n FormControl,\n} from \"@mui/material\";\nimport { Visibility, VisibilityOff } from \"@mui/icons-material\";\nimport { FormHelperText } from \"@mui/material\";\n\nfunction AddStudent({\n openEditForm,\n setOpenEditForm,\n userId,\n userName,\n userEmail,\n setTriggerdGet,\n studentid,\n stupassword,\n}) {\n const [openForm, setOpenForm] = useState(false);\n const [studentEmail, setStudentEmail] = useState(\"\");\n const [studentName, setStudentName] = useState(\"\");\n const [newUserName, setNewUserName] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [showPassword, setShowPassword] = useState(false);\n const [loginMethod, setLoginMethod] = useState(\"email\");\n const user = useSelector(({ User }) => User);\n const partnerId = window.location.pathname.split(\"/\")[2];\n const [error, setError] = useState(false);\n const [errorData, setErrorData] = useState(\"\");\n const [errors, setErrors] = useState({\n name: \"\",\n username: \"\",\n password: \"\",\n email: \"\",\n });\n\n const handlePasswordVisibility = (e) => {\n e.stopPropagation();\n setShowPassword(!showPassword);\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setErrors({ name: \"\", username: \"\", password: \"\", email: \"\" });\n if (name === \"studentName\") setStudentName(value);\n if (name === \"studentEmail\") setStudentEmail(value);\n if (name === \"newUserName\") setNewUserName(value);\n if (name === \"password\") setPassword(value);\n };\n\n const clearFormAndErrors = () => {\n setStudentName(\"\");\n setStudentEmail(\"\");\n setNewUserName(\"\");\n setPassword(\"\");\n setErrors({\n name: \"\",\n username: \"\",\n password: \"\",\n email: \"\",\n });\n setError(false);\n setErrorData(\"\");\n };\n\n useEffect(() => {\n if (openEditForm) {\n setStudentName(userName);\n setStudentEmail(userEmail);\n setLoginMethod(userEmail ? \"email\" : \"username\");\n setPassword(stupassword);\n setNewUserName(studentid);\n } else {\n clearFormAndErrors();\n }\n }, [openEditForm, userName, userEmail, studentid, stupassword]);\n\n const validateForm = () => {\n const newErrors = {\n name: \"\",\n username: \"\",\n password: \"\",\n email: \"\",\n };\n let isValid = true;\n if (!studentName) {\n newErrors.name = \"Please enter a student name\";\n isValid = false;\n }\n if (loginMethod === \"email\") {\n if (!studentEmail) {\n newErrors.email = \"Please enter an email\";\n isValid = false;\n }\n } else {\n if (!newUserName) {\n newErrors.username = \"Please enter a username\";\n isValid = false;\n }\n if (!password) {\n newErrors.password = \"Please enter a password\";\n isValid = false;\n }\n }\n setErrors(newErrors);\n return isValid;\n };\n\n const submit = () => {\n if (validateForm()) {\n setError(false);\n if (openEditForm) {\n editStudent();\n } else {\n addStudent();\n }\n }\n };\n\n const editStudent = () => {\n const data = { name: studentName };\n if (password) {\n data.password = password;\n }\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/${userId}/user`,\n method: METHODS.PUT,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n },\n data,\n })\n .then((data) => {\n if (data.data.error) {\n // Throw the full response data object\n throw data.data;\n }\n toast.success(`Student ${data.data.message}`, {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n setTriggerdGet((prev) => {\n return !prev;\n });\n clearFormAndErrors();\n setOpenEditForm(false);\n })\n .catch((e) => {\n if (e.erorrCode === 2001) {\n setErrors({ ...errors, name: e?.message });\n } else if (e.erorrCode === 2003) {\n setErrors({ ...errors, password: e?.message });\n } else {\n setErrorData(e?.message);\n setError(true);\n }\n });\n };\n\n const addStudent = () => {\n const url = `${process.env.REACT_APP_MERAKI_URL}/partners/addUser?partner_id=${partnerId}`;\n const headers = {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n };\n const data =\n loginMethod === \"email\"\n ? { name: studentName, email: studentEmail }\n : { name: studentName, user_name: newUserName, password: password };\n return axios({\n url,\n method: METHODS.POST,\n headers,\n data,\n })\n .then((response) => {\n if (response.data.error) {\n // Throw the full response data object\n throw response.data;\n }\n toast.success(\"Student Added Successfully\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n setTriggerdGet((prev) => {\n return !prev;\n });\n clearFormAndErrors();\n setOpenForm(false);\n })\n .catch((e) => {\n if (e.erorrCode === 2005) {\n setErrors({ ...errors, email: e?.message });\n } else if (e.erorrCode === 2001) {\n setErrors({ ...errors, name: e?.message });\n } else if (e.erorrCode === 2003) {\n setErrors({ ...errors, password: e?.message });\n } else {\n setErrorData(e?.message);\n setError(true);\n }\n });\n };\n\n return (\n <>\n \n {(openEditForm || openForm) && (\n
\n {\n setOpenForm(false);\n setOpenEditForm(false);\n clearFormAndErrors();\n }}\n >\n
\n
\n
\n

\n {openEditForm ? \"Edit Student\" : \"Add New Student\"}\n

\n {\n setOpenForm(false);\n setOpenEditForm(false);\n clearFormAndErrors();\n }}\n >\n X\n \n
\n \n \n \n \n\n \n \n Login Method\n \n \n setLoginMethod(e.target.value)}\n row\n disabled={openEditForm}\n >\n }\n label=\"Email\"\n disabled={openEditForm}\n />\n }\n label=\"Username and Password\"\n disabled={openEditForm}\n />\n \n \n \n\n {loginMethod === \"email\" ? (\n \n \n \n ) : (\n <>\n \n \n \n\n \n \n
\n handlePasswordVisibility(e)}\n >\n {showPassword ? (\n \n ) : (\n \n )}\n \n
\n \n ),\n }}\n />\n
\n \n )}\n\n {error && (\n \n \n {errorData}\n \n \n )}\n\n \n \n {openEditForm ? \"Update Student Details\" : \"Add Student\"}\n \n \n
\n
\n
\n \n
\n )}\n \n );\n}\n\nexport default AddStudent;\n\nfunction useOutsideAlerter(ref, handleClick) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n handleClick(event);\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref, handleClick]);\n}\n\nfunction OutsideAlerter({ children, handleClick }) {\n const wrapperRef = useRef(null);\n useOutsideAlerter(wrapperRef, handleClick);\n return (\n
\n {children}\n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\n// import { BsArrowUpDown } from \"react-icons/bs\";\nimport { BsArrowDownUp } from 'react-icons/bs';\nimport { PATHS } from \"../../../constant.js\";\n// import AccessTimeIcon from \"@mui/icons-material/AccessTime\";\nimport { METHODS } from \"../../../services/api.js\";\nimport { useDebounce } from \"use-debounce\";\nimport ReactPaginate from \"react-paginate\";\nimport moment from \"moment\";\nimport { Link } from \"react-router-dom\";\n// import Slider from \"rc-slider\";\nimport \"rc-slider/assets/index.css\";\nimport \"./styles.scss\";\nimport { Redirect } from \"react-router-dom\";\nimport AddStudent from \"../../../pages/AddStudent/index.js\";\nimport { toast } from \"react-toastify\";\nimport { hasOneFrom } from \"../../../common/utils\";\nimport {\n Box,\n Button,\n Grid,\n Container,\n Typography,\n CardContent,\n Card,\n} from \"@mui/material\";\nimport { Stack, Dialog, DialogTitle, DialogActions } from \"@mui/material\";\nimport { useHistory } from 'react-router-dom';\n\n\n// const { createSliderWithTooltip } = Slider;\n// const Range = createSliderWithTooltip(Slider.Range);\n\nconst getPartnerIdFromUrl = () => {\n let partnerId;\n if (window.location.pathname.includes(\"partner\")) {\n partnerId = window.location.pathname.split(\"/\").pop();\n }\n return partnerId;\n};\n\nfunction StudentData() {\n const [pageNumber, setPageNumber] = useState(0);\n const [totalCount, setTotalCount] = useState();\n const [message, setMessage] = useState(\"\");\n const [students, setStudents] = useState([]);\n const [slicedStudents, setSlicedStudents] = useState([]);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [sortMethod, setSortMethod] = useState(\"dsc\");\n const [sort_class, setSortClass] = useState(\"sorter\");\n // const [filterVal, setFilterVal] = useState([0, 0]);\n // const [filteredData, setFilteredData] = useState(false);\n const [debouncedText] = useDebounce(searchTerm, 400);\n const user = useSelector(({ User }) => User);\n const [openEditForm, setOpenEditForm] = useState(false);\n const [userId, setUserId] = useState();\n const [partnerName, setpartnerName] = useState();\n const [userName, setUserName] = useState();\n // const [isDisabled, setDisabled] = useState(true);\n const [studentid, setstudentId] = useState();\n const [stupassword, setStupassword] = useState();\n const [studentEmail, setStudentEmail] = useState();\n // const [csvUpdatedTime, setCSVUpdatedTime] = useState([]);\n const [showModal, setShowModal] = useState(false);\n const [selectedStudentId, setSelectedStudentId] = useState(null);\n const history = useHistory();\n\n const handleNavigation = () => {\n history.push('/report'); // Replace with your desired path\n };\n const [triggerdGet, setTriggerdGet] = useState(false);\n const loginUser = user.data.user.id;\n\n // Fetching the csv updated time\n\n // useEffect(() => {\n // axios({\n // method: METHODS.GET,\n // url: `${process.env.REACT_APP_MERAKI_URL}/tcb/csv/read-date-csv`,\n // headers: { accept: \"application/json\", Authorization: user.data.token },\n // })\n // .then((response) => {\n // setCSVUpdatedTime(response.data);\n // })\n // .catch((err) => {\n // console.log(err);\n // });\n // }, []);\n\n const limit = 10;\n let id = getPartnerIdFromUrl();\n\n const fetchAPI = () =>\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/${id}/users${searchTerm.length > 0 ? `?name=${searchTerm}` : \"\"\n }`,\n headers: { accept: \"application/json\", Authorization: user.data.token },\n })\n .then((res) => {\n setpartnerName(res.data.partner_name);\n if (\n id === user.data.user.partner_id ||\n hasOneFrom(user.data.user.rolesList, [\n \"admin\",\n \"partner_view\",\n \"partner_edit\",\n \"partner\",\n ])\n ) {\n if (\n !Array.isArray(res.data.students) ||\n res.data.students.length === 0\n ) {\n // if (res.data.students && res?.data?.students.length < 1) {\n setMessage(\"There are no results to display\");\n setSlicedStudents([]);\n } else {\n const data = res.data.students\n .map((item) => {\n if (item.classes_registered.length > 0) {\n item.averageRating = 0;\n let avg = 0;\n let count = 0;\n item.classes_registered.map((f) => {\n if (f.feedback.feedback) {\n avg = avg + parseInt(f.feedback.feedback);\n count += 1;\n }\n });\n if (avg > 0) item.averageRating = avg / count;\n else item.averageRating = avg;\n item.classes_registered = item.classes_registered.sort(\n (c1, c2) => {\n return new Date(c1.start_time) - new Date(c2.start_time);\n }\n );\n }\n return {\n ...item,\n // not overwriting original created_at because we need the date object to sort by date\n formatted_created_at: moment(item.created_at).format(\n \"DD-MM-YYYY\"\n ),\n // formatted_created_at: moment(\n // // item.created_at.replace(\"Z\")\n // ).format(\"DD-MM-YYYY\"),\n classes_registered: item.classes_registered.map((item) => {\n return {\n ...item,\n formatted_start_time: moment(\n item.start_time.replace(\"Z\", \"\")\n ).format(\"DD-MM-YYYY\"),\n /**\n * REVIEW\n * Why item is there again in the next line?\n */\n item,\n formatted_end_time: moment(\n item.end_time.replace(\"Z\", \"\")\n ).format(\"hh:mm a\"),\n };\n }),\n };\n })\n .sort((a, b) => {\n return a.name.localeCompare(b.name);\n });\n setStudents(data);\n setSlicedStudents(\n data.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n setTotalCount(data.length);\n setpartnerName(res.data.partner_name);\n }\n }\n })\n .catch((err) => { });\n\n useEffect(() => {\n fetchAPI();\n }, [debouncedText]);\n\n useEffect(() => {\n if (triggerdGet) {\n fetchAPI();\n setTriggerdGet(false);\n }\n }, [triggerdGet]);\n\n useEffect(() => {\n setSlicedStudents(\n students.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n }, [pageNumber, students]);\n\n const pageCount = Math.ceil(totalCount / limit);\n\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n const newSlicedStudents = students.slice(\n selected * limit,\n (selected + 1) * limit\n );\n setSlicedStudents(newSlicedStudents);\n };\n\n // todays date in the formate like 4 june 2024\n const today = new Date();\n const options = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n };\n const formattedDate = today.toLocaleDateString(\"en-US\", options);\n\n const sortStudents = (byMethod) => {\n const student = students;\n let sortedStudents;\n if (byMethod === \"name\") {\n sortedStudents = student.sort().reverse();\n } else if (byMethod === \"gmail_studentId\") {\n sortedStudents = student.sort().reverse();\n }\n\n // else if (byMethod === \"enroll_date\") {\n // sortedStudents = student.sort((a, b) =>\n // sortMethod === \"asc\"\n // ? new Date(a.created_at) - new Date(b.created_at)\n // : new Date(b.created_at) - new Date(a.created_at)\n // );\n // } else if (byMethod === \"total_classes\") {\n // sortedStudents = student.sort((a, b) =>\n // sortMethod === \"asc\"\n // ? a.classes_registered.length - b.classes_registered.length\n // : b.classes_registered.length - a.classes_registered.length\n // );\n // }\n else if (byMethod === \"last_class_title\") {\n const zeroClass = student.filter((a) => {\n return a.classes_registered.length <= 0;\n });\n sortedStudents = student\n .filter((a) => {\n return a.classes_registered.length > 0;\n })\n .sort((a, b) => {\n return sortMethod === \"asc\"\n ? a.classes_registered[\n a.classes_registered.length - 1\n ].title.localeCompare(\n b.classes_registered[b.classes_registered.length - 1].title\n )\n : b.classes_registered[\n b.classes_registered.length - 1\n ].title.localeCompare(\n a.classes_registered[a.classes_registered.length - 1].title\n );\n });\n sortedStudents = [...sortedStudents, ...zeroClass];\n }\n\n // else if (byMethod === \"last_class_date\") {\n // const zeroClass = students.filter((a) => {\n // return a.classes_registered.length <= 0;\n // });\n // sortedStudents = student\n // .filter((a) => {\n // if (a.classes_registered.length > 0) {\n // a.classes_registered = a.classes_registered.sort((c1, c2) => {\n // return new Date(c1.start_time) - new Date(c2.start_time);\n // });\n // return a;\n // }\n // })\n // .sort((a, b) => {\n // const startTimeOfA = [];\n // const startTimeOfB = [];\n // a.classes_registered.forEach((c) =>\n // startTimeOfA.push(new Date(c.start_time))\n // );\n // b.classes_registered.forEach((c) =>\n // startTimeOfB.push(new Date(c.start_time))\n // );\n // return sortMethod === \"asc\"\n // ? Math.max(...startTimeOfA) - Math.max(...startTimeOfB)\n // : Math.max(...startTimeOfB) - Math.max(...startTimeOfA);\n // });\n // sortedStudents = [...sortedStudents, ...zeroClass];\n // }\n\n // else if (byMethod === \"rating\") {\n // const zeroClass = student.filter((a) => {\n // return a.classes_registered.length <= 0;\n // });\n // sortedStudents = student.sort((a, b) => {\n // return sortMethod === \"asc\"\n // ? a.averageRating - b.averageRating\n // : b.averageRating - a.averageRating;\n // });\n // sortedStudents = [...sortedStudents, ...zeroClass];\n // }\n setStudents(sortedStudents);\n setSlicedStudents(\n sortedStudents.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n if (sortMethod === \"asc\") {\n setSortClass(\"sorter\");\n setSortMethod(\"dsc\");\n } else {\n setSortClass(\"sorter turn\");\n setSortMethod(\"asc\");\n }\n };\n\n // const handleChange = (value) => {\n // setFilteredData(true);\n // setFilterVal(value);\n // setDisabled(false);\n // };\n\n const handleClickOpen = (id) => {\n setSelectedStudentId(id);\n setShowModal(true);\n };\n\n const handleClose = () => {\n setShowModal(false);\n setSelectedStudentId(null);\n };\n\n const removeStudent = (id) => {\n setShowModal(!showModal);\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/${id}/user`,\n method: METHODS.DELETE,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((data) => {\n if (data.data.error) throw new Error(data.data.message);\n toast.success(\"Student deleted successfully!\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n window.location.reload(1);\n })\n .catch((e) => {\n toast.error(`Student couldn't be deleted!: ${e.message}`, {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n });\n };\n\n // let filter = [];\n // students.filter((item) => {\n // if (filterVal[0] === 0) {\n // if (item.classes_registered.length === 0) {\n // filter.push(item);\n // }\n // } else if (filterVal[0] === 30) {\n // if (item.classes_registered.length >= 30) {\n // filter.push(item);\n // }\n // } else {\n // const range = (min, max) =>\n // Array.from({ length: max - min + 1 }, (_, i) => min + i);\n // range(filterVal[0], filterVal[1]).map((range) => {\n // if (item.classes_registered.length === range) {\n // filter.push(item);\n // }\n // });\n // }\n // });\n\n // useEffect(() => {\n // if (filteredData) {\n // const slicedData = filter.slice(\n // pageNumber * limit,\n // (pageNumber + 1) * limit\n // );\n // setSlicedStudents(slicedData);\n // } else {\n // const slicedData = students.slice(\n // pageNumber * limit,\n // (pageNumber + 1) * limit\n // );\n // setSlicedStudents(slicedData);\n // }\n // }, [pageNumber, filterVal]);\n\n if (\n hasOneFrom(user.data.user.rolesList, [\n \"admin\",\n \"partner_view\",\n \"partner_edit\",\n \"partner\",\n ]) ||\n user.data.user.partner_id == id\n ) {\n // writing a function which calls the get api while clicking on the download report button\n\n const downloadReport = (url) => {\n axios({\n method: METHODS.GET,\n url: url,\n headers: { accept: \"application/json\", Authorization: user.data.token },\n responseType: \"blob\",\n })\n .then((res) => {\n const url = window.URL.createObjectURL(new Blob([res.data]));\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", \"report.csv\");\n document.body.appendChild(link);\n link.click();\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n // Usage:\n // For the first API ,student Progress Report\n // const studentReport1 = () => {\n // const reportUrl = `${process.env.REACT_APP_MERAKI_URL}/tcb/csv/progress/roport`;\n // downloadReport(reportUrl);\n // };\n // For the second API ,student Progress Report(_last 7 days)\n\n // const studentReport2 = () => {\n // const reportUrl = `${process.env.REACT_APP_MERAKI_URL}/tcb/csv/last-week/login-report`;\n // downloadReport(reportUrl);\n // };\n\n\n\n return id == 1359 ? (\n <>\n {/* \n {partnerName}\n \n */}\n
\n {partnerName}\n \n MCDigital Course-2.0\n \n
\n
\n {\n setSearchTerm(e.target.value);\n setMessage(\"\");\n }}\n />\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n onPageChange={changePage}\n pageCount={pageCount}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n
\n \n \n \n \n \n \n \n \n \n {slicedStudents.map((item) => {\n let getStars = 0;\n {\n /* let totalStarts = item.classes_registered.length * 5; */\n }\n item.classes_registered.map((stars) => {\n getStars = getStars + Number(stars.feedback.feedback);\n });\n return (\n \n \n \n {/* */}\n\n {/* */}\n\n \n\n {/* \n \n */}\n {((hasOneFrom(user.data.user.rolesList, [\n \"partner_edit\",\n \"partner\",\n ]) &&\n user.data.user.partner_id == id) ||\n hasOneFrom(user.data.user.rolesList, [\"admin\"])) && (\n \n )}\n \n );\n })}\n {message ?

{message}

: null}\n \n
\n Students Name\n sortStudents(\"name\")}\n >\n \n \n \n Gmail or Meraki Student ID\n sortStudents(\"gmail_studentId\")}\n >\n \n \n \n Latest Attended Class\n sortStudents(\"last_class_title\")}\n >\n \n \n
\n \n {item.name}\n \n \n \n {item.email ? item.email : item.user_name}\n \n \n {item.formatted_created_at}\n \n {\" \"}\n {item.classes_registered.length}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[item.classes_registered.length - 1][\n \"title\"\n ] != \"\"\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[item.classes_registered.length - 1][\n \"formatted_start_time\"\n ]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[item.classes_registered.length - 1][\n \"formatted_end_time\"\n ]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n : \"NA\"}\n \n {[1, 2, 3, 4, 5].map((star) => {\n return Math.ceil(item.averageRating) > 0 &&\n star <= Math.ceil(item.averageRating) ? (\n \n ) : (\n \n );\n })}\n \n {\n setOpenEditForm(true);\n setUserId(item.id);\n setUserName(item.name);\n setStudentEmail(item.email);\n setStupassword(item.password);\n setstudentId(item.user_name);\n }}\n />\n {loginUser == item.id ? null : (\n <>\n handleClickOpen(item.id)}\n />\n {/* dialog box for delete button */}\n\n \n \n \n Are you sure you want to delete this student?\n \n \n \n \n \n {\n e.stopPropagation();\n return removeStudent(selectedStudentId); // Ensure this function gets the correct student ID\n }}\n color=\"error\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n No\n \n \n \n \n \n \n )}\n
\n \n \n
\n {/* {showReportOptions && (\n
\n \n \n \n \n \n All Time Student Progress Report\n \n \n \n Last updated on {csvUpdatedTime.allUsersDetailUpdatedOn} at{\" \"}\n {csvUpdatedTime.at}\n \n \n The report contains student progress since the start of the\n programme until the present day\n \n \n Download Report\n \n \n \n \n \n \n \n \n Seven Days Student Progress Report\n \n \n \n Last updated on{\" \"}\n {csvUpdatedTime.lastWeekUsersLoginDetailsUpdatedOn} at{\" \"}\n {csvUpdatedTime.at}\n \n \n The report contains student progress from the last 7 days\n until the present day\n \n \n Download Report\n \n \n \n \n \n
\n )} */}\n \n ) : (\n
\n

{partnerName}

\n
\n
\n {\n setSearchTerm(e.target.value);\n setMessage(\"\");\n }}\n />\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n onPageChange={changePage}\n pageCount={pageCount}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n
\n {/*
\n \n
\n (value === 40 ? (value = \"30+\") : value)}\n value={filterVal}\n onChange={handleChange}\n marks={{\n 0: 0,\n 1: 1,\n 6: 6,\n 10: 10,\n 15: 15,\n 20: 20,\n 25: 25,\n 30: 30,\n 40: `${30}+`,\n }}\n />\n
\n {\n setFilteredData(false);\n setFilterVal([0, 0]);\n setDisabled(true);\n }}\n className=\"filter-clear\"\n >\n clear\n \n
*/}\n \n \n \n \n {/* */}\n {/* */}\n\n \n \n {/* \n \n */}\n \n \n \n {/* {filteredData\n ? slicedStudents.map((item) => {\n let getStars = 0;\n let totalStarts = item.classes_registered.length * 5;\n item.classes_registered.map((stars) => {\n getStars = getStars + Number(stars.feedback.feedback);\n });\n return (\n \n \n \n\n \n \n \n \n \n );\n }) */}\n {slicedStudents.map((item) => {\n let getStars = 0;\n {\n /* let totalStarts = item.classes_registered.length * 5; */\n }\n item.classes_registered.map((stars) => {\n getStars = getStars + Number(stars.feedback.feedback);\n });\n return (\n \n \n \n {/* */}\n\n {/* */}\n\n \n\n {/* \n \n */}\n {((hasOneFrom(user.data.user.rolesList, [\n \"partner_edit\",\n \"partner\",\n ]) &&\n user.data.user.partner_id == id) ||\n hasOneFrom(user.data.user.rolesList, [\"admin\"])) && (\n \n )}\n \n );\n })}\n {message ?

{message}

: null}\n \n
\n Students Name\n sortStudents(\"name\")}\n >\n \n \n \n Enroll date\n sortStudents(\"enroll_date\")}\n >\n \n \n \n Classes Enrolled to\n sortStudents(\"total_classes\")}\n >\n \n \n \n Gmail or Meraki Student ID\n sortStudents(\"gmail_studentId\")}\n >\n \n \n \n Latest Attended Class\n sortStudents(\"last_class_title\")}\n >\n \n \n \n Last Class Date\n sortStudents(\"last_class_date\")}\n >\n \n \n Last Class Time\n Average Rating\n sortStudents(\"rating\")}\n >\n \n \n
\n \n {item.name}\n \n \n {\" \"}\n {item.classes_registered.length}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"] != \"\"\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n : \"NA\"}\n \n {[1, 2, 3, 4, 5].map((star) => {\n return Math.ceil(item.averageRating) > 0 &&\n star <= Math.ceil(item.averageRating) ? (\n \n ) : (\n \n );\n })}\n
\n \n {item.name}\n \n \n \n {item.email ? item.email : item.user_name}\n \n \n {item.formatted_created_at}\n \n {\" \"}\n {item.classes_registered.length}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[item.classes_registered.length - 1][\n \"title\"\n ] != \"\"\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"title\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[item.classes_registered.length - 1][\n \"formatted_start_time\"\n ]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_start_time\"]\n : \"NA\"}\n \n {item.classes_registered &&\n item.classes_registered.length > 0 &&\n item.classes_registered[item.classes_registered.length - 1][\n \"formatted_end_time\"\n ]\n ? item.classes_registered[\n item.classes_registered.length - 1\n ][\"formatted_end_time\"]\n : \"NA\"}\n \n {[1, 2, 3, 4, 5].map((star) => {\n return Math.ceil(item.averageRating) > 0 &&\n star <= Math.ceil(item.averageRating) ? (\n \n ) : (\n \n );\n })}\n \n {\n setOpenEditForm(true);\n setUserId(item.id);\n setUserName(item.name);\n setStudentEmail(item.email);\n setStupassword(item.password);\n setstudentId(item.user_name);\n }}\n />\n {loginUser == item.id ? null : (\n <>\n handleClickOpen(item.id)}\n />\n {/* dialog box for delete button */}\n\n \n \n \n Are you sure you want to delete this student?\n \n \n \n \n \n {\n e.stopPropagation();\n return removeStudent(selectedStudentId); // Ensure this function gets the correct student ID\n }}\n color=\"error\"\n variant=\"contained\"\n sx={{ mr: \"15px\", width: \"100px\" }}\n >\n Yes\n \n \n No\n \n \n \n \n \n \n )}\n
\n\n \n
\n );\n }\n return ;\n}\n\nexport default StudentData;\n","import React, { useEffect, useState } from \"react\";\nimport \"./styles.scss\";\nimport { useDebounce } from \"use-debounce\";\nimport ReactPaginate from \"react-paginate\";\n// import { BsArrowUpDown } from \"react-icons/bs\";\nimport { BsArrowDownUp } from 'react-icons/bs';\n\n\n\nfunction StudentClassData(props) {\n const [pageNumber, setPageNumber] = useState(0);\n const [classes, setClasses] = useState([]);\n const [slicedClasses, setSlicedClasses] = useState([]);\n const [sortMethod, setSortMethod] = useState(\"dsc\");\n const [sort_class, setSortClass] = useState(\"sorter\");\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [debouncedText] = useDebounce(searchTerm);\n const [totalCount, setTotalCount] = useState(\n props.location.state.pass.length\n );\n\n const limit = 10;\n\n const pageCount = Math.ceil(totalCount / limit);\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n };\n\n useEffect(() => {\n const data = props.location.state.pass.filter((searchValue) => {\n if (searchTerm == \"\") {\n return searchValue;\n } else if (\n searchValue.title.toLowerCase().includes(searchTerm.toLowerCase())\n ) {\n return searchValue;\n }\n });\n setTotalCount(data.length);\n const slicedData = data.slice(pageNumber * limit, (pageNumber + 1) * limit);\n setClasses(data);\n setSlicedClasses(slicedData);\n }, [debouncedText, pageNumber]);\n\n const languageMap = {\n hi: \"Hindi\",\n te: \"Telugu\",\n en: \"English\",\n ta: \"Tamil\",\n };\n\n const sortClasses = (byMethod) => {\n let sortedClasses;\n if (byMethod === \"title\") {\n sortedClasses = classes.sort((a, b) =>\n sortMethod === \"asc\"\n ? a.title.localeCompare(b.title)\n : b.title.localeCompare(a.title)\n );\n } else if (byMethod === \"id\") {\n sortedClasses = classes.sort((a, b) =>\n sortMethod === \"asc\" ? a.id - b.id : b.id - a.id\n );\n } else if (byMethod === \"facilitator\") {\n sortedClasses = classes.sort((a, b) =>\n sortMethod === \"asc\"\n ? a.facilitator_name.localeCompare(b.facilitator_name)\n : b.facilitator_name.localeCompare(a.facilitator_name)\n );\n } else if (byMethod === \"date\") {\n sortedClasses = classes.sort((a, b) => {\n return sortMethod === \"asc\"\n ? new Date(a.start_time) - new Date(b.start_time)\n : new Date(b.start_time) - new Date(a.start_time);\n });\n } else if (byMethod === \"rating\") {\n const nullFeedback = classes.filter((c) => c.feedback.feedback === null);\n sortedClasses = classes\n .filter((c) => c.feedback.feedback)\n .sort((a, b) =>\n sortMethod === \"asc\"\n ? parseInt(a.feedback.feedback) - parseInt(b.feedback.feedback)\n : parseInt(b.feedback.feedback) - parseInt(a.feedback.feedback)\n );\n sortedClasses = [...sortedClasses, ...nullFeedback];\n }\n\n setClasses(sortedClasses);\n setSlicedClasses(\n sortedClasses.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n if (sortMethod === \"asc\") {\n setSortClass(\"sorter\");\n setSortMethod(\"dsc\");\n } else {\n setSortClass(\"sorter turn\");\n setSortMethod(\"asc\");\n }\n };\n\n return (\n
\n

\n {\" \"}\n Total Classes by {props.location.state.passName} :{\" \"}\n {props.location.state.pass.length}\n

\n

{props.location.state.passEmail}

\n
\n
\n {\n setSearchTerm(e.target.value);\n }}\n />\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n pageCount={pageCount}\n onPageChange={changePage}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n {classes && classes.length > 0 ? (\n slicedClasses.map((item) => {\n return (\n \n \n \n \n \n \n \n \n );\n })\n ) : (\n
\n

There are no results to display...

\n
\n )}\n \n
\n Class Title\n sortClasses(\"title\")}\n >\n \n \n \n Class Id\n \n \n Facilitator\n sortClasses(\"facilitator\")}\n >\n \n \n Language\n Class Date\n sortClasses(\"date\")}\n >\n \n \n \n Class Rating\n sortClasses(\"rating\")}\n >\n \n \n
{item.title}{item.id}{item.facilitator_name}{languageMap[item.lang]}{item.formatted_start_time}\n {[1, 2, 3, 4, 5].map((star) => {\n return item.feedback.feedback > 0 &&\n star <= item.feedback.feedback ? (\n \n ) : (\n \n );\n })}\n
\n
\n );\n}\n\nexport default StudentClassData;\n","import { makeStyles } from \"@material-ui/styles\";\nconst useStyles = makeStyles(() => ({\n profileBox: {\n // transform: \"translateY(-50px)\",\n },\n imageContainer: {\n width: \"100%\",\n justifyContent: \"left\",\n alignItems: \"left\",\n },\n\n bgImage: {\n width: \"100%\",\n objectFit: \"cover\",\n height: \"290px\",\n backgroundColor: \"pink\",\n },\n Right_tick: {\n marginLeft: \"8px\",\n verticalAlign: \"baseline\",\n },\n dialog: {\n padding: \"40px\",\n },\n}));\nexport default useStyles;\n","import * as React from \"react\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport { CircularProgress, Box, Typography } from \"@mui/material\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport { toast } from \"react-toastify\";\n\nexport default function DropOut(props) {\n const { open, close, title, id, unregister_all, setIsEnrolled } = props;\n const [loading, setLoading] = React.useState(false);\n const user = useSelector(({ User }) => User);\n\n const handelDropOut = (Id) => {\n setLoading(true);\n axios\n .delete(\n `${\n process.env.REACT_APP_MERAKI_URL\n }/classes/${Id}/unregister?unregister-all=${unregister_all || false}`,\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n },\n }\n )\n .then(() => {\n toast.success(\"Class Dropped\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n setLoading(false);\n close();\n if (setIsEnrolled) {\n setIsEnrolled(false);\n }\n })\n .catch((err) => {\n toast.error(\"Failed To Drop Out of Class\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n close();\n });\n };\n return (\n \n \n \n \n Confirm dropping out of the batch\n \n \n If you have missed some classes, you can take revision classes\n without dropping off\n \n \n \n {\n handelDropOut(id);\n }}\n color=\"error\"\n >\n {loading ? : \"Drop Out\"}\n \n \n \n \n \n );\n}\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n cardDrop: {\n margin: \"20px\",\n minWidth: \"300px\",\n cursor: \"pointer\",\n },\n cardContent: {\n height: \"145px\",\n },\n cardChip: {\n height: \"10px\",\n margin: \"12px 0px\",\n borderRadius: \"10px\",\n },\n cardImg: {\n display: \"flex\",\n },\n dropbatchDiv: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n alignItems: \"center\",\n },\n link: {\n textDecoration: \"none\",\n color: \"black\",\n },\n}));\nexport default useStyles;\n","import {\n Chip,\n Typography,\n Grid,\n Card,\n CardContent,\n CardActions,\n Button,\n} from \"@mui/material\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport axios from \"axios\";\nimport { format } from \"../../common/date\";\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../services/api\";\nimport DropOut from \"../BatchClassComponents/DropOut\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useStyles from \"./styles\";\nimport { Link } from \"react-router-dom\";\n\nfunction DropOutIndividualComponent(props) {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const { title, id, pathway_name, open, setOpen, start_time, end_time } =\n props;\n const close = () => {\n setOpen(false);\n };\n\n return (\n <>\n \n \n \n \n \n {title}\n \n \n {/* */}\n \n From {format(start_time, \"dd MMM yy\")} -{\" \"}\n {format(end_time, \"dd MMM yy\")}\n \n \n \n \n \n {\n setOpen(true);\n }}\n color=\"error\"\n >\n Drop Out\n \n \n \n \n \n );\n}\n\nfunction DropOutBatchesProfile() {\n const [dropOutBatches, setDropOutBatches] = useState(null);\n const [open, setOpen] = useState(false);\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const user = useSelector(({ User }) => User);\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/EnrolledBatches`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n if (res?.data?.length > 0) {\n setDropOutBatches(res.data);\n } else {\n setDropOutBatches(null);\n }\n })\n .catch((err) => {});\n }, [open]);\n\n // if (dropOutBatches !== null) {\n // dropOutBatches.map((item) => {console.log(item.pathway_id)})\n // }\n\n return (\n \n
\n {dropOutBatches && (\n \n Enrolled Batches\n \n )}\n \n {dropOutBatches?.map((dropOutBatch, index) => {\n return (\n \n \n \n );\n })}\n \n
\n \n );\n}\n\nexport default DropOutBatchesProfile;\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport {\n Typography,\n Container,\n CardContent,\n Button,\n Box,\n Modal,\n} from \"@mui/material\";\nimport { Card, Grid } from \"@mui/material\";\nimport DownloadIcon from \"@mui/icons-material/Download\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\n// import { actions as enrolledBatchesActions } from \"../../components/PathwayCourse/redux/action\";\nimport { PATHS, versionCode } from \"../../constant\";\nimport { Link } from \"react-router-dom\";\nimport useStyles from \"./styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\n\nfunction saveFile(url) {\n // Get file name from url.\n var filename = url.substring(url.lastIndexOf(\"/\") + 1).split(\"?\")[0];\n var xhr = new XMLHttpRequest();\n xhr.responseType = \"blob\";\n xhr.onload = function () {\n let a = document.createElement(\"a\");\n a.href = window.URL.createObjectURL(xhr.response); // xhr.response is a blob\n a.download = filename; // Set the file name.\n a.style.display = \"none\";\n document.body.appendChild(a);\n a.click();\n };\n xhr.open(\"GET\", url);\n xhr.send();\n}\n\nfunction CertificateCard({ item, courseTime, completedPortion }) {\n const user = useSelector(({ User }) => User);\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const [openModal, setOpenModal] = useState(false);\n const [certificate, setCertificate] = useState(\"\");\n const [loader, setLoader] = useState(false);\n const pathwayId = item.id;\n\n const date = new Date(courseTime);\n const options = { day: \"numeric\", month: \"short\", year: \"2-digit\" };\n const formattedDate = date.toLocaleDateString(\"en-US\", options);\n\n // useEffect(() => {\n // dispatch(pathwayActions.getPathwaysCourse({ pathwayId: pathwayId }));\n // }, [dispatch, pathwayId]);\n const modalStyle = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"544px\",\n bgcolor: \"background.paper\",\n outline: \"none\",\n borderRadius: \"8px\",\n boxShadow: 24,\n p: 4,\n };\n // useEffect(() => {\n // dispatch(pathwayActions.getPathwaysCourse({ pathwayId: pathwayId }));\n // }, [dispatch, pathwayId]);\n\n const completedAll = completedPortion == 100;\n\n useEffect(() => {\n if (completedAll) {\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/complete`,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization: user.data?.token || \"\",\n },\n data: {\n pathwayId: pathwayId,\n },\n });\n }\n });\n\n const handleModal = () => {\n setLoader(true);\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/certificate`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n })\n .then((response) => {\n setLoader(false);\n setOpenModal((prev) => !prev);\n setCertificate(response?.data?.url);\n })\n .catch((err) => {});\n };\n\n const downloadCert = () => {\n saveFile(certificate);\n };\n return (\n \n \n \n {`${item?.name} Certificate`}\n
\n \n {/* */}\n
\n {`Meraki certifies that you have diligently \n attended all classes and taken the practice questions.\n You have a good grasp of ${item?.name} fundamentals.`}\n \n {/* */}\n \n \n
\n \n\n {completedAll ? (\n <>\n \n \n \n \n \n \n \n {item.name}\n \n \n \n {formattedDate}\n \n \n\n \n \n \n \n ) : (\n <>\n \n Please complete one or more of the learning tracks in full to unlock\n your certificates.\n \n \n \n \n \n )}\n
\n );\n}\n\nexport default CertificateCard;\n","import React from \"react\";\nimport {\n Typography,\n Container,\n CardContent,\n Button,\n Box,\n Modal,\n} from \"@mui/material\";\n\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport { interpolatePath, PATHS } from \"../../constant\";\nimport { Link } from \"react-router-dom\";\nimport LockOpenIcon from \"@mui/icons-material/LockOpen\";\nfunction UnlockOpportunities(props) {\n const { item, completedPortion } = props;\n\n const completedAll = completedPortion >= 100;\n\n // useEffect(() => {\n // dispatch(pathwayActions.getPathwaysCourse({ pathwayId: pathwayId }));\n // }, [dispatch, pathwayId]);\n\n return (\n \n {completedAll ? (\n <>\n \n Opportunities\n \n \n \n Get Coursera paid subscriptions, free keyboards and scholarships to\n bootcamps\n \n \n \n \n \n ) : (\n <>\n \n Opportunities\n \n \n \n Unlock access to Coursera paid subscriptions, free keyboards and\n scholarships to bootcamps by completing the Python learning track.\n \n \n )}\n \n );\n}\n\nexport default UnlockOpportunities;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogContentText from \"@mui/material/DialogContentText\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport MuiPhoneNumber from \"material-ui-phone-number\";\nimport { format } from \"../../common/date\";\nimport Avatar from \"react-avatar-edit\";\n\nimport {\n Grid,\n TextField,\n Typography,\n Button,\n Container,\n Box,\n FormControl,\n FormHelperText,\n Snackbar,\n} from \"@mui/material\";\nimport { actions } from \"../../components/User/redux/action\";\nimport useStyles from \"./styles\";\nimport DropOutBatchesProfile from \"../../components/DropOutBatches/DropOutBatchesProfile\";\nimport {\n getAuth,\n RecaptchaVerifier,\n signInWithPhoneNumber,\n} from \"firebase/auth\";\nimport { initializeApp } from \"firebase/app\";\nimport CertificateCard from \"./CertificateCard\";\nimport { useParams, useHistory } from \"react-router-dom\";\n\nimport UnlockOpportunities from \"./UnlockOpportunities\";\nimport LastLoginTime from \"./LastLoginTime/LastLoginTime\";\nimport { toast } from \"react-toastify\";\n\nconst firebaseConfig = {\n apiKey: process.env.REACT_APP_API_KEY,\n authDomain: process.env.REACT_APP_authDomain,\n projectId: process.env.REACT_APP_projectId,\n storageBucket: process.env.REACT_APP_storageBucket,\n messagingSenderId: process.env.REACT_APP_messagingSenderId,\n appId: process.env.REACT_APP_appId,\n};\n\nfunction Profile() {\n // console.log(format(new Date(), 'yyyy/MM/dd kk:mm:ss'))\n const params = useParams();\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n const date = user.data.user.last_login_at;\n\n const [completedPortion, setCompletedPortion] = useState({});\n const [courseTime, setCourseTime] = useState();\n\n // console.log(timeData,timehourData,min,loginMin,hour,loginHour)\n\n const [userData, setUserData] = useState([]);\n const [isEditing, setIsEditing] = useState(false);\n const [editName, setEditName] = useState(null);\n const [msg, setMsg] = useState();\n const [LoadBatches, setLoadBatches] = useState(false);\n const dispatch = useDispatch();\n const [helperText, setHelperText] = useState();\n const [showError, setShowError] = useState(true);\n const [open, setOpen] = React.useState(false);\n const [imgDialogs, setImgDialoags] = useState(false);\n const [imgCrop, setImgCrop] = useState(false);\n const [storeImg, setStoreImg] = useState([]);\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const [new_Profiles, setNew_Profiles] = useState(userData.profile_picture);\n const [countryCode, setCountryCode] = useState(\n `+${user?.data?.user?.contact?.split(\"-\")?.[0]}` || \"+91\"\n );\n const [contact, setContact] = useState(\n user?.data?.user?.contact?.split(\"-\")?.[1] || null\n );\n\n const [confirmationResult, setConfirmationResult] = React.useState(null);\n const [message, setMessage] = React.useState(\"\");\n const [startOtp, setStartOtp] = React.useState(false);\n\n const [otp, setOtp] = React.useState(\"\");\n const [snackBarOpen, setSnackBarOpen] = React.useState(false);\n\n const { loading, data } = useSelector((state) => state.PathwaysDropdow);\n\n const handleSnackBarClose = () => {\n setSnackBarOpen(false);\n setMessage(\"\");\n };\n const onCrop = (view) => {\n setImgCrop(view);\n };\n\n const onExit = () => {\n setImgCrop(null);\n };\n\n const saveImg = () => {\n setShowError(false);\n setStoreImg([...storeImg, { imgCrop }]);\n setImgDialoags(false);\n };\n\n const New_Profile = storeImg.map((item) => item.imgCrop);\n\n const handleClickOpen = () => {\n setIsEditing(true);\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n // OTP AUTH FUNCTION\n const app = initializeApp(firebaseConfig);\n const onSignInSubmit = (event) => {\n event.preventDefault();\n if (!confirmationResult) {\n setupRecaptcha();\n }\n const phoneNumber = `${countryCode}${contact}`;\n const appVerifier = window.recaptchaVerifier;\n const auth = getAuth();\n\n signInWithPhoneNumber(auth, phoneNumber, appVerifier)\n .then((result) => {\n setMessage(\"OTP sent successfully\");\n setSnackBarOpen(true);\n setStartOtp(true);\n setConfirmationResult(result);\n })\n .catch((error) => {\n console.log(error);\n setMessage(\"Enter valid phone number\");\n setOpen(true);\n });\n };\n const setupRecaptcha = () => {\n const auth = getAuth();\n window.recaptchaVerifier = new RecaptchaVerifier(\n \"recaptcha-container\",\n {\n size: \"invisible\",\n callback: (response) => {\n onSignInSubmit();\n },\n },\n auth\n );\n };\n useEffect(() => {}, [showError]);\n const OtpEnter = (event) => {\n confirmationResult\n .confirm(otp)\n .then((result) => {\n const user = result.user;\n if (!user.isAnonymous) {\n setShowError(false);\n setMessage(\"Phone number verified successfully\");\n setSnackBarOpen(true);\n }\n })\n .catch((error) => {\n setMessage(\"enter valid otp\");\n setOpen(true);\n setOtp(\"\");\n });\n };\n // OTP AUTH FUNCTION\n useEffect(() => {\n if (loading) {\n dispatch(actions.onUserRefreshDataIntent({ token: user.data.token }));\n }\n }, []);\n\n useEffect(() => {\n setUserData(user?.data?.user);\n });\n\n useEffect(() => {\n setEditName(userData?.name);\n }, [setEditName, userData]);\n\n useEffect(() => {\n if (editName == \"\") {\n setHelperText(\"Please enter your name\");\n setShowError(true);\n } else if (\n /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,<>\\/?]+/.test(editName) ||\n /\\d/.test(editName)\n ) {\n setHelperText(\n \"Please use only capital or small letters. Numbers and symbols cannot be used in a name\"\n );\n setShowError(true);\n } else if (editName?.length > 25) {\n setHelperText(\"Name length should not be more than 25\");\n } else {\n setHelperText();\n }\n }, [editName]);\n\n const pathwayId = data?.pathways?.find((item) => item.code === \"PRGPYT\")?.id;\n\n useEffect(() => {\n if (user?.data?.token && pathwayId) {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/totalProgress`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n })\n .then((response) => {\n setCompletedPortion(response.data.total_completed_portion);\n setCourseTime(response.data.complete_at);\n })\n .catch((err) => {});\n }\n }, [pathwayId]);\n\n const editProfile = () => {\n let payload = {\n name: editName,\n profile_picture: new_Profiles,\n };\n\n if (contact != null) {\n payload[\"contact\"] = `${countryCode.replace(\"+\", \"\")}-${contact}`;\n }\n\n setIsEditing(false);\n setMsg(true);\n axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/users/${user.data.user.id}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n data: payload,\n })\n .then((res) => {\n dispatch(actions.onUserRefreshDataIntent({ token: user.data.token }));\n setMsg(false);\n setUserData(res.data.user);\n toast.success(`Profile Updated Successfully`, {\n position: toast.POSITION.BOTTOM_RIGHT,\n });\n })\n .catch((err) => {});\n };\n\n return (\n <>\n \n \n \n \n \n {isEditing && (\n \n \n \n {\"Edit Profile\"}\n \n \n \n \n \n \n \n {\n setImgDialoags(true);\n setImgCrop(false);\n }}\n color=\"primary\"\n sx={{ cursor: \"pointer\", pb: 2 }}\n >\n Update Photo\n \n setImgDialoags(false)}\n >\n \n Update Photo\n \n {\n const formDatas = new FormData();\n formDatas.append(\"image\", file);\n fetch(\n `${process.env.REACT_APP_MERAKI_URL}/courseEditor/ImageUploadS3`,\n {\n headers: {\n accept:\n \"application/json, text/plain, */*\",\n \"accept-language\":\n \"en-GB,en-US;q=0.9,en;q=0.8\",\n },\n referrerPolicy:\n \"strict-origin-when-cross-origin\",\n body: formDatas,\n method: \"POST\",\n mode: \"cors\",\n credentials: \"omit\",\n }\n ).then((res) => {\n res.json().then((data) => {\n setNew_Profiles(data.file.url);\n });\n });\n }}\n onCrop={onCrop}\n />\n \n \n \n Tips: Try square JPG or PNG with atleast 500*500\n resolution for high quality profile display\n \n \n \n \n
\n \n \n 0\n }\n // id=\"standard-basic\"\n label=\"Name\"\n fullWidth\n sx={{ mt: \"10px\", width: \"100%\" }}\n value={editName}\n helperText={helperText}\n onChange={(e) => {\n setEditName(e.target.value);\n if (e.target.value != userData.name) {\n setShowError(false);\n }\n }}\n />\n \n \n Email cannot be changed as it is linked to your Google\n account\n \n \n \n \n \n \n {\n setCountryCode(val);\n }}\n />\n \n \n {\n setContact(e.target.value);\n }}\n value={contact}\n name=\"contact\"\n id=\"contact\"\n variant=\"outlined\"\n helperText=\"Enter Phone Number\"\n fullWidth\n maxLength={10}\n error={contact?.length != 10 && contact?.length > 0}\n />\n \n \n {\n onSignInSubmit(event);\n setShowError(true);\n }}\n disabled={contact?.length != 10}\n >\n Get OTP\n {\" \"}\n \n {startOtp && (\n <>\n \n {\n setOtp(e.target.value);\n }}\n value={otp}\n name=\"OTP\"\n id=\"contact\"\n variant=\"outlined\"\n helperText=\"Enter OTP\"\n fullWidth\n maxLength={6}\n error={otp.length != 6 && otp.length > 0}\n />\n \n \n {\n OtpEnter(e);\n }}\n disabled={otp.length != 6}\n >\n Verify OTP\n {\" \"}\n \n \n )}\n \n \n \n \n setIsEditing(false)}\n >\n Cancel\n \n \n Save Changes\n \n \n \n \n )}\n\n {msg ? (\n Please wait...\n ) : (\n \n {userData.name}\n {isActive && !isEditing && (\n \n )}\n \n )}\n\n \n {userData.email}\n \n {/* \n {user.data.user.rolesList.includes(\"volunteer\") &&\n userData.contact !== null && (\n <>\n \n {`+${userData.contact?.replace(\"-\", \"\")}`}\n \n \n \n )}\n */}\n\n \n {/* {!isActive && \"Edit Profile\"} */}\n Edit Profile\n \n\n {/* */}\n \n \n \n \n My Certificates\n \n {data?.pathways?.map(\n (item) =>\n item.code === \"PRGPYT\" && (\n \n )\n )}\n\n {data?.pathways?.map(\n (item) =>\n item.code === \"PRGPYT\" && (\n \n )\n )}\n \n \n \n \n );\n}\nexport default Profile;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n section_Heading: {\n margin: \"32px 0px 16px 0px\",\n },\n\n cards: {\n maxWidth: \"352px\",\n },\n mobileCards: {\n maxWidth: \"100%\",\n },\n\n card_button: {\n margin: \"0px 0px 16px 0px\",\n align: \"center\",\n },\n}));\n\nexport default useStyles;\n","import React, { useState, useEffect } from \"react\";\nimport useStyles from \"./styles\";\nimport { PATHS } from \"../../constant\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../services/api\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { getQueryVariable } from \"../../common/utils\";\nimport { Link } from \"react-router-dom\";\nimport ExternalLink from \"../../components/common/ExternalLink\";\n\nimport {\n Container,\n Typography,\n Chip,\n Grid,\n Button,\n CardContent,\n CardActions,\n useMediaQuery,\n Card,\n} from \"@mui/material\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\n\nfunction Opportunities() {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const [partner, setPartner] = useState([]);\n const user = useSelector(({ User }) => User);\n\n const partnerId = user.data && user.data.user.partner_id;\n\n const partnerIdFromAndroid = getQueryVariable(\"partner_id\");\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data ? user.data.token : \"\",\n },\n })\n .then((res) => {\n setPartner(res.data.partners);\n })\n .catch((err) => {});\n }, []);\n\n return (\n <>\n \n \n \n \n Curated list of opportunities to skyrocket your career\n \n \n Admission Opportunities\n \n \n \n \n \n \n \n \n NavGurukul One-Year Residential Programmme\n \n \n \n \n Featured\n \n \n \n \n Eligibility: Basic coding knowledge\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n HyperVerge Fellowships\n \n \n Eligibility: Basic coding knowledge\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Grants / Advanced Courses / Mentorships\n \n \n \n \n By learning with Meraki, you can avail benefits such as:\n
    \n
  • Grants such as free keyboards for typing practice
  • \n
  • Coursera Membership
  • \n
  • Advanced english courses
  • \n
  • 1:1 Mentorship sessions
  • \n
\n
\n \n \n }\n variant=\"outlined\"\n sx={{ width: isActive ? \"100%\" : \"255px\" }}\n >\n Apply Now\n \n \n \n
\n
\n \n
\n \n );\n}\nexport default Opportunities;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n Grid_Space: {\n margin: \"40px 0px\",\n },\n AFE_approaches: {\n fontWeight: 700,\n },\n Approaches_text: {\n marginLeft: \"28px\",\n },\n Hadings: {\n marginBottom: \"20px\",\n },\n\n Fiber_space: {\n marginRight: \"8px\",\n },\n Ng_AFE: {\n marginBottom: \"16px\",\n },\n Img_size: {\n width: 328,\n height: 210,\n },\n Large_img_size: {\n width: 543,\n height: 360,\n },\n IMG: {\n width: \"95%\",\n // height: \"90%\",\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport useStyles from \"./styles\";\nimport { breakpoints } from \"../../theme/constant\";\nimport {\n Container,\n Typography,\n Grid,\n Button,\n useMediaQuery,\n List,\n ListItem,\n ListItemText,\n} from \"@mui/material\";\n\n\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport CircleIcon from \"@mui/icons-material/Circle\";\n\nfunction AFEpage() {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n Closing The Gender Gap in Technology\n \n \n \n \n India’s tech industry employs 10 million people; however, women\n only make up 34% of the workforce. Women represent 40% of\n entry-level tech jobs & the representation gets lower as they move\n up, with 30% in mid-level positions and as low as 20% in senior\n roles.\n \n\n \n To reduce the gender gap in technology and equip them with CS\n readiness skills, we work with young women from underserved\n communities.\n \n \n \n \n \n Our Mission\n \n \n \n \n \n \n Our Mission\n \n \n \n NavGurukul is a registered non-profit organisation working to\n empower students from underserved communities financially. Started\n in 2016 by IIT-D Alumnus, the organisation equips the youth with\n 21st-century skills through programming, coding, critical\n thinking, and problem-solving. It is committed to supporting its\n students until their placements.\n \n\n \n NavGurukul offers a 1-year fully-funded skilling and recruitment\n program in software engineering that enables them to secure\n aspirational careers.\n \n \n \n \n \n \n \n \n Our Approach\n \n \n \n \n \n \n\n \n \n \n Our Approach\n \n \n \n NavGurukul is working with a two-step approach to make our\n students CS-ready and placed in tech jobs.\n \n \n \n \n Accessibility and readiness program: Meraki\n \n Age group: 13+ girls/ women\n \n \n \n \n \n \n Skilling and job placement program: Residential Program\n \n Age group 18 - 29 years\n \n \n \n \n \n \n \n\n \n \n NavGurukul 🤝 AFE\n \n \n \n \n \n \n Amazon Future Engineer (AFE) is a comprehensive\n childhood-to-career program to increase access to computer\n science education for children and young adults who typically\n lack these opportunities.\n \n \n To take its mission forward in India, AFE has partnered with\n Navguruku in its Meraki program to close the gender gap in\n technology. Meraki is an android application focused on making\n programming and digital skills accessible to learners from\n different communities through a smartphone to create direct job\n opportunities or admissions to aspirational training programs.\n The focus area is young women and girls to bridge the gender gap\n in the digital literacy sector.\n \n \n \n \n \n \n \n \n \n );\n}\nexport default AFEpage;\n","import React, { useState } from \"react\";\nimport \"./styles.scss\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\n\nfunction NavgurukulIntroduce() {\n const [getMerakiUrl, setGetMerakiUrl] = useState([]);\n\n const partnerId = window.location.href.split(\"navgurukul/\")[1];\n\n const getMerakiLink = () => {\n axios({\n method: METHODS.PUT,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/${partnerId}/merakiLink`,\n headers: {\n accept: \"application/json\",\n platform: \"android\",\n },\n })\n .then((res) => {\n setGetMerakiUrl(res.data.meraki_link);\n })\n .catch((err) => {});\n };\n\n return (\n
\n );\n}\n\nexport default NavgurukulIntroduce;\n","import React, { useState, useEffect } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { getQueryVariable } from \"../../../common/utils\";\nimport { PATHS } from \"../../../constant\";\nimport { sendToken } from \"../../User/redux/api\";\n\nfunction RedirectComponent() {\n const [emailId, setEmailId] = useState(null);\n // const uri = window.location.href;\n // const uri = `https://www.merakilearn.org/redirect?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0MSIsImVtYWlsIjoicG9vbmFtMTlAbmF2Z3VydWt1bC5vcmciLCJpYXQiOjE2NDU1MDgwNDIsImV4cCI6MTY3NzA2NTY0Mn0.az9n0hnUmj_2jHzj7LJ6ldAa_f74_gECF1BBDIzgU44&redirectUrl=admission`;\n\n const token = getQueryVariable(\"token\");\n // undefined => \"\", remove leading slashes in redirect\n const redirect = (getQueryVariable(\"redirectUrl\") || \"\").replace(/^\\/+/g, \"\");\n\n useEffect(() => {\n sendToken({ token })\n .then((res) => {\n if (res.data.user.email) {\n setEmailId(res.data.user.email);\n }\n })\n .catch((err) => {});\n }, []);\n\n try {\n if (emailId && !emailId.includes(\"@fake.com\")) {\n localStorage.setItem(\"Token\", token);\n }\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n\n return (\n <>\n {emailId ? (\n \n ) : null}\n \n );\n}\n\nexport default RedirectComponent;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { Link } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../../services/api\";\nimport star from \"../../../asset/ratingIcon.svg\";\nimport moment from \"moment\";\nimport \"./styles.scss\";\nimport { useDebounce } from \"use-debounce\";\nimport ReactPaginate from \"react-paginate\";\n// import { BsArrowUpDown } from \"react-icons/bs\";\nimport { BsArrowDownUp } from 'react-icons/bs';\n\nfunction VolunteerDashboard() {\n const limit = 10;\n const [volunteer, setVolunteer] = useState([]);\n const [selctedPathway, setSelectedPathway] = useState(\"\");\n const [cacheVolunteer, setCacheVolunteer] = useState([]);\n const [slicedVolunteer, setSlicedVolunteer] = useState([]);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [pageNumber, setPageNumber] = useState(0);\n const [sortMethod, setSortMethod] = useState(\"dsc\");\n const [debouncedText] = useDebounce(searchTerm);\n const [language, setLangue] = useState(\"All\");\n const [week, setWeek] = useState(\"All\");\n const [rating, setRating] = useState(\"All\");\n\n let pageCount = Math.ceil(volunteer && volunteer.length / limit);\n\n if (selctedPathway) {\n pageCount = Math.ceil(slicedVolunteer && slicedVolunteer.length / limit);\n }\n\n const [dropdowns, setDropdowns] = useState({\n duration: false,\n language: false,\n rating: false,\n });\n\n const user = useSelector(({ User }) => User);\n\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n };\n\n const handleDropdown = (e) => (key) => {\n setDropdowns({ ...dropdowns, [key]: !dropdowns[key] });\n };\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/volunteers`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setVolunteer(res.data);\n setCacheVolunteer(res.data);\n setSlicedVolunteer(\n res.data.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n pageCount = Math.ceil(\n slicedVolunteer && slicedVolunteer.length / limit\n );\n })\n .catch((err) => {});\n }, []);\n\n const languageMap = {\n hi: \"Hindi\",\n te: \"Telugu\",\n en: \"English\",\n ta: \"Tamil\",\n };\n\n function filterPathway(pathway, volunteer) {\n return volunteer.filter((el) => {\n for (let i of el.pathways) {\n if (i === pathway) {\n return true;\n }\n }\n });\n }\n\n function filterweek(language, rating) {\n language(\"All\");\n rating(\"All\");\n let date = Date.now();\n return cacheVolunteer.filter((el) => {\n const classes = el.classes;\n const cur_date =\n classes.length && new Date(classes[classes.length - 1].end_time);\n if (week === \"All\") {\n return true;\n }\n if (cur_date >= date - week * 7 * 24 * 60 * 60 * 1000) {\n return true;\n }\n });\n }\n\n function ratings(week, language) {\n week(\"All\");\n language(\"All\");\n return cacheVolunteer.filter(\n (el) => rating === \"All\" || rating == el.avg_rating\n );\n }\n\n function numberOfWeek(el) {\n const classes = el.classes;\n let last_date =\n classes.length && new Date(classes[classes.length - 1].end_time);\n let new_date = classes.length && new Date(el.classes[0].end_time);\n return Math.ceil((last_date - new_date) / (7 * 24 * 60 * 60 * 1000));\n }\n\n function filterLanguage(week, rating) {\n week(\"All\");\n rating(\"All\");\n return cacheVolunteer.filter(\n (el) =>\n language == \"All\" ||\n language == languageMap[el.classes[el.classes.length - 1].lang]\n );\n }\n\n const sortVolunteers = (byMethod) => {\n let sortedVolunteers;\n if (byMethod === \"enroll_date\") {\n sortedVolunteers = volunteer.sort((a, b) =>\n sortMethod === \"asc\"\n ? new Date(a.last_class_date) - new Date(b.last_class_date)\n : new Date(b.last_class_date) - new Date(a.last_class_date)\n );\n }\n setVolunteer(sortedVolunteers);\n setSlicedVolunteer(\n sortedVolunteers.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n if (sortMethod === \"asc\") {\n setSortMethod(\"dsc\");\n } else {\n setSortMethod(\"asc\");\n }\n };\n\n useEffect(() => {\n const data =\n volunteer &&\n volunteer.filter((searchValue) =>\n searchValue.name.toLowerCase().includes(searchTerm.toLowerCase())\n );\n const slicedData = data.slice(pageNumber * limit, (pageNumber + 1) * limit);\n // setVolunteer(data)\n setSlicedVolunteer(slicedData);\n }, [debouncedText, pageNumber]);\n\n return (\n <>\n
\n
\n {\n setSearchTerm(e.target.value);\n }}\n />\n
\n\n
\n {\n setSlicedVolunteer(filterPathway(\"Python\", cacheVolunteer));\n setSelectedPathway(\"Python\");\n }}\n >\n Python\n \n {\n setSlicedVolunteer(\n filterPathway(\"Spoken English\", cacheVolunteer)\n );\n setSelectedPathway(\"Spoken English\");\n }}\n >\n Spoken English\n \n {\n setSlicedVolunteer(filterPathway(\"Typing\", cacheVolunteer));\n setSelectedPathway(\"Typing\");\n }}\n >\n Typing\n \n {\n setSelectedPathway(\"Filter\");\n setSlicedVolunteer(cacheVolunteer);\n }}\n >\n Filter\n \n
\n\n {selctedPathway === \"Filter\" ? (\n
\n
\n Duration\n \n {dropdowns.duration ? (\n
\n
    \n {\n setWeek(\"All\");\n }}\n className={week === \"All\" ? \"checked\" : \"\"}\n value=\"All Time\"\n >\n All Time\n \n {\n setWeek(1);\n }}\n className={week === 1 ? \"checked\" : \"\"}\n value=\"Past 1 week\"\n >\n Past 1 week\n \n {\n setWeek(4);\n }}\n className={week === 4 ? \"checked\" : \"\"}\n value=\"Past 4 week\"\n >\n Past 4 week\n \n {\n setWeek(8);\n }}\n className={week === 8 ? \"checked\" : \"\"}\n value=\"Past 8 week\"\n >\n Past 8 week\n \n {\n setWeek(12);\n }}\n className={week === 12 ? \"checked\" : \"\"}\n value=\"Past 12 week\"\n >\n Past 12 week\n \n
\n {\n setSlicedVolunteer(filterweek(setLangue, setRating));\n handleDropdown(e)(\"duration\");\n }}\n >\n Apply\n \n
\n ) : (\n \"\"\n )}\n
\n
\n Language\n \n {dropdowns.language ? (\n
\n
    \n {\n setLangue(\"All\");\n }}\n className={language == \"All\" ? \"checked\" : \"\"}\n value=\"All\"\n >\n All\n \n {\n setLangue(\"English\");\n }}\n className={language == \"English\" ? \"checked\" : \"\"}\n value=\"English\"\n >\n English\n \n {\n setLangue(\"Hindi\");\n }}\n className={language == \"Hindi\" ? \"checked\" : \"\"}\n value=\"Hindi\"\n >\n Hindi\n \n
\n {\n setSlicedVolunteer(filterLanguage(setWeek, setRating));\n handleDropdown(e)(\"language\");\n }}\n >\n Apply\n \n
\n ) : (\n \"\"\n )}\n
\n
\n Avg. Rating\n \n {dropdowns.rating ? (\n
\n
    \n {\n setRating(\"All\");\n }}\n className={rating === \"All\" ? \"checked\" : \"\"}\n value=\"All ratings\"\n >\n All\n \n {\n setRating(4);\n }}\n className={rating === 4 ? \"checked\" : \"\"}\n value=\"4 Stars\"\n >\n \n \n \n & Above\n \n {\n setRating(3);\n }}\n className={rating === 3 ? \"checked\" : \"\"}\n value=\"3 Stars\"\n >\n \n \n \n \n {\n setRating(2);\n }}\n className={rating === 2 ? \"checked\" : \"\"}\n value=\"2 Stars\"\n >\n \n \n \n {\n setRating(1);\n }}\n className={rating === 1 ? \"checked\" : \"\"}\n value=\"1 Stars\"\n >\n \n \n
\n {\n setSlicedVolunteer(ratings(setWeek, setLangue));\n handleDropdown(e)(\"rating\");\n }}\n >\n Select (1)\n \n
\n ) : (\n \"\"\n )}\n
\n
\n ) : (\n \"\"\n )}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* {volunteer && volunteer.length > 0 ? ( */}\n {slicedVolunteer && slicedVolunteer.length > 0 ? (\n slicedVolunteer.map((item) => {\n let ratingCount = 0;\n let count = 0;\n item.classes.map((classes) => {\n classes.ratings.map((rating) => {\n if (rating.rating) {\n ratingCount += parseInt(rating.rating);\n count += 1;\n }\n });\n });\n item.avg_rating = Math.ceil(ratingCount / count);\n const sortedClasses =\n item.classes.length &&\n item.classes.sort((a, b) => {\n return new Date(a.start_time) - new Date(b.start_time);\n });\n item.last_class_date =\n sortedClasses.length &&\n sortedClasses[sortedClasses.length - 1].start_time;\n let getStars = 0;\n let totalStarts = item.classes.length * 5;\n item.classes.map((stars) => {\n getStars = getStars + Number(stars.classes);\n });\n return (\n \n \n \n \n \n \n \n \n \n );\n })\n ) : (\n
\n

There are no results to display...

\n
\n )}\n \n
Name No. of Classes Engagement (Weeks)\n Last Class Date\n sortVolunteers(\"enroll_date\")}\n >\n \n \n Last Class Title Last Class Lang Avg.Rating
\n \n {item.name}\n \n {item.classes.length}{numberOfWeek(item)}\n {moment(\n item.last_class_date\n // sortedClasses[sortedClasses.length - 1].start_time\n ).format(\"DD-MM-YYYY\")}\n \n {item.classes &&\n item.classes.length > 0 &&\n item.classes[item.classes.length - 1][\"title\"] != \"\"\n ? item.classes[item.classes.length - 1][\"title\"]\n : \"NA\"}\n \n {item.classes &&\n item.classes.length > 0 &&\n item.classes[item.classes.length - 1][\"lang\"] != \"\"\n ? languageMap[\n item.classes[item.classes.length - 1][\"lang\"]\n ]\n : \"NA\"}\n \n {/* {item.classes.ratings} */}\n {/* {item.classes &&\n item.classes.length > 0 && item.classes[item.classes.length - 1\n ][\"ratings\"] != \"\"\n ? item.classes[\n item.classes.length - 1\n ][\"ratings\"]\n : \"NA\"} */}\n {[1, 2, 3, 4, 5].map((star) => {\n return Math.ceil(item.avg_rating) > 0 &&\n star <= Math.ceil(item.avg_rating) ? (\n \n ) : (\n \n );\n })}\n
\n\n
\n
\n

\n Showing {pageNumber * limit + 1}-\n {(pageNumber + 1) * limit > volunteer.length\n ? volunteer.length\n : (pageNumber + 1) * limit}\n of {volunteer.length}\n

\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n pageCount={pageCount}\n onPageChange={changePage}\n containerClassName=\"paginationBttns-volunteer\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive-volunteer\"\n />\n
\n
\n
\n \n );\n}\n\nexport default VolunteerDashboard;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { Link } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../../services/api\";\nimport { PATHS } from \"../../../constant\";\nimport moment from \"moment\";\nimport ReactPaginate from \"react-paginate\";\nimport { useDebounce } from \"use-debounce\";\n// import { BsArrowUpDown } from \"react-icons/bs\";\n// import { BsArrowDownUp } from \"react-icons/bs\";\nimport { BsArrowDownUp } from 'react-icons/bs';\n\nimport \"./styles.scss\";\n\nfunction VolunteerOverview(props) {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [classes, setClasses] = useState([]);\n const [slicedClasses, setSlicedClasses] = useState();\n const user = useSelector(({ User }) => User);\n const [pageNumber, setPageNumber] = useState(0);\n const [sortMethod, setSortMethod] = useState(\"dsc\");\n const [debouncedText] = useDebounce(searchTerm);\n\n const limit = 10;\n\n const volunteerClassData = props.location.state.pass;\n const pageCount = Math.ceil(volunteerClassData.classes.length / limit);\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n };\n\n const firstIndex = (pageNumber + 1) * limit;\n const lastIndex = volunteerClassData.classes.length;\n\n const lang = { en: \"English\", hi: \"Hindi\" };\n let language = \"\";\n new Set(volunteerClassData.classes.map((item) => item.lang)).forEach(\n (item) => (language = language + lang[item] + \", \")\n );\n\n const languageMap = {\n hi: \"Hindi\",\n te: \"Telugu\",\n en: \"English\",\n ta: \"Tamil\",\n };\n\n useEffect(() => {\n const data = volunteerClassData.classes.filter((searchValue) => {\n if (searchTerm == \"\") {\n return searchValue;\n } else if (\n searchValue.title.toLowerCase().includes(searchTerm.toLowerCase())\n ) {\n return searchValue;\n }\n });\n const slicedData = data.slice(pageNumber * limit, (pageNumber + 1) * limit);\n setClasses(data);\n setSlicedClasses(slicedData);\n }, [debouncedText, pageNumber]);\n\n const sortClasses = (byMethod) => {\n let sortedClasses;\n if (byMethod === \"class_date\") {\n sortedClasses = classes.sort((a, b) =>\n sortMethod === \"asc\"\n ? new Date(a.end_time) - new Date(b.end_time)\n : new Date(b.end_time) - new Date(a.end_time)\n );\n }\n setClasses(sortedClasses);\n setSlicedClasses(\n sortedClasses.slice(pageNumber * limit, (pageNumber + 1) * limit)\n );\n if (sortMethod === \"asc\") {\n setSortMethod(\"dsc\");\n } else {\n setSortMethod(\"asc\");\n }\n };\n\n return (\n <>\n
\n
\n
\n \n {\" \"}\n Home\n {\" \"}\n /\n \n {\" \"}\n Volunteer \n \n
\n
/ {volunteerClassData.name}
\n
\n
\n

{volunteerClassData.name}

\n

Python: {language.slice(0, -2)}

\n

Total Classes: {volunteerClassData.classes.length}

\n

\n Associated Partner:{\" \"}\n {volunteerClassData.partner ? volunteerClassData.partner : \"NA\"}\n

\n
\n
\n {\n setSearchTerm(e.target.value);\n }}\n />\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {classes && classes.length > 0 ? (\n slicedClasses.map((item) => {\n // let ratingCount = 0;\n // item.ratings.map((item) => {\n // if (item.rating) ratingCount += parseInt(item.rating);\n\n // return ratingCount;\n // });\n // item.avg_rating = Math.ceil(\n // item.ratings.length && ratingCount / item.ratings.length\n // );\n const ratings = item.ratings.filter((item) => item.rating);\n item.avg_rating =\n ratings.length &&\n Math.ceil(\n ratings.reduce(\n (ratingSum, item) => ratingSum + parseInt(item.rating),\n 0\n ) / ratings.length\n );\n return (\n \n \n \n \n \n \n \n \n );\n })\n ) : (\n
\n

There are no results to display...

\n
\n )}\n \n
Class Title\n Class Date\n sortClasses(\"class_date\")}\n >\n \n \n Class Time\n Student Enrollments\n {/* sortClasses(\"enrollment\")}\n >\n \n */}\n LanguageAvg. Rating
{item.title}\n {moment.utc(item.end_time).format(\"DD-MM-YYYY\")}\n \n {moment\n .utc(item.start_time)\n .add(330, \"minute\")\n .format(\"kk:mm\")}\n \n {item.max_enrollment ? item.max_enrollment : \"NA\"}\n {languageMap[item.lang]} \n {[1, 2, 3, 4, 5].map((star) => {\n return item.avg_rating > 0 &&\n star <= item.avg_rating ? (\n \n ) : (\n \n );\n })}\n
\n\n
\n
\n

\n Showing {pageNumber * limit + 1}-\n {firstIndex > lastIndex ? lastIndex : firstIndex}\n of {lastIndex}\n

\n
\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n pageCount={pageCount}\n onPageChange={changePage}\n containerClassName=\"paginationBttns-volunteer\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive-volunteer\"\n />\n
\n
\n
\n \n );\n}\nexport default VolunteerOverview;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../../services/api\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS } from \"../../../constant\";\nimport { hasOneFrom } from \"../../../common/utils\";\nimport { Redirect } from \"react-router-dom\";\nimport \"../style.scss\";\n\nfunction Dashboard({ stateId }) {\n const user = useSelector(({ User }) => User);\n const [districtPartner, setDistrictPartner] = useState([]);\n const [districtPartnerData, setDistrictPartnerData] = useState([]);\n const [filterData, setFilterData] = useState([]);\n const [value, setValue] = useState();\n const [region, setRegion] = useState();\n const [isRegion, setIsRegion] = useState();\n const [regionData, setRegionData] = useState();\n const [regionDistrictPartner, setRegionDistrictPartner] = useState([]);\n const [district, setDistrict] = useState();\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/${stateId}/groups`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setRegion();\n const partnerGroups = res.data.partner_groups_data;\n const includesRegion =\n partnerGroups[0].partner_group_name.includes(\"_REGION\");\n\n setDistrictPartner(res.data);\n setIsRegion(includesRegion);\n\n setDistrictPartnerData(partnerGroups);\n setRegionData(partnerGroups);\n\n if (includesRegion) {\n setValue();\n setRegionDistrictPartner(\n partnerGroups[0].partner_groups_data.partner_groups_data\n );\n setFilterData([\n partnerGroups[0].partner_groups_data.partner_groups_data[0],\n ]);\n } else {\n setFilterData([partnerGroups[0]]);\n setDistrict();\n }\n })\n .catch((err) => {});\n }, [stateId]);\n\n const handleSelcet = (e) => {\n const stateFilterData = districtPartnerData.filter(\n (el) => el.partner_group_name === e.target.value\n );\n setFilterData(stateFilterData);\n setValue(e.target.value);\n };\n\n const tableDistrict = (region) => {\n const regionItem = regionData.find(\n (item) => item.partner_group_name === region\n );\n setRegion(region);\n const regionPartner =\n regionItem && regionItem.partner_groups_data.partner_groups_data;\n\n setRegionDistrictPartner(regionPartner);\n setDistrict(\"all\");\n };\n\n const selectRegion = (e) => {\n const regionItem = regionData.find(\n (item) => item.partner_group_name === e.target.value\n );\n const regionPartner =\n regionItem && regionItem.partner_groups_data.partner_groups_data;\n\n setRegionDistrictPartner(regionPartner);\n setRegion(e.target.value);\n if (e.target.value !== \"all\") {\n setFilterData([regionPartner[0]]);\n }\n };\n\n const selecetDistrict = (e) => {\n const districtPartner = [\n regionDistrictPartner.find(\n (item) => item.partner_group_name === e.target.value\n ),\n ];\n setDistrict(e.target.value);\n setFilterData(districtPartner);\n };\n\n const canSpecifyPartnerGroupId =\n hasOneFrom(user.data.user.rolesList, [\n \"admin\",\n \"partner\",\n \"partner_view\",\n ]) && user.data.user.partner_group_id;\n\n if (canSpecifyPartnerGroupId) {\n return (\n
\n

Overview

\n
\n
\n \n {districtPartner.total_no_of_groups}\n \n Total Number of Groups\n
\n
\n \n {districtPartner.total_no_of_partners}\n \n \n Total Number of Partners\n \n
\n
\n \n {districtPartner.total_no_of_students}\n \n Total Enrolled Students\n
\n
\n {isRegion ? (\n <>\n
\n

Please choose a Region

\n \n \n {regionData &&\n regionData.map((item, i) => {\n return (\n <>\n \n {item.partner_group_name}\n \n \n );\n })}\n \n
\n\n {region !== \"all\" && (\n
\n

Please choose a group

\n \n \n {regionDistrictPartner &&\n regionDistrictPartner.map((item, i) => {\n return (\n <>\n \n {item.partner_group_name}\n \n \n );\n })}\n \n
\n )}\n \n ) : (\n
\n

Please choose a group

\n \n \n {districtPartnerData.map((item, i) => {\n return (\n <>\n \n {item.partner_group_name}\n \n \n );\n })}\n \n
\n )}\n\n {value === \"all\" ? (\n
\n \n \n \n \n \n \n \n \n \n {districtPartnerData.map((item) => {\n return (\n \n \n \n \n \n );\n })}\n \n
Group NameNumber of PartnersNumber of Students
\n {item.partner_group_name}\n \n {item.total_no_of_partners}\n \n {item.total_no_of_students}\n
\n
\n ) : region === \"all\" ? (\n
\n \n \n \n \n \n \n \n \n \n \n {districtPartnerData.map((item) => {\n return (\n {\n tableDistrict(\n item.partner_groups_data.partner_group_name\n );\n }}\n >\n \n\n \n\n \n \n \n );\n })}\n \n
Group NameNumber of DistrictsNumber of ITIsNumber of Students
\n {item.partner_groups_data.partner_group_name}\n \n {item.partner_groups_data.total_no_of_groups}\n \n {item.partner_groups_data.total_no_of_partners}\n \n {item.partner_groups_data.total_no_of_students}\n
\n
\n ) : district === \"all\" ? (\n
\n \n \n \n \n \n \n \n \n \n {regionDistrictPartner.map((item) => {\n return (\n \n \n \n \n \n );\n })}\n \n
Group NameNumber of ITIsNumber of Students
\n {item.partner_group_name}\n \n {item.total_no_of_partners}\n \n {item.total_no_of_students}\n
\n
\n ) : (\n
\n {/*
*/}\n
\n {filterData.map((item) => {\n return item.partners.map((name) => {\n return (\n
\n \n

{name.partner_name}

\n
\n \n {name.users_count} Students\n \n
\n \n
\n );\n });\n })}\n
\n
\n )}\n
\n );\n }\n return ;\n}\n\nexport default Dashboard;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../services/api\";\nimport \"./style.scss\";\nimport Dashboard from \"./Dashboard\";\n\nfunction StateDashboard() {\n const user = useSelector(({ User }) => User);\n const [states, setStates] = useState();\n const [stateId, setStateId] = useState();\n\n const clusterId = user.data.user.partner_group_id;\n const admin = user.data.user.rolesList.indexOf(\"admin\") > -1;\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/partners/clusters`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setStates(res.data);\n if (clusterId) {\n res.data.filter((item) => {\n if (clusterId === item.id) setStateId(item.id);\n });\n } else {\n setStateId(res.data[0].id);\n }\n })\n .catch((err) => {});\n }, []);\n\n const selectedState = (id) => {\n setStateId(id);\n };\n\n return (\n <>\n {states && (\n
\n {states.map((item) => {\n const name = `${\n item.name[0] + item.name.slice(1).toLowerCase()\n } Dashboard`;\n return (\n
\n selectedState(item.id)}\n className={\n admin\n ? stateId === item.id\n ? \"dark-text\"\n : \"light-text\"\n : clusterId === item.id\n ? \"dark-text\"\n : \"light-text\"\n }\n >\n {(clusterId === item.id || admin) && name}\n \n {admin ? stateId === item.id &&
: \"\"}\n
\n );\n })}\n
\n )}\n \n \n );\n}\nexport default StateDashboard;\n","import { makeStyles } from \"@material-ui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n ourStorybttn: {\n height: \"40px\",\n padding: \"-20\",\n color: \"grey\",\n borderRadius: \"50%\",\n },\n ourStoryHrline: {\n width: \"60px\",\n textAlign: \"center\",\n marginBottom: \"30px\",\n },\n ourStoryHr: {\n width: \" 10%\",\n border: \" 10px dotted\",\n borderStyle: \"none none dotted\",\n color: \"grey\",\n marginTop: \"10px\",\n },\n ourStorylogo: {\n height: \"30px\",\n width: \"120px\",\n },\n ourStorylogo1: {\n height: \"20px\",\n width: \"50px\",\n },\n\n ourStorySpace: {\n marginTop: \"50px\",\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport { Container, Grid, Typography } from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\n\nconst OurStory = () => {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n return (\n <>\n \n \n \n “Bringing the joy of learning to the students of most underserved\n communities”\n \n \n \n Meraki, as an organization, lives by the above motivation. Meraki\n is part of NavGurukul Foundation for Social Welfare. It started in\n 2020 to bring low-cost online tech education to students from\n low-income families across India. NavGurukul already runs\n successful campus programs across India, and Meraki is an\n extension of that effort.\n \n \n In our pursuit, numerous volunteers and partners helped us create\n relationships with government bodies, schools and NGOs to cater to\n their students or just individual students.\n \n \n \n \n \n );\n};\nexport default OurStory;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n cardGrid: {\n padding: \"10px 16px 10px 16px\",\n },\n\n link: {\n textDecoration: \"none\",\n color: \"black\",\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n courseNumber: {\n // marginRight: \"10px\",\n // verticalAlign: \"top\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"2px\",\n background: \"#E9F5E9\",\n width: \"20px\",\n height: \"20px\",\n borderRadius: \"50%\",\n },\n courseCard: {\n margin: \"15px 0\",\n \"&:hover\": {\n boxShadow:\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\",\n },\n },\n progressBar: {\n width: \"95%\",\n },\n}));\n\nexport default useStyles;\n","import React, { useState, useEffect } from \"react\";\nimport { timeLeftFormat } from \"../../common/date\";\nimport { Button } from \"@mui/material\";\nimport ExternalLink from \"../common/ExternalLink\";\n\nfunction LearningTrackTimerButton({\n startTime = new Date(),\n link,\n joinOnClick,\n}) {\n const ONE_SECOND = 1000; //millisecs\n const ONE_MINUTE = 60 * ONE_SECOND;\n const CAN_JOIN_MSG = \"Join Now\";\n // const TOO_LATE = \"less than a minute (too late to join)\";\n // const CLASS_PAST_START = \"progress or concluded (too late to join)\";\n const timeLeftFormatOptions = {\n expiredText: CAN_JOIN_MSG,\n precision: [2, 2, 2, 2, 1, 1],\n cutoffTextArr: [\"\", \"\", \"\", \"\", CAN_JOIN_MSG, CAN_JOIN_MSG],\n cutoffNumArr: [0, 0, 0, 0, 10, 60],\n };\n // const canJoin = () => minutesUntil(startTime) <= 10;\n const [timeRemainingMsg, setTimeRemainingMsg] = useState(\n timeLeftFormat(startTime, timeLeftFormatOptions)\n );\n\n useEffect(() => {\n setTimeRemainingMsg(timeLeftFormat(startTime, timeLeftFormatOptions));\n const timer = setInterval(() => {\n const newTimeRemainingMsg = timeLeftFormat(\n startTime,\n timeLeftFormatOptions\n );\n setTimeRemainingMsg(newTimeRemainingMsg);\n if (newTimeRemainingMsg === CAN_JOIN_MSG) {\n clearInterval(timer); // can join so can dispose of timer now\n }\n }, ONE_MINUTE);\n return () => clearInterval(timer); // cleans up on unmount\n }, [startTime]);\n\n return (\n <>\n {timeRemainingMsg === CAN_JOIN_MSG ? (\n \n \n {CAN_JOIN_MSG}\n \n \n ) : (\n \n )}\n \n );\n}\n\nexport default LearningTrackTimerButton;\n","import React, { useEffect, useState } from \"react\";\nimport { format } from \"../../common/date\";\nimport {\n Typography,\n Container,\n CardActionArea,\n CardMedia,\n Card,\n CardContent,\n Box,\n Link,\n LinearProgress,\n Collapse,\n Button,\n Chip,\n} from \"@mui/material\";\nimport { useParams } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Grid, IconButton } from \"@mui/material\";\nimport { actions as pathwayActions } from \"../PathwayCourse/redux/action\";\nimport { actions as upcomingBatchesActions } from \"../PathwayCourse/redux/action\";\nimport { actions as upcomingClassActions } from \"../PathwayCourse/redux/action\";\nimport { actions as enrolledBatchesActions } from \"../PathwayCourse/redux/action\";\n\nimport useStyles from \"./styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { useHistory } from \"react-router-dom\";\nimport { interpolatePath, PATHS } from \"../../constant\";\nimport { getPathwaysCourse } from \"../PathwayCourse/redux/api\";\nimport { getUpcomingBatches } from \"../PathwayCourse/redux/api\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\nimport { METHODS } from \"../../services/api\";\nimport axios from \"axios\";\nimport LearningTrackTimerButton from \"./LearningTrackTimerButton\";\nimport path from \"path\";\nimport { InsertEmoticonRounded } from \"@mui/icons-material\";\n\nfunction LearningTrackCard(props) {\n const user = useSelector(({ User }) => User);\n // const pathwaysData = useSelector(({ Pathways }) => Pathways);\n const dispatch = useDispatch();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n // const isActiveIpad = useMediaQuery(\"(max-width:1300px)\");\n const classes = useStyles();\n const history = useHistory();\n // const [PathwayData, setPathwayData] = useState([]);\n // const [courseIndex, setCourseIndex] = useState(0);\n const [open, setOpen] = React.useState(false);\n const { item, setPathway } = props;\n const pathwayId = item.pathway_id;\n const [completedPortionJason, setCompletedPortionJason] = useState();\n const [upcomingBatchesData, setUpcomingBatchesData] = useState();\n const params = useParams();\n\n // useEffect(() => {\n // getPathwaysCourse({ pathwayId: pathwayId }).then((res) => {\n // setPathwayData(res.data);\n // });\n\n // const COurseIndex = PathwayData?.courses?.findIndex((course, index) => {\n // if (course.course_id === item.course_id) {\n // return index;\n // }\n // });\n // setCourseIndex(COurseIndex);\n // }, [item]);\n\n const data = useSelector((state) => {\n return state;\n });\n\n useEffect(() => {\n // setLoading(true);\n if (user?.data?.token && pathwayId) {\n // dispatch(\n // enrolledBatchesActions.getEnrolledBatches({\n // pathwayId: pathwayId,\n // authToken: user?.data?.token,\n // })\n // );\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/totalProgress`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n })\n .then((response) => {\n setCompletedPortionJason(response.data.total_completed_portion);\n })\n .catch((err) => {});\n }\n }, [pathwayId]);\n\n // useEffect(() => {\n // dispatch(pathwayActions.getPathwaysCourse({ pathwayId: pathwayId }));\n // }, [dispatch, pathwayId]);\n\n useEffect(() => {\n if (showUpcomingBatchData) {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/upcomingBatches`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n })\n .then((res) => {\n setUpcomingBatchesData(res.data);\n })\n .catch((err) => {});\n }\n }, []);\n // const upcomingBatchesData = useSelector((state) => {\n // return state.Pathways?.upcomingBatches?.data;\n // });\n\n // useEffect(() => {\n // dispatch(pathwayActions.getPathways());\n // }, [dispatch, pathwayId]);\n\n const pathwayCourseData = data.PathwaysDropdow?.data?.pathways.find(\n (item) => {\n return item.id == pathwayId;\n }\n );\n\n const showUpcomingBatchData =\n pathwayCourseData?.code == \"PRGPYT\" || pathwayCourseData?.code == \"SPKENG\";\n\n return (\n <>\n \n \n \n \n \n \n \n \n {item?.pathway_name}\n \n \n \n \n \n Progress:\n {completedPortionJason}%\n \n \n \n \n\n {showUpcomingBatchData && upcomingBatchesData?.length > 0 && (\n <>\n \n Batch : {upcomingBatchesData[0].title}\n \n \n Upcoming Classes\n \n \n \n \n \n \n \n {upcomingBatchesData[0]?.sub_title}\n \n \n \n {upcomingBatchesData[0]?.type === \"batch\" && (\n \n )}\n \n \n \n {upcomingBatchesData[0]?.start_time &&\n format(upcomingBatchesData[0]?.start_time, \"dd MMM yy\")}\n \n \n \n\n \n \n )}\n {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE, {\n pathwayId: item.pathway_id,\n })\n );\n }}\n >\n Go to Track\n \n \n \n \n );\n}\n\nexport default LearningTrackCard;\n","import React from \"react\";\nimport { Typography, Container } from \"@mui/material\";\nimport { Grid } from \"@mui/material\";\nimport LearningTrackCard from \"./LearningTrackCard\";\n\nfunction ReturningUserPage({ learningTracks }) {\n return (\n <>\n \n \n My Learning Tracks\n \n \n {learningTracks.map((item) => (\n \n ))}\n \n \n \n );\n}\nexport default ReturningUserPage;\n","import React, { useEffect, useState } from \"react\";\nimport useStyles from \"./styles\";\nimport PathwayCard from \"../../pages/Home/PathwayCard\";\nimport { Container, Grid, Typography, useMediaQuery, Box } from \"@mui/material\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport ReturningUserPage from \"../ReturningUser/ReturningUserPage\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport { versionCode } from \"../../constant\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { PATHWAYS_INFO } from \"../../constant\";\nimport Loader from \"../../components/common/Loader\";\n\nconst NewUserDashbord = () => {\n const user = useSelector(({ User }) => User);\n const UserName = user.data.user.name;\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const dispatch = useDispatch();\n const [learningTracks, setLearningTracks] = useState([]);\n const { loading, data } = useSelector((state) => state.PathwaysDropdow);\n\n // useEffect(() => {\n // dispatch(\n // pathwayActions.getPathwaysDropdown({\n // authToken: user,\n // })\n // );\n // }, [dispatch, user]);\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/ongoingTopic`,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization: user?.data?.token || \"\",\n },\n })\n .then((res) => {\n const data = res.data;\n setLearningTracks(res.data);\n })\n .catch((err) => {});\n }, []);\n\n const miscellaneousPathway = data?.pathways.filter((pathway) =>\n PATHWAYS_INFO.some((miscPathway) => pathway.name === miscPathway.name)\n );\n const pathwayData = data?.pathways\n .filter((pathway) => !miscellaneousPathway.includes(pathway))\n .concat(miscellaneousPathway);\n\n return (\n <>\n {loading ? (\n \n \n \n ) : learningTracks.length <= 0 ? (\n <>\n \n \n Hello, {UserName} 👋\n \n \n Please choose a learning track to begin!\n \n \n \n \n {pathwayData?.map((item) => (\n \n \n \n ))}\n \n \n \n ) : (\n \n )}\n \n );\n};\nexport default NewUserDashbord;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n team_fontNunito: {\n fontFamily: \"Nunito Sans\",\n fontWeight: \"700\",\n },\n team_alignRight: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n },\n image: {\n width: \"352px\",\n height: \"284px\",\n },\n team_hrline: {\n width: \"160px\",\n height: \"5px\",\n margin: \"0\",\n },\n team_conainerLeft: {\n display: \"flex\",\n alignItems: \"center\",\n },\n team_conainerRight: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n team_button_box: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n team_button_box_mob: {\n // commented code is for button scroll feature\n display: \"flex\",\n // overflow: \"auto\",\n // whiteSpace: \"nowrap\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n },\n team_MobileSelector: {\n padding: \"10px 25px\",\n borderBottom: \"3px solid transparent\",\n cursor: \"pointer\",\n },\n team_selector: {\n padding: \"10px 35px\",\n borderBottom: \"3px solid transparent\",\n cursor: \"pointer\",\n },\n team_containerTopSpace: {\n marginTop: \"5rem\",\n padding: 0,\n },\n team_infoCardContaier: {\n marginTop: \"1rem\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifContent: \"space-between\",\n transition: \"all ease-in 0.2s\",\n pointerEvents: \"none\",\n marginBottom: \"32px\",\n },\n team_responsiveContainer: {\n marginTop: \"61px\",\n // marginTop: \"4rem\",\n padding: \"0\",\n },\n team_infoResponsiveContainer: {\n padding: \"0\",\n marginTop: \"1rem\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifContent: \"space-between\",\n transition: \"all ease-in 0.2s\",\n pointerEvents: \"none\",\n },\n team_descriptionPopup: {\n paddingTop: \"16px\",\n pointerEvents: \"all\",\n boxShadow:\n \"0px 4px 5px rgba(46, 46, 46, 0.06),0px 1px 10px rgba(46, 46, 46, 0.04), 0px 2px 4px rgba(46, 46, 46, 0.08)\",\n borderRadius: \"10px\",\n backgroundColor: \"#fff\",\n padding: \"0 16px\",\n width: \"300px\",\n textAlign: \"left\",\n zIndex: \"9\",\n border: \"2px solid #48a145\",\n boxSizing: \"border-box\",\n opacity: \"1\",\n },\n team_cardDetails: {\n position: \"relative\",\n border: \"none\",\n marginTop: \"32px\",\n marginBottom: \"16px\",\n cursor: \"pointer\",\n transition: \"all ease-in-out 0.2s\",\n pointerEvents: \"auto\",\n \"&:hover\": {\n cursor: \"pointer\",\n boxShadow: \"none\",\n opacity: \"1\",\n \"& $middle\": {\n opacity: \"92%\",\n backgroundColor: \"#3A8137\",\n },\n },\n },\n middle: {\n opacity: 0,\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n top: \"0%\",\n left: \"0%\",\n \"& hover\": {\n \"$ team_cardDetails\": {\n opacity: 0.3,\n },\n },\n },\n\n text: {\n color: \"#FFFFFF\",\n padding: \"16px\",\n },\n\n team_cardImg: {\n width: \"256px\",\n height: \"320px\",\n transition: \"all ease-in 0.2s\",\n boxSizing: \"content-box\",\n objectFit: \"cover\",\n },\n team_mobileCardImg: {\n width: \"100%\",\n height: \"312px\",\n transition: \"all ease-in 0.2s\",\n padding: \"0px\",\n boxSizing: \"content-box\",\n objectFit: \"cover\",\n },\n team_cardTitle: {\n fontWeight: \"bold\",\n },\n team_cardDescription: {\n color: \"#6D6D6D\",\n },\n team_socialIcon: {\n marginInline: \"0.5rem\",\n },\n team_popupDetails: {\n display: \"flex\",\n alignItems: \"center\",\n },\n team_btn1: { height: \"48px\", width: \"100%\" },\n team_btn: { height: \"48px\", width: \"250px\" },\n}));\n\nexport default useStyles;\n","import React, { useState, useEffect } from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport axios from \"axios\";\nimport { breakpoints } from \"../../theme/constant\";\nimport LinkedIn from \"../../components/common/SocialMediaIcons/LinkedIn\";\nimport Twitter from \"../../components/common/SocialMediaIcons/Twitter\";\nimport { Container, Grid, Typography, Button, Box } from \"@mui/material\";\nimport useStyles from \"./styles\";\n\nfunction shuffleArray(arr) {\n for (let i = arr.length - 1; i >= 0; i--) {\n const newIndex = Math.floor(Math.random() * (i + 1));\n [arr[i], arr[newIndex]] = [arr[newIndex], arr[i]];\n }\n return arr;\n}\n\nconst content = \"Awaiting content from team member\";\n\nconst Popup = (props) => {\n const classes = useStyles();\n return (\n \n \n \n {props.Name}\n \n {props.linkedin ? (\n \n \n \n ) : (\n <>\n )}\n {props.twitter ? (\n \n \n \n ) : (\n <>\n )}\n \n\n \n {props.Content}\n \n \n );\n};\n\nfunction Team() {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const [team, setTeam] = useState([]);\n const [members, setMembers] = useState({\n teamMembers: true,\n volunteers: false,\n exTeam: false,\n });\n\n useEffect(() => {\n axios({\n url: `https://navgurukul.github.io/tarabai-shinde/data/meraki_team.json`,\n })\n .then((res) => {\n setTeam(res.data);\n })\n .catch((err) => {});\n }, []);\n\n const condition = members.teamMembers\n ? \"teamMembers\"\n : members.volunteers\n ? \"volunteers\"\n : \"exTeam\";\n let teamMember = [];\n let supporters = [];\n let exTeam = [];\n\n const teamData = Object.values(team).filter((item) => {\n if (\n item.Association !== null &&\n item.Photo !== null &&\n item.Name !== null &&\n item.Content &&\n item.Content.length > 0 &&\n item.Designation !== null\n ) {\n if (item.Association === \"Volunteer\") {\n supporters.push(item);\n } else if (item.Association === \"Ex-Team\") {\n exTeam.push(item);\n } else {\n teamMember.push(item);\n }\n return item;\n }\n });\n\n const name = \"Awaiting Member's Name\";\n\n return (\n \n \n \n \n Meet the team of core members, a ton of volunteers, and past members\n that have made it all possible.\n \n\n \n Meraki aims to remain free for underserved communities in India. We\n have been fortunate to find passionate people sharing our goals and\n helping us build one of the best learning platforms out there.\n \n \n \n \n \n \n \n \n \n \n \n {/* Commented code is containing & sowing the data of Ex-team members */}\n {/* */}\n\n \n \n {teamData ? (\n shuffleArray(teamData).map((item) => {\n if (\n (condition === \"volunteers\" &&\n item.Association === \"Volunteer\") ||\n (condition === \"exTeam\" && item.Association === \"Ex-Team\") ||\n (condition === \"teamMembers\" &&\n item.Association !== \"Volunteer\" &&\n item.Association !== \"Ex-Team\")\n ) {\n return (\n \n \n \n \n \n {(item.Content.length && item.Content) || content}\n \n \n \n \n {item.Name}\n \n \n {item.Designation}\n \n \n );\n }\n })\n ) : (\n <>\n )}\n \n \n \n \n );\n}\n\nexport default Team;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n underline: {\n width: \"65px\",\n marginBottom: \"35px\",\n },\n containerColor: {\n backgroundColor: \"#F5F5F5\",\n },\n typography: {\n marginBottom: \"200px\",\n // align: \"center\",\n },\n image: {\n margin: \"auto\",\n display: \"block\",\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n },\n btnPartner: {\n alignItems: \"center\",\n },\n}));\nexport default useStyles;\n","import React from \"react\";\nimport { PATHS } from \"../../constant\";\nimport useStyles from \"./Styles\";\nimport Image from \"./assest/dicto.jpg\";\nimport axios from \"axios\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { useState, useEffect } from \"react\";\nimport {\n Stack,\n Chip,\n Typography,\n Button,\n Container,\n Card,\n CardActions,\n Link,\n CardContent,\n Grid,\n IconButton,\n} from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\n\nconst OurPartner = () => {\n const classes = useStyles();\n const [partner, setPartner] = useState([]);\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n useEffect(() => {\n axios\n .get(\n \"https://navgurukul.github.io/tarabai-shinde/data/meraki_partners.json\"\n )\n .then((response) => {\n setPartner(response.data);\n })\n .catch((err) => {});\n }, []);\n\n return (\n <>\n \n \n \n \n Partners are ones who open the doors to quality education for our\n students\n \n \n Do you want to be a part and help out your students through\n Meraki? Look no further and make the move.\n \n \n \n \n Join as a Partner\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Amazon Future Engineer\n \n \n Amazon Future Engineer is a complete package of\n childhood-to-career program aimed at increasing access to\n computer science education for children and young adults from\n underserved and underrepresented communities. Amazon has\n partnered with Meraki to further our cause.\n \n \n \n \n \n \n \n \n \n \n Partner List{\" \"}\n \n \n {Object.keys(partner).map((item) => {\n return (\n \n {partner[item].Name !== null &&\n partner[item].OrganisationType !== null &&\n !partner[item].State !== null &&\n !partner[item].City !== null && (\n \n \n \n {partner[item].Name}\n \n {partner[item].OrganisationType === \"Non - Profit\" ? (\n \n ) : partner[item].OrganisationType === \"Government\" ? (\n \n ) : partner[item].OrganisationType ===\n \"Educational Institution\" ? (\n \n ) : partner[item].OrganisationType ===\n \"Community based organisation\" ? (\n \n ) : (\n \"\"\n )}\n \n \n {partner[item].Url !== \"NA\" &&\n partner[item].Url !== null && (\n \n \n \n \n \n )}\n \n \n )}\n \n );\n })}\n \n \n \n );\n};\n\nexport default OurPartner;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n List: {\n display: \"flex\",\n marginTop: \"20px\",\n },\n\n paper: {\n width: \"430px\",\n },\n contentImg: {\n padding: 5,\n marginRight: 5,\n },\n contentNumber: {\n padding: \"8px\",\n },\n youtubeVideo: {\n width: \"100%\",\n margin: \"20px 0\",\n },\n heading: {\n margin: \"30px 0 10px 0\",\n },\n contentImage: {\n marginTop: \"32px\",\n maxWidth: \"100%\",\n },\n contentImageBox: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexWrap: \"wrap\",\n },\n\n contentImg: {\n padding: 5,\n marginRight: 5,\n },\n codeBackground: {\n background: \"#E5E5E5\",\n padding: 16,\n margin: \"15px 0\",\n borderRadius: \"8px\",\n },\n codeWrap: {\n whiteSpace: \"pre-wrap\",\n lineHeight: 27,\n },\n codeExampleImg: {\n marginRight: 10,\n },\n tableHead: {\n borderRight: \"none\",\n borderLeft: \"none\",\n borderTop: \"none\",\n borderBottom: \"2px solid #DEDEDE !important\",\n },\n option: {\n boxShadow:\n \"0px 1px 2px #48A145, 0px 2px 1px #48A145, 0px 1px 5px #48A145 !important\",\n },\n userSelectedCorrect: {\n border: \"2px solid #48A145\",\n background: \"#E9F5E9 !important\",\n },\n correctAnswer: {\n border: \"2px solid #48A145 !important\",\n },\n inCorrectAnswer: {\n border: \"2px solid #F44336 !important\",\n background: \"#FFE5E3 !important\",\n },\n greishOption: {\n border: \"2px solid #F5F5F5 !important\",\n background: \"#F5F5F5 !important\",\n },\n bottomRow: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n position: \"fixed !important\",\n zIndex: 100,\n bottom: \"0px\",\n background: \"#fff\",\n boxShadow:\n \"0px -1px 2px rgba(0, 0, 0, 0.06), 0px -2px 2px rgba(0, 0, 0, 0.04), 0px -1px 5px rgba(0, 0, 0, 0.08)\",\n },\n scrollContainer: {\n \"&::-webkit-scrollbar\": { display: \"none\" },\n overflowX: \"auto\",\n width: \"325px\",\n whiteSpace: \"nowrap\",\n },\n edit: {\n color: \"#000000\",\n },\n editField: {\n margin: \"10px 0px\",\n },\n textarea: {\n width: 529,\n margin: \"10px 0px\",\n padding: \"20px 10px\",\n border: \"1px solid #BDBDBD\",\n borderRadius: \"4px\",\n fontSize: \"1.125rem\",\n color: \"#2E2E2E\",\n fontFamily: \"Noto Sans\",\n resize: \"none\",\n outline: \"none\",\n \"&:focus\": {\n border: \"2px solid #48A145 !important\",\n },\n },\n mainHeader: {\n position: \"sticky\",\n },\n editingHeader: {\n position: \"sticky\",\n marginTop: 64,\n },\n editingHeaderMobile: {\n position: \"sticky\",\n marginTop: 104,\n },\n optionImg: {\n objectFit: \"cover\",\n width: \"100%\",\n height: \"140px\",\n borderRadius: \"8px\",\n },\n cursorA: {\n cursor: \"default !important\",\n },\n cursorP: {\n cursor: \"pointer !important\",\n },\n}));\n\nexport default useStyles;\n","import React, { useEffect, useState } from \"react\";\nimport { Grid, Typography, Box, Button, Paper, Stack } from \"@mui/material\";\nimport useStyles from \"../../styles\";\nimport get from \"lodash/get\";\nimport { Radio, Checkbox, FormControlLabel, RadioGroup } from \"@mui/material\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport DOMPurify from \"dompurify\";\n// import { fi } from \"date-fns/locale\";\nfunction UnsafeHTML(props) {\n const { html, Container, ...otherProps } = props;\n const sanitizedHTML = DOMPurify.sanitize(html);\n return (\n \n );\n}\n\nconst headingVarients = {};\n\n[Typography, \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(\n (Name, index) =>\n (headingVarients[index + 1] = (data) => (\n \n ))\n);\n\nconst AssessmentContent = ({\n content,\n answer,\n setAnswer,\n setSolution,\n submit,\n solution,\n setSubmit,\n correct,\n index,\n setSubmitDisable,\n triedAgain,\n setTriedAgain,\n submitDisable,\n submitAssessment,\n type,\n setType,\n Partially_ans,\n setWrongAnswer,\n finalDesicion,\n}) => {\n const classes = useStyles();\n if (content.component === \"header\") {\n if (triedAgain > 1) {\n return headingVarients[content.variant](\n DOMPurify.sanitize(get(content, \"value\"))\n );\n }\n }\n\n if (content.component === \"text\") {\n const text = DOMPurify.sanitize(get(content, \"value\"));\n if (index === 0) {\n return (\n \n \n Output\n \n\n \n \n \n \n );\n }\n if (index === 2) {\n if (triedAgain > 1) {\n return (\n \n \n \n );\n } else {\n const Partially_retry = DOMPurify.sanitize(get(Partially_ans, \"value\"));\n return (\n <>\n {submit && finalDesicion && finalDesicion !== \"CORRECT\" ? (\n \n ) : (\n \"\"\n )}\n\n \n {/* \n {\n setTriedAgain(triedAgain + 1);\n submitAssessment();\n }}\n >\n \n See Answer & Explanation\n \n \n */}\n \n {\n setAnswer([]);\n setSubmit();\n setSubmitDisable();\n }}\n >\n Re-try\n \n \n \n \n );\n }\n }\n }\n if (content.component === \"questionCode\") {\n const text = DOMPurify.sanitize(get(content, \"value\"));\n return (\n \n \n \n );\n }\n if (content.component === \"questionExpression\") {\n const text = DOMPurify.sanitize(get(content, \"value\"));\n return (\n \n );\n }\n if (content.component === \"image\") {\n const image = DOMPurify.sanitize(get(content, \"value\"));\n\n const isImage = image.match(/\\.(jpeg|jpg|gif|png)$/);\n\n if (isImage) {\n return \"Image\";\n }\n\n return (\n \n );\n }\n if (content.component === \"options\") {\n return (\n \n \n {Object.values(content.value).map((item, index) => {\n const text = DOMPurify.sanitize(item.value);\n const isChecked = answer?.includes(item.id);\n const isRadioChecked =\n answer?.length === 1 && answer?.includes(item.id);\n\n const isValuePresent = solution?.some(\n (sitem) => sitem.value === item.id\n );\n return (\n <>\n \n 1\n ? isValuePresent\n ? answer?.includes(item.id)\n ? classes.userSelectedCorrect\n : \"\" // classes.correctAnswer commented out to remove the green color from the correct answer after the 2nd attemt.we will retrive it once android will have the same.\n : answer?.includes(item.id)\n ? classes.inCorrectAnswer\n : \"\"\n : submit &&\n answer?.includes(item.id) &&\n classes.greishOption\n }\n >\n \n {}}\n checkedIcon={}\n />\n ) : answer?.includes(item.id) &&\n triedAgain > 1 ? (\n \n ) : (\n {\n if (!submit) {\n setAnswer([item.id]);\n }\n }}\n />\n )\n ) : (\n {\n if (!submit) {\n setAnswer([item.id]);\n }\n }}\n />\n )\n ) : submit ? (\n answer?.includes(item.id) &&\n isValuePresent &&\n triedAgain > 1 ? (\n {}} //this is for not changing the state\n checkedIcon={}\n className={\n submit ? classes.cursorA : classes.cursorP\n }\n />\n ) : answer?.includes(item.id) && triedAgain > 1 ? (\n \n ) : (\n {\n if (!submit) {\n const updatedAnswer = isChecked\n ? answer.filter((id) => id !== item.id)\n : [...answer, item.id];\n setAnswer(updatedAnswer);\n }\n }}\n className={\n submit ? classes.cursorA : classes.cursorP\n }\n />\n )\n ) : (\n {\n if (!submit) {\n const updatedAnswer = isChecked\n ? answer.filter((id) => id !== item.id)\n : [...answer, item.id];\n setAnswer(updatedAnswer);\n }\n }}\n className={\n submit ? classes.cursorA : classes.cursorP\n }\n />\n )\n }\n label={\n item.option_type !== \"image\" ? (\n \n ) : (\n \n )\n }\n />\n \n \n \n \n );\n })}\n \n \n );\n }\n if (content.component === \"solution\") {\n setSolution(content?.correct_options_value);\n setType(content?.type);\n setWrongAnswer();\n }\n return \"\";\n};\nexport default AssessmentContent;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Container, Box, Button } from \"@mui/material\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../../../services/api\";\nimport { useParams } from \"react-router-dom\";\nimport AssessmentContent from \"./AssessmentContent\";\n\nfunction Assessment({\n data,\n exerciseId,\n exerciseSlugId,\n courseData,\n setCourseData,\n setProgressTrackId,\n res,\n triger,\n setTriger,\n lang,\n}) {\n const user = useSelector(({ User }) => User);\n\n const [answer, setAnswer] = useState([]);\n const [correct, setCorrect] = useState();\n const [solution, setSolution] = useState();\n const [submit, setSubmit] = useState();\n const [submitDisable, setSubmitDisable] = useState();\n const [status, setStatus] = useState();\n const [triedAgain, setTriedAgain] = useState(res?.attempt_count);\n const params = useParams();\n const [type, setType] = useState(\"single\");\n const [wrongAnswer, setWrongAnswer] = useState();\n\n // Assessment submit handler\n const isValuesCorrect = (value1, value2) => {\n if (value1?.length !== value2?.length) {\n return false; // Lengths are different, so they are not the same\n }\n\n for (let i = 0; i < value1?.length; i++) {\n if (!value2?.includes(value1[i]?.value)) {\n return false; // Elements are different, so they are not the same\n }\n }\n\n return true; // Length and elements match, so they are the same\n };\n\n const isCorrect = isValuesCorrect(solution, answer);\n\n const calculateSelections = () => {\n let correctSelections = 0;\n let incorrectSelections = 0;\n\n answer &&\n answer.forEach((option) => {\n const isCorrect = solution?.some(\n (correctOption) => correctOption?.value === option\n );\n if (isCorrect) {\n correctSelections++;\n } else {\n incorrectSelections++;\n }\n });\n\n return { correctSelections, incorrectSelections };\n };\n\n const { correctSelections, incorrectSelections } = calculateSelections();\n\n const submitAssessment = (isCorrect) => {\n const correctStr = isCorrect ? \"Pass\" : \"Fail\";\n setSubmit(true);\n\n // Commented this API to test if progress tracking is working fine now\n\n // axios({\n // method: METHODS.POST,\n // url: `${process.env.REACT_APP_MERAKI_URL}/progressTracking/learningTrackStatus`,\n // headers: {\n // accept: \"application/json\",\n // Authorization: user.data?.token || \"\",\n // },\n // data: {\n // pathway_id: params.pathwayId,\n // course_id: params.courseId,\n // exercise_id: courseData.id,\n // },\n // });\n if (isCorrect) {\n setTriedAgain(triedAgain + 2);\n } else {\n setTriedAgain(triedAgain + 1);\n }\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/assessment/slug/complete`,\n headers: {\n accept: \"application/json\",\n Authorization:\n user?.data?.token || localStorage.getItem(\"studentAuthToken\"),\n },\n data: [\n {\n // assessment_id: exerciseId,\n slug_id: exerciseSlugId,\n selected_option: answer,\n status: correctStr,\n course_id: +params.courseId,\n lang: lang,\n },\n ],\n })\n .then((res) => {})\n .catch((err) => {});\n setCorrect(isCorrect);\n setStatus(correctStr);\n setSubmitDisable(true);\n setTriger(!triger);\n };\n\n console.log(data);\n useEffect(() => {\n // adding a nullish coalescing operator (??), so that the null value can not effect on the assessment.\n // if (res?.assessment_id === (courseData ?? {}).id) {\n if (res?.slug_id === (courseData ?? {}).slug_id) {\n if (res?.attempt_status === \"CORRECT\") {\n setAnswer(res?.selected_option);\n setCorrect(true);\n setTriedAgain(2);\n setStatus(\"pass\");\n setSubmitDisable(true);\n setSubmit(true);\n } else if (res?.attempt_status === \"INCORRECT\") {\n setAnswer(res?.selected_option);\n setTriedAgain(res?.attempt_count);\n setSubmitDisable(true);\n setSubmit(true);\n } else if (res?.attempt_status === \"PARTIALLY_CORRECT\") {\n setAnswer(res?.selected_option);\n setTriedAgain(res?.attempt_count);\n setSubmitDisable(true);\n setSubmit(true);\n } else if (res?.attempt_status === \"PARTIALLY_INCORRECT\") {\n setAnswer(res?.selected_option);\n setTriedAgain(res?.attempt_count);\n setSubmitDisable(true);\n setSubmit(true);\n }\n }\n }, [res, triedAgain]);\n\n // const handleOptionClick = (id) => {\n // if (!submitDisable) {\n // if (answer.includes(id)) {\n // // Item is already selected, so remove it\n // setAnswer(answer.filter((itemId) => itemId !== id));\n // } else {\n // // Item is not selected, so add it\n // setAnswer([...answer, id]);\n // }\n // }\n // };\n // console.log(\"data\", data);\n\n return (\n \n {data &&\n data.map((content) => (\n \n ))}\n\n \n \n Submit\n \n \n\n {data &&\n submit &&\n data?.map((content) => {\n let dataArr = [];\n if (\n data[2]?.type === \"single\" ||\n data[2]?.assessment_type === \"single\"\n ) {\n dataArr =\n content?.value && correct\n ? content?.value?.correct\n : content?.value?.incorrect;\n } else if (\n data[2]?.type === \"multiple\" ||\n data[2]?.assessment_type === \"multiple\"\n ) {\n dataArr =\n content?.value && res?.attempt_status === \"PARTIALLY_CORRECT\"\n ? content?.value?.partially_correct\n : content?.value &&\n res?.attempt_status === \"PARTIALLY_INCORRECT\"\n ? content?.value?.partially_incorrect\n : content?.value && res?.attempt_status === \"CORRECT\"\n ? content?.value?.correct\n : content?.value?.incorrect;\n }\n\n return (\n content?.component === \"output\" &&\n dataArr?.map((content, index) => (\n \n ))\n );\n })}\n \n );\n}\n\nexport default Assessment;\n","import { makeStyles } from \"@mui/styles\";\nimport { display } from \"@mui/system\";\n\nconst useStyles = makeStyles((theme) => ({\n cardGrid: {\n padding: \"10px 16px 10px 16px\",\n marginTop: \"20px\",\n },\n icons: {\n marginRight: \"15px\",\n position: \"flex-start\",\n },\n centere: {\n align: \"center\",\n },\n\n Button: {\n paddingRight: \"20px\",\n paddingBottom: \"10px\",\n },\n link: {\n textDecoration: \"none\",\n color: \"green\",\n cursor: \"pointer\",\n },\n MoreBatchWrap: {\n display: \"flex\",\n flexDirection: \"column\",\n padding: \"25px\",\n },\n MoreBatchCard: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n padding: \"20px 0\",\n minHeight: \"170px\",\n },\n ButtonInfo: {\n borderRedius: \"90px\",\n },\n FlexedContant: {\n display: \"flex\",\n },\n BatchEnroll2Box: {\n maxWidth: 500,\n mb: 10,\n pt: 3,\n height: 280,\n padding: \"15px\",\n },\n BatchEnroll2DateNDegree: {\n display: \"flex\",\n justifyContent: \"center\",\n padding: \"10px 0\",\n mb: 1,\n },\n ExerciseBatchClassCard: {\n maxWidth: 350,\n },\n EnrollInCourseBox1: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100vw\",\n flexWrap: \"wrap\",\n marginTop: \"50px\",\n },\n EnrollInCourseBox2: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n },\n EnrollInCourseCard: {\n align: \"right\",\n mt: 1,\n maxWidth: 370,\n mb: 10,\n },\n EnrollInCourseFormBox: {\n display: \"flex\",\n justifyContent: \"start\",\n },\n\n DoubtClassLangChip: {\n marginLeft: 10,\n borderRadius: 90,\n height: 30,\n },\n DropOut: {\n display: \"flex\",\n cursor: \"pointer\",\n justifyContent: \"center\",\n },\n DoubtClassInfoSections: {\n padding: \"16px\",\n marginTop: \"16px\",\n borderRadius: \"20px\",\n },\n NeedHelpBoxContant: {\n display: \"flex\",\n mb: 1,\n },\n ViewClassDetailButtonBox: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n RevisionClassEnrollBox: {\n marginTop: \"32px\",\n maxWidth: 350,\n align: \"right\",\n display: \"flex\",\n justifyContent: \"center\",\n },\n ReviseCardDates: {\n display: \"flex\",\n justifyContent: \"start\",\n },\n UnAvailableRevisionClass: {\n padding: \"8px\",\n marginBottom: \"35px\",\n },\n}));\n\nexport default useStyles;\n","import * as React from \"react\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport { CircularProgress, Typography } from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport axios from \"axios\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { toast } from \"react-toastify\";\nimport { format } from \"../../common/date\";\nimport { useParams } from \"react-router-dom\";\nimport { actions as enrolledBatchesActions } from \"../PathwayCourse/redux/action\";\nimport { actions as upcomingClassActions } from \"../PathwayCourse/redux/action\";\n\nexport default function AlertDialog(props) {\n const classes = useStyles();\n const {\n open,\n close,\n title,\n start_time,\n end_time,\n id,\n registerAll,\n exerciseReload,\n setIsEnrolled,\n type,\n reloadContent,\n } = props;\n\n const user = useSelector(({ User }) => User);\n const params = useParams();\n const pathwayId = params.pathwayId;\n const dispatch = useDispatch();\n const [loading, setLoading] = React.useState(false);\n const handelEnrollment = (Id) => {\n setLoading(true);\n axios\n .post(\n `${\n process.env.REACT_APP_MERAKI_URL\n }/classes/${Id}/register?register-all=${registerAll || false}`,\n {},\n {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: user.data.token,\n },\n }\n )\n .then(() => {\n toast.success(\"Class Enrolled\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n setLoading(false);\n\n close();\n if (registerAll) {\n dispatch(\n enrolledBatchesActions.getEnrolledBatches({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n dispatch(\n upcomingClassActions.getupcomingEnrolledClasses({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n } else if (setIsEnrolled) {\n setIsEnrolled(true);\n }\n reloadContent && reloadContent();\n })\n .catch((err) => {\n setLoading(false);\n toast.error(\"Failed To Enroll To Class\", {\n position: toast.POSITION.BOTTOM_RIGHT,\n autoClose: 2500,\n });\n close();\n });\n };\n const dialougContentMap = {\n batch: [\n \"Awesome! You have taken the first step to being a programmer\",\n \"Batch: \" + title,\n ],\n DoubtClass: [\"Doubt Class\", \"Class : \" + title],\n RevisionClass: [\"Revision Class\", \"From: \" + title],\n };\n return (\n
\n \n \n <>\n \n {dialougContentMap[type][0]}\n \n \n {dialougContentMap[type][1]}\n \n \n \n \n {start_time ? format(start_time, \"dd MMM yy\") : \"\"} , {\" \"}\n {start_time ? format(start_time, \"hh:mm aaa\") : \"\"}-{\" \"}\n {end_time ? format(end_time, \"hh:mm aaa\") : \"\"}\n \n \n \n \n {\n handelEnrollment(id);\n }}\n variant=\"contained\"\n >\n {loading ? (\n \n ) : (\n \" Confirm Enrollment\"\n )}\n \n \n \n
\n );\n}\n","import React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Container, Typography } from \"@mui/material\";\nimport { CardContent, Card, Button } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport axios from \"axios\";\nimport useStyles from \"../styles\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../../services/api\";\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport FormControl from \"@mui/material/FormControl\";\nimport { format } from \"../../../common/date\";\nimport AlertDialog from \"../AlertDialog\";\nimport ExerciseBatchClass from \"../ExerciseBatchClass/ExerciseBatchClass\";\nimport DropOut from \"../DropOut\";\nconst NoRevisionClassImage = require(\"./assets/NoRevision.svg\");\nfunction RevisionClassEnroll(props) {\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n const { id } = props;\n const [revisionData, setRevisionData] = useState([]);\n const [revisionId, setRevisionId] = useState(null);\n const [open, setOpen] = useState(false);\n const close = () => [setOpen(false)];\n const [DataToEnroll, setDataToEnroll] = useState(null);\n const [dropOutOpen, setDropOutOpen] = useState(false);\n const closeDropOut = () => [setDropOutOpen(false)];\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/classes/${id}/revision`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n })\n .then((res) => {\n // setUserEnrolledClasses(res.data);\n const data = res.data;\n setRevisionData(data);\n setDataToEnroll(data[0]);\n })\n .catch((err) => {});\n }, [dropOutOpen, open]);\n return (\n \n \n {DataToEnroll?.is_enrolled ? (\n <>\n \n {\n setDropOutOpen(true);\n }}\n >\n Can`t attend ?\n {\" \"}\n \n \n ) : revisionData.length > 0 ? (\n \n \n \n Missed the class or need to revise? Enroll in a class from\n another batch\n \n \n \n \n {revisionData.map((item) => {\n return (\n {\n setRevisionId(e.target.value);\n setDataToEnroll(item);\n }}\n control={}\n // you can put your value using {} <- this\n label={`${format(\n item.start_time,\n \"dd MMM yy\"\n )}, ${format(\n item.start_time,\n \"hh:mm aaa\"\n )} - ${format(item.end_time, \"hh:mm aaa\")}`}\n />\n );\n })}\n \n \n \n {\n setOpen(true);\n }}\n variant=\"contained\"\n fullWidth\n >\n Enroll\n \n \n \n \n ) : (\n <>\n \n \"meraki\"\n {/* */}\n \n Looks like there are no revision class. We will keep looking for\n them and inform you as they come\n \n {/* */}\n \n \n )}\n \n \n );\n}\n\nexport default RevisionClassEnroll;\n","import React, { useState, useEffect } from \"react\";\nimport { isBeforeNow, millisecondsUntil } from \"../../../common/date\";\n\n/**\n * Shows the future (React) element before the given date, past element after,\n * updating what's shown from the future to the past, if the time passes\n * when the user is viewing this component.\n * @param {ReactElement=} future the element to show before date, if any\n * @param {ReactElement=} past the element to show after date, if any\n * @param {Date|string=} date Valid Date string recognized by formatInTimeZone\n * (https://www.npmjs.com/package/date-fns-tz#formatintimezone)\n * or Date for which to base which Component to show, defaults to now\n */\nfunction FutureOrPast({ future = \"\", past = \"\", date = new Date() }) {\n const [isInFuture, setIsInFuture] = useState(!isBeforeNow(date));\n\n useEffect(() => {\n const msUntilDate = millisecondsUntil(date);\n setIsInFuture(!isBeforeNow(date));\n // Don't set timer if it's too far in future:\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\n if (isInFuture && msUntilDate <= 2 ** 31 - 1) {\n const timer = setTimeout(() => {\n setIsInFuture(false);\n }, msUntilDate);\n return () => clearTimeout(timer); // cleans up on unmount\n }\n }, [date]);\n\n return isInFuture ? future : past;\n}\n\nexport default FutureOrPast;\n","import React, { useState } from \"react\";\nimport { Container, CardContent, Card, Typography, Box } from \"@mui/material\";\nimport useStyles from \"../styles\";\nimport { format } from \"../../../common/date\";\nimport RevisionClassEnroll from \"../Revision/RevisionClassEnroll\";\nimport FutureOrPast from \"../../common/FutureOrPast\";\nimport ClassJoinTimerButton from \"../../Class/ClassJoinTimerButton\";\n\nconst ExerciseBatchClass = (props) => {\n const classes = useStyles();\n const [dropOutOpen, setDropOutOpen] = useState(false);\n const { facilitator, start_time, end_time, is_enrolled, meet_link, id } =\n props;\n const closeDropOut = () => {\n setDropOutOpen(false);\n };\n\n return (\n \n \n \n \n \n \n {format(start_time, \"dd MMM yy\")},{\" \"}\n {format(start_time, \"hh:mm aaa\")} -{\" \"}\n {format(end_time, \"hh:mm aaa\")}\n \n \n {\" \"}\n \n {facilitator}\n \n \n Please join at least 10 mintues before the scheduled time\n \n \n \n \n \n \n }\n past={}\n />\n );\n};\n\nexport default ExerciseBatchClass;\n","import React, { useEffect, useState } from \"react\";\nimport { CardContent, Card, Button, Typography } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport useStyles from \"../styles\";\nimport { useSelector } from \"react-redux\";\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport FormControl from \"@mui/material/FormControl\";\nimport { format } from \"../../../common/date\";\nimport AlertDialog from \"../AlertDialog.js\";\nimport { METHODS } from \"../../../services/api\";\nimport axios from \"axios\";\nimport { useParams } from \"react-router-dom\";\n\nconst NotEnrolledSvg = require(\"./notEnrolled.svg\");\n\nconst CourseEnroll = (props) => {\n const classes = useStyles();\n const params = useParams();\n const user = useSelector(({ User }) => User);\n const upcomingBatchesData = useSelector((state) => {\n return state.Pathways?.upcomingBatches?.data;\n });\n\n\n const { reloadContent } = props;\n const pathwayId = params.pathwayId;\n const data = upcomingBatchesData?.slice(0, 3).map((item) => {\n return {\n id: item.id,\n title: item.title,\n startTime: item.start_time,\n endTime: item.end_time,\n };\n });\n const [selectedBatchToEnroll, setSelectedBatchToEnroll] = useState(\n data && data[0]\n );\n useEffect(() => {}, [selectedBatchToEnroll]);\n const [open, setOpen] = useState(false);\n const close = () => {\n setOpen(false);\n };\n\n return (\n <>\n \n \n \n \n \n \n \n It seems you are not part of a batch. Please enroll in a batch\n to attend the live classes.\n \n \n \n \n {data?.map((item) => {\n return (\n <>\n {\n setSelectedBatchToEnroll(item);\n }}\n key={item.id}\n value={item.id}\n control={}\n label={{item?.title}}\n />\n \n {format(item?.startTime, \"dd MMM yy\")} -\n {format(item?.endTime, \"dd MMM yy\")}\n \n \n );\n })}\n \n \n \n {\n setOpen(true);\n }}\n >\n Enroll\n \n \n \n \n \n \n \n \n );\n};\nexport default CourseEnroll;\n","import React, { useState } from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { Typography, Chip } from \"@mui/material\";\nimport { Button } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport useStyles from \"./styles\";\nimport { breakpoints } from \"../../theme/constant\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport SwipeableDrawer from \"@mui/material/SwipeableDrawer\";\nimport { lang, TimeLeft } from \"../../constant\";\nimport { format } from \"../../common/date\";\nimport AlertDialog from \"./AlertDialog\";\nimport DropOut from \"./DropOut\";\n\nexport const MoreDetails = (props) => {\n const { open, setOpen, isEnrolled, setIsEnrolled } = props;\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const { actions, value } = props;\n const toggleDrawer = (changeTo) => (event) => {\n if (\n event &&\n event.type === \"keydown\" &&\n (event.key === \"Tab\" || event.key === \"Shift\")\n ) {\n return;\n }\n\n setOpen(changeTo);\n };\n const [ConfirmationOpen, setConfirmationOpen] = useState(false);\n\n const [openDropOut, setOpenDropOut] = useState(false);\n const anchorPos = \"right\";\n const close = () => {\n setConfirmationOpen(false);\n };\n let [TimeLefts, setTimeLefts] = useState(TimeLeft(actions.start_time));\n var ONE_MINUTE = 60 * 1000;\n setInterval(() => {\n setTimeLefts(TimeLeft(actions.start_time));\n }, ONE_MINUTE);\n const closeDropOut = () => {\n setOpenDropOut(false);\n };\n return (\n
\n \n \n \n \n Doubt Class\n \n \n {actions?.title}\n \n \n \n\n \n \n \n Clear your doubts related to the first class of Python and other\n queries during your studies\n \n \n \n {actions?.start_time\n ? format(actions?.start_time, \"dd MMM yy\")\n : \"\"}\n ,\n {actions?.start_time\n ? format(actions?.start_time, \"hh:mm aaa\")\n : \"\"}{\" \"}\n -{actions?.end_time ? format(actions?.end_time, \"hh:mm aaa\") : \"\"}\n \n \n {\" \"}\n \n {actions?.facilitator_name}\n \n \n Please join at least 10 mintues before the scheduled time\n \n {isEnrolled ? (\n <>\n {TimeLefts == \"joinNow\" ? (\n \n \n Join Now\n \n \n ) : (\n \n )}\n \n {\n setOpenDropOut(true);\n }}\n variant=\"body2\"\n color=\"error.main\"\n className={classes.DropOut}\n >\n can`t attend?\n {\" \"}\n \n ) : (\n setConfirmationOpen(true)}\n >\n Enroll\n \n )}\n \n \n \n \n
\n );\n};\n\nconst ClassDetails = ({ setOpen, isActive }) => {\n return (\n \n }\n onClick={() => {\n setOpen(true);\n }}\n sx={{\n width: isActive ? \"90%\" : \"215px\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n }}\n >\n View Class Details\n \n \n );\n};\n\nconst DoubtClassExerciseComponent = (props) => {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const { actions, value } = props;\n const [open, setOpen] = useState(false);\n const [isEnrolled, setIsEnrolled] = useState(actions?.is_enrolled);\n return !isEnrolled ? (\n <>\n \n \n {\" \"}\n \n Need help? We got you covered. Enroll in the doubt class on{\" \"}\n {format(actions?.start_time, \"dd MMM yy\")}\n at {format(actions?.start_time, \"hh:mm aaa\")} -{\" \"}\n {format(actions?.end_time, \"hh:mm aaa\")}\n \n\n \n {/* \n }\n onClick={() => {\n setOpen(true);\n }}\n >\n View Class Details\n \n */}\n {/* */}\n \n \n \n ) : (\n <>\n \n <>\n \n \n Upcoming Doubt Class\n \n \n \n {format(actions?.start_time, \"dd MMM yy\")}\n at {format(actions?.start_time, \"hh:mm aaa\")} -{\" \"}\n {format(actions?.end_time, \"hh:mm aaa\")}\n \n {/* {actions.facilitator_name} */}\n \n \n {/* \n }\n onClick={() => {\n setOpen(true);\n }}\n width={isActive ? \"90%\" : \"215px\"} >\n View Class Details\n \n */}\n \n \n \n );\n};\nexport default DoubtClassExerciseComponent;\n","import { Box, Chip, Typography } from \"@mui/material\";\nimport React from \"react\";\n// import { TimeLeft } from \"../../../constant\";\nimport { format } from \"../../../common/date\";\nimport FutureOrPast from \"../../common/FutureOrPast\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nfunction ClassTopic({ courseData }) {\n const languageMap = {\n hi: \"Hindi\",\n en: \"English\",\n te: \"Telugu\",\n ta: \"Tamil\",\n mr: \"Marathi\",\n };\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n return (\n <>\n \n \n {courseData.sub_title || courseData.title}\n \n \n \n \n \n \n \n Clear your doubts related to the first class of Python and other\n queries during your studies\n \n \n \n \n If you miss the class or need to revise, you can enroll in an extra\n class to catch up after {format(courseData.start_time, \"dd MMM yy\")}\n \n \n \n \n \n \n \n\n \n Completed on {format(courseData.start_time, \"dd MMM yy\")}\n \n \n \n }\n />\n \n \n );\n}\n\nexport default ClassTopic;\n","import { Box, Container, Grid, Skeleton, Typography } from \"@mui/material\";\nimport React from \"react\";\n\nfunction ExerciseContentLoading() {\n return (\n \n \n \n \n \n \n \n \n {/* create skeleton for text */}\n {[1, 1, 1, 6, 4, 4, 8, 3, 4].map((item, index) => (\n \n \n \n \n ))}\n \n \n \n \n );\n}\n\nexport default ExerciseContentLoading;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n //For desktop only\n DesktopDrawer: {\n width: (props) => props.drawerWidth,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: (props) => props.drawerWidth,\n boxSizing: \"border-box\",\n },\n overflow: \"hidden\",\n \"& ::-webkit-scrollbar\": { display: \"none\" },\n zIndex: 0,\n },\n\n //For both desktop and mobile\n ListItemsTypography: {\n fontSize: \"14px\",\n lineHeight: \"21px\",\n textDecoration: \"none\",\n },\n ListItemLink: {\n textDecoration: \"none\",\n fontSize: \"14px\",\n width: \"100%\",\n },\n courseNameTypography: {\n fontWeight: \"400\",\n },\n\n //Content List text\n ContentListDiv: {\n display: \"flex\",\n alignItems: \"center\",\n cursor: \"pointer\",\n left: \"24px\",\n marginLeft: \"10px\",\n marginTop: \"200px\",\n },\n ContentListIcon: {\n color: \"#6D6D6D\",\n width: \"20px\",\n height: \"28px\",\n },\n}));\n\nexport default useStyles;\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Drawer from \"@mui/material/Drawer\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItem from \"@mui/material/ListItem\";\nimport { Typography, useMediaQuery } from \"@mui/material\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { interpolatePath, PATHS } from \"../../../../constant\";\nimport useStyles from \"./styles\";\nimport AssignmentOutlinedIcon from \"@mui/icons-material/AssignmentOutlined\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\nfunction Item({\n progressTrackId,\n setSelected,\n selected,\n index,\n ref1,\n setExerciseId,\n classes,\n params,\n contentType,\n id,\n title,\n visitedExercises,\n setVisitedExercises,\n}) {\n const [completed, setCompleted] = React.useState(false);\n\n const isVisited = visitedExercises.includes(id);\n const itemStyle = {\n color: isVisited\n ? \"#48A145\"\n : selected === index || completed\n ? \"#48A145\"\n : \"#6D6D6D\",\n fontWeight: selected === index ? \"bold\" : \"\",\n textDecoration: \"none\",\n };\n\n React.useEffect(() => {\n if (\n contentType === \"assessment\" &&\n progressTrackId?.assessments?.includes(id)\n ) {\n setCompleted(true);\n } else if (\n contentType === \"class_topic\" &&\n progressTrackId?.classes?.includes(id)\n ) {\n setCompleted(true);\n } else if (\n contentType === \"exercise\" &&\n progressTrackId?.exercises?.includes(id)\n ) {\n setCompleted(true);\n }\n }, [progressTrackId, id, contentType]);\n\n const handleClick = () => {\n setSelected(index);\n setExerciseId(index);\n if (contentType === \"exercise\") {\n setVisitedExercises((prev) => {\n if (!prev.includes(id)) {\n const updated = [...prev, id];\n localStorage.setItem(\"visitedExercises\", JSON.stringify(updated));\n return updated;\n }\n return prev;\n });\n }\n };\n\n return (\n \n \n \n \n {selected === index && (\n \n )}\n {index + 1 + \". \"}\n {title === \"assessment\" ? \"Practice Question\" : title}\n \n \n \n \n );\n}\n\nfunction PersistentDrawerLeft({\n list,\n setSelected,\n setExerciseId,\n progressTrackId,\n courseTitle,\n}) {\n const [visitedExercises, setVisitedExercises] = React.useState(() => {\n const stored = localStorage.getItem(\"visitedExercises\");\n return stored ? JSON.parse(stored) : [];\n });\n\n // const [selected, setSelectedState] = React.useState(\n // parseInt(localStorage.getItem(lastSelectedExercise_${params.courseId})) || parseInt(params.exerciseId)\n // );\n\n const desktop = useMediaQuery(\"(min-width: 1050px)\");\n const laptop = useMediaQuery(\"(min-width: 1000px)\");\n const params = useParams();\n const courseName = courseTitle.toUpperCase();\n const drawerWidth = desktop ? 260 : laptop ? 160 : 160;\n const selected = parseInt(params.exerciseId);\n const classes = useStyles({ desktop, laptop, drawerWidth });\n\n const ref1 = React.useRef();\n React.useEffect(() => {\n if (ref1.current) {\n ref1.current.scrollIntoView({\n block: \"center\",\n });\n }\n }, [selected]);\n\n // React.useEffect(() => {\n // if (ref1.current) {\n // ref1.current.scrollIntoView({\n // block: \"center\",\n // });\n // }\n // }, [selected]);\n\n // const handleExerciseSelect = (index) => {\n // setSelectedState(index);\n // setExerciseId(index);\n // localStorage.setItem(lastSelectedExercise-${params.courseId}, index);\n // };\n\n return (\n \n \n
\n \n {/* \n \n */}\n \n \n \n \n \n \n {courseName}\n \n \n \n {list?.map((obj, index) => (\n \n ))}\n \n
\n \n
\n );\n}\nexport default PersistentDrawerLeft;\n","import * as React from \"react\";\nimport { Link, useParams } from \"react-router-dom\";\nimport { interpolatePath, PATHS } from \"../../../../constant\";\nimport Box from \"@mui/material/Box\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport Divider from \"@mui/material/Divider\";\nimport Drawer from \"@mui/material/Drawer\";\nimport List from \"@mui/material/List\";\nimport ListItem from \"@mui/material/ListItem\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport Typography from \"@mui/material/Typography\";\nimport { useMediaQuery } from \"@mui/material\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\nimport useStyles from \"./styles\";\n\nconst drawerWidth = 240;\n\nfunction Item({\n progressTrackId,\n selected,\n index,\n setOpen,\n setSelected,\n setExerciseId,\n classes,\n params,\n contentType,\n id,\n ref1,\n title,\n}) {\n const [completed, setCompleted] = React.useState(false);\n\n const ItemStyle = {\n color: selected === index || completed ? \"#48A145\" : \"#6D6D6D\",\n fontWeight: selected === index ? \"bold\" : \"\",\n };\n const clickOnTitle = (index) => () => {\n setSelected(index);\n setOpen(false);\n };\n React.useEffect(() => {\n if (contentType === \"assessment\") {\n if (progressTrackId?.assessments?.includes(id)) {\n setCompleted(true);\n }\n } else if (contentType === \"class_topic\") {\n if (progressTrackId?.classes?.includes(id)) {\n setCompleted(true);\n }\n } else if (contentType === \"exercise\") {\n if (progressTrackId?.exercises?.includes(id)) {\n setCompleted(true);\n }\n }\n }, [progressTrackId]);\n\n return (\n <>\n \n \n {\n setSelected(index);\n setExerciseId(index);\n }}\n >\n \n {selected === index ? (\n \n ) : (\n \"\"\n )}\n {index + 1 + \". \"}\n {title === \"assessment\" ? \"Practice Question\" : title}\n \n \n \n \n \n );\n}\n\nfunction MobileDrawer(props) {\n const desktop = useMediaQuery(\"(min-width: 1050px)\");\n const laptop = useMediaQuery(\"(min-width: 1000px)\");\n const params = useParams();\n const {\n window,\n setSelected,\n list,\n open,\n setOpen,\n setExerciseId,\n progressTrackId,\n } = props;\n //const [mobileOpen, setMobileOpen] = React.useState(false);\n const selected = parseInt(params.exerciseId);\n const classes = useStyles({ desktop, laptop, drawerWidth });\n const ref1 = React.useRef();\n React.useEffect(() => {\n if (ref1.current) {\n ref1.current.scrollIntoView({\n block: \"center\",\n });\n }\n }, []);\n\n const handleDrawerToggle = () => {\n setOpen((prev) => !prev);\n };\n\n const drawer = (\n
\n \n \n \n {list?.map((obj, index) => (\n \n ))}\n \n
\n );\n\n const container =\n window !== undefined ? () => window().document.body : undefined;\n\n return (\n \n \n \n {/* The implementation can be swapped with js to avoid SEO duplication of links. */}\n \n {drawer}\n \n \n \n );\n}\n\nexport default MobileDrawer;\n","import React from \"react\";\nimport { Typography } from \"@mui/material\";\nimport AssignmentOutlinedIcon from \"@mui/icons-material/AssignmentOutlined\";\nimport useStyles from \"./styles\";\n\nexport default function ContentListText(props) {\n const { setOpenDrawer } = props;\n const textStyle = { color: \"#6D6D6D\", fontSize: \"12px\", marginLeft: \"8px\" };\n const classes = useStyles();\n\n return (\n
setOpenDrawer(true)} className={classes.ContentListDiv}>\n \n \n CONTENT LIST\n \n
\n );\n}\n","import React, { useEffect, useState, useMemo, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { METHODS } from \"../../../services/api\";\nimport axios from \"axios\";\nimport get from \"lodash/get\";\nimport YouTube from \"react-youtube\";\nimport DOMPurify from \"dompurify\";\nimport { useParams } from \"react-router-dom\";\nimport CircleIcon from \"@mui/icons-material/Circle\";\nimport { getCourseContent } from \"../../../components/Course/redux/api\";\n// import { actions as courseActions } from \"../../../components/Course/redux/action\";\nimport { actions as enrolledBatchesActions } from \"../../PathwayCourse/redux/action\";\nimport { breakpoints } from \"../../../theme/constant\";\n\nimport Assessment from \"../ExerciseContent/Assessment\";\nimport {\n TableRow,\n TableHead,\n TableCell,\n TableBody,\n Table,\n TableContainer,\n Typography,\n Container,\n Box,\n Button,\n Grid,\n useMediaQuery,\n} from \"@mui/material\";\n\n// import HiddenContent from \"../HiddenContent\";\nimport { versionCode } from \"../../../constant\";\n\nimport useStyles from \"../styles\";\nimport ExerciseBatchClass from \"../../BatchClassComponents/ExerciseBatchClass/ExerciseBatchClass\";\nimport CourseEnroll from \"../../BatchClassComponents/EnrollInCourse/EnrollInCourse\";\nimport DoubtClassExerciseComponent from \"../../BatchClassComponents/DoubtClassExerciseComponent\";\nimport RevisionClassEnroll from \"../../BatchClassComponents/Revision/RevisionClassEnroll\";\nimport { actions as upcomingBatchesActions } from \"../..//PathwayCourse/redux/action\";\n// import { actions as upcomingClassActions } from \"../../PathwayCourse/redux/action\";\nimport ClassTopic from \"../ClassTopic/ClassTopic\";\nimport ExerciseContentLoading from \"./ExerciseContentLoading\";\nimport PersistentDrawerLeft from \"./Drawers/Drawer\";\nimport MobileDrawer from \"./Drawers/MobileDrawer\";\nimport ContentListText from \"./Drawers/ContentListText\";\n\nconst createVisulizeURL = (code, lang, mode) => {\n // only support two languages for now\n const l = lang == \"python\" ? \"2\" : \"js\";\n const replacedCode = code && code.replace(/
/g, \"\\n\");\n const visualizerCode = replacedCode.replace(/ /g, \" \");\n const url = `http://pythontutor.com/visualize.html#code=${encodeURIComponent(\n visualizerCode\n )\n .replace(/%2C|%2F/g, decodeURIComponent)\n .replace(/\\(/g, \"%28\")\n .replace(\n /\\)/g,\n \"%29\"\n )}&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=${mode}&origin=opt-frontend.js&py=${l}&rawInputLstJSON=%5B%5D&textReferences=false`;\n return url;\n};\n\nfunction UnsafeHTML(props) {\n const { html, Container, ...otherProps } = props;\n const sanitizedHTML = DOMPurify.sanitize(html);\n return (\n \n );\n}\n\nconst headingVarients = {};\n\n[Typography, \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(\n (Name, index) =>\n (headingVarients[index + 1] = (data) => (\n \n // \n ))\n);\n\nconst RenderDoubtClass = ({ data, exercise }) => {\n const params = useParams();\n const pathwayId = params.pathwayId;\n const classes = useStyles();\n if (data?.component === \"banner\") {\n const value = data.value;\n const actions = JSON.parse(data.actions[0].data);\n const { start_time, end_time } = actions;\n return (\n
\n {start_time && end_time && (\n <>\n \n\n
\n \n )}\n \n );\n }\n return null;\n};\n\nconst RenderContent = ({ data, exercise, pathwayData }) => {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const playerRef = useRef(null);\n\n const videoId = data.value.includes(\"=\")\n ? data.value.split(\"=\")[1]\n : data.value;\n\n const [isPlaying, setIsPlaying] = useState(false);\n const [allowedTime, setAllowedTime] = useState(0);\n\n const onReady = (event) => {\n playerRef.current = event.target;\n };\n\n const onStateChange = (event) => {\n if (event.data === window.YT.PlayerState.PLAYING) {\n setIsPlaying(true);\n } else {\n setIsPlaying(false);\n }\n };\n\n useEffect(() => {\n let intervalId;\n\n if (isPlaying) {\n intervalId = setInterval(() => {\n if (playerRef.current) {\n const currentTime = playerRef.current.getCurrentTime();\n if (currentTime > allowedTime + 5) {\n // Allow a 5-second buffer\n playerRef.current.seekTo(allowedTime);\n } else {\n setAllowedTime(currentTime);\n }\n }\n }, 1000);\n } else if (intervalId) {\n clearInterval(intervalId);\n }\n\n return () => clearInterval(intervalId);\n }, [isPlaying, allowedTime]);\n\n const opts = {\n height: \"390\",\n width: \"640\",\n playerVars: {\n controls: 1, // Disable default controls\n disablekb: 1, // Disable keyboard controls\n },\n };\n\n if (data.component === \"header\") {\n return (\n \n {headingVarients[data.variant](DOMPurify.sanitize(get(data, \"value\")))}\n \n );\n }\n if (data.component === \"image\") {\n return (\n <>\n \n \n \n \n );\n }\n if (data.component === \"youtube\") {\n const videoId = data.value.includes(\"=\")\n ? data.value.split(\"=\")[1]\n : data.value;\n return pathwayData?.code !== \"TCBPI\" ? (\n \n ) : (\n \n );\n }\n if (data.component === \"text\") {\n const text = DOMPurify.sanitize(get(data, \"value\"));\n if (data.decoration && data.decoration.type === \"bullet\") {\n return (\n \n \n \n \n );\n }\n if (data.decoration && data.decoration.type === \"number\") {\n return (\n \n \n \n \n );\n } else {\n return (\n \n );\n }\n }\n if (data.component === \"table\") {\n const allData = data.value.map((item) => item.items);\n const dataInCol = allData[0].map((_, i) =>\n allData.map((_, j) => allData[j][i])\n );\n return (\n \n \n \n \n {data.value.map((item, idx) => {\n const header = DOMPurify.sanitize(item.header);\n return (\n \n );\n })}\n \n \n \n {dataInCol.map((item, index) => {\n return (\n \n {item.map((row, idx) => {\n const rowData = DOMPurify.sanitize(row);\n return (\n \n );\n })}\n \n );\n })}\n \n
\n
\n );\n }\n\n if (data.component === \"code\") {\n const codeContent = DOMPurify.sanitize(get(data, \"value\"));\n return (\n
\n \n {/* */}\n \n \n Code Example\n \n {/* */}\n \n \n \n Visualize\n \n \n \n
\n );\n }\n // if (data.type === \"solution\") {\n // return (\n // \n // \n // \n // \n // \n // );\n // }\n\n return \"\";\n};\n\nfunction ExerciseContent({\n exerciseId,\n lang,\n contentList,\n setExerciseId,\n setProgressTrackId,\n courseTitle,\n progressTrackId,\n}) {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const user = useSelector(({ User }) => User);\n const [content, setContent] = useState([]);\n const [course, setCourse] = useState();\n const [exercise, setExercise] = useState();\n const classes = useStyles();\n const params = useParams();\n const courseId = params.courseId;\n const pathwayId = params.pathwayId;\n const [showJoinClass, setShowJoinClass] = useState(true);\n const [courseData, setCourseData] = useState({ content_type: null });\n const [cashedData, setCashedData] = useState([]);\n const [loading, setLoading] = useState(true);\n const [openMobile, setOpenMobile] = useState(false);\n const [assessmentResult, setAssessmentResult] = useState(null);\n const [triger, setTriger] = useState(false);\n const [pathwayName, setPathwayName] = useState([]);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (cashedData?.length > 0) {\n setLoading(false);\n }\n }, [cashedData]);\n const upcomingBatchesData = useSelector((state) => {\n return state.Pathways?.upcomingBatches?.data;\n });\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/names`,\n headers: {\n accept: \"application/json\",\n Authorization: localStorage.getItem(\"studentAuthToken\") || user?.data?.token,\n },\n })\n .then((res) => {\n console.log(res.data, \"pathwayName\");\n setPathwayName(res.data);\n })\n .catch((err) => {});\n }, []);\n\n const pathwayData = pathwayName.find((item) => {\n return item.id == pathwayId;\n });\n\n // const userEnrolledClasses = useSelector((state) => {\n // return state.Pathways?.upcomingEnrolledClasses?.data;\n // });\n\n const reloadContent = () => {\n getCourseContent({ courseId, lang, versionCode, user }).then((res) => {\n setExercise(res.data.course?.course_content[exerciseId]);\n setContent(res.data.course?.course_content[exerciseId].content);\n setCourseData(res.data.course?.course_content[exerciseId]);\n setCashedData(res.data.course?.course_content);\n });\n };\n\n useEffect(() => {\n getCourseContent({ courseId, lang, versionCode, user }).then((res) => {\n setCourse(res?.data?.course.name);\n setExercise(res?.data?.course?.course_content?.[params.exerciseId]);\n setContent(\n res?.data?.course?.course_content?.[params.exerciseId]?.content\n );\n setCourseData(res?.data?.course?.course_content?.[params.exerciseId]);\n setCashedData(res?.data?.course?.course_content);\n });\n }, [courseId, lang, triger, user]);\n\n useEffect(() => {\n setExercise(cashedData?.[params.exerciseId]);\n setContent(cashedData?.[params.exerciseId]?.content);\n\n setCourseData(cashedData?.[params.exerciseId]);\n }, [params.exerciseId]);\n\n useEffect(() => {\n if (exercise?.content_type === \"assessment\") {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/assessment/${exercise?.slug_id}/complete`,\n // url: `${process.env.REACT_APP_MERAKI_URL}/assessment/${exercise?.id}/student/result/v2`,\n headers: {\n accept: \"application/json\",\n Authorization:\n user?.data?.token || localStorage.getItem(\"studentAuthToken\"),\n },\n }).then((res) => {\n const keyToModify = \"selected_option\";\n const newValue = res?.data?.selected_option;\n const modifiedObject = {\n ...res,\n data: {\n ...res.data,\n [keyToModify]: newValue,\n },\n };\n setAssessmentResult(modifiedObject.data); // passing this after parsing the data.\n });\n }\n }, [triger, exerciseId, exercise]);\n\n const enrolledBatches = useSelector((state) => {\n if (state?.Pathways?.enrolledBatches?.data?.length > 0) {\n return state?.Pathways?.enrolledBatches?.data;\n } else {\n return null;\n }\n });\n\n useEffect(() => {\n // getupcomingEnrolledClasses\n if (\n user?.data?.token &&\n pathwayId !== \"miscellaneous\" &&\n pathwayId !== \"residential\" &&\n pathwayId !== \"c4caPathway\" &&\n pathwayId !== \"aidcxPathway\"\n ) {\n dispatch(\n enrolledBatchesActions.getEnrolledBatches({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n dispatch(\n upcomingBatchesActions.getUpcomingBatches({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n }\n }, [params.pathwayId]);\n\n function ExerciseContentMain() {\n const [selected, setSelected] = useState(params.exerciseId);\n const desktop = useMediaQuery(\"(min-width: 900px)\");\n\n return (\n \n {!desktop && }\n \n \n \n \n {courseData?.content_type == \"class_topic\" &&\n enrolledBatches && }\n \n \n \n\n \n {courseData?.content_type == \"class_topic\" && (\n <>\n {enrolledBatches ? (\n \n ) : (\n \n )}\n \n )}\n \n \n\n \n {desktop ? (\n \n ) : (\n \n )}\n {content &&\n content.map((contentItem, index) => (\n \n ))}\n\n {exercise && exercise.content_type === \"exercise\" && (\n \n {/* {course} */}\n {/* \n {exercise && exercise.name}\n */}\n \n {content &&\n content.map((contentItem, index) => (\n \n ))}\n \n \n )}\n {exercise && exercise.content_type === \"assessment\" && (\n \n )}\n \n \n );\n }\n return <>{!loading ? : };\n}\nexport default ExerciseContent;\n","import React from \"react\";\nimport { Typography, Container, Box, Button } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport { interpolatePath, PATHS } from \"../../../constant\";\nimport { useHistory, useParams } from \"react-router-dom\";\n\nfunction CourseCompletionPage(props) {\n const {\n data,\n nextPathwayIndex,\n setSuccessfulExerciseCompletion,\n pathwayModule,\n pathwayModuleIndex,\n C4CALastPage,\n } = props;\n const params = useParams();\n const { pathwayId } = params;\n\n const history = useHistory();\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n return (\n <>\n \n \n \n \n Congratulations! You completed{\" \"}\n {C4CALastPage\n ? pathwayModule[pathwayModuleIndex]?.name\n : data?.[nextPathwayIndex - 1]?.name}\n \n {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId: C4CALastPage\n ? pathwayModule?.[pathwayModuleIndex]?.id\n : data?.[nextPathwayIndex]?.id,\n exerciseId: 0,\n pathwayId: params.pathwayId,\n })\n );\n setSuccessfulExerciseCompletion(false);\n }}\n variant=\"contained\"\n >\n Next Up: {data?.[nextPathwayIndex]?.name}\n \n \n \n \n );\n}\n\nexport default CourseCompletionPage;\n","import React from \"react\";\nimport { Typography, Container, Box, Button } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport { interpolatePath, PATHS } from \"../../../constant\";\nimport { useHistory } from \"react-router-dom\";\nimport { useParams } from \"react-router-dom\";\n\nfunction LastCoursePage({ C4CALastPage }) {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const history = useHistory();\n const params = useParams();\n const studentAuthToken = localStorage.getItem(\"studentAuthToken\");\n const platformFlag = localStorage.getItem(\"platformFlag\");\n return (\n <>\n \n \n \"icon\"\n \n Congratulations! You completed the track\n \n {(platformFlag && platformFlag) ? (\n {\n history.push(\n studentAuthToken\n ? \"/aidcx-pathway\"\n : interpolatePath(PATHS.PATHWAY_COURSE, {\n pathwayId: params.pathwayId,\n })\n );\n }}\n variant=\"contained\"\n >\n Return to Dashboard\n \n ) : (\n {\n history.push(\n studentAuthToken\n ? \"/c4ca-pathway\"\n : interpolatePath(PATHS.PATHWAY_COURSE, {\n pathwayId: params.pathwayId,\n })\n );\n }}\n variant=\"contained\"\n >\n Return to Dashboard\n \n )}\n \n \n \n );\n}\n\nexport default LastCoursePage;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { useParams } from \"react-router-dom\";\nimport { actions as pathwayActions } from \"../../PathwayCourse/redux/action\";\nimport { useDispatch } from \"react-redux\";\nimport CourseCompletionPage from \"./CourseCompletionPage\";\nimport LastCoursePage from \"./LastCoursePage\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../../services/api\";\n\nfunction CompletionComponent({ setSuccessfulExerciseCompletion }) {\n const params = useParams();\n const courseID = params.courseId;\n const user = useSelector(({ User }) => User);\n const [pathway, setPathway] = useState([]);\n\n const dispatch = useDispatch();\n\n const pathwayCourses = useSelector(\n (state) => state?.Pathways?.pathwayCourse?.data?.courses\n );\n const [nextPathwayIndex, setNextPathwayIndex] = React.useState();\n const [pathwayModuleIndex, setPathwayModuleIndex] = useState();\n useEffect(() => {\n params.pathwayId !== \"c4caPathway\" &&\n dispatch(\n pathwayActions.getPathwaysCourse({ pathwayId: params.pathwayId })\n );\n }, [dispatch, params.pathwayId]);\n\n useEffect(() => {\n const currentIndex = pathwayCourses?.findIndex(\n (course) => course.id == courseID\n );\n if (currentIndex !== -1) {\n setNextPathwayIndex(currentIndex + 1);\n }\n }, [pathwayCourses]);\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/c4ca`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n })\n .then((response) => {\n setPathway(response?.data);\n })\n .catch((err) => {});\n }, [setPathway]);\n\n const filterCourses = pathway?.modules?.filter((item) => {\n return item.courses.length > 0;\n });\n\n const pathwayModule = filterCourses?.flatMap((item) => item.courses) || [];\n\n useEffect(() => {\n const currentIndex = pathwayModule?.findIndex(\n (course) => course.id == courseID\n );\n if (currentIndex !== -1) {\n if (pathwayModule[currentIndex].completed_portion === 100) {\n setPathwayModuleIndex(currentIndex + 1);\n }\n }\n }, [pathwayModule]);\n\n const C4CALastPage = pathwayModule.some((item) => item.id == courseID);\n\n const courseComplete = !C4CALastPage\n ? pathwayCourses && pathwayCourses[nextPathwayIndex]\n : pathwayModule && pathwayModule[pathwayModuleIndex];\n\n return (\n
\n {courseComplete ? (\n \n ) : (\n \n )}\n
\n );\n}\n\nexport default CompletionComponent;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { METHODS } from \"../../services/api\";\nimport axios from \"axios\";\nimport \"./style/index.scss\";\nimport ExerciseContent from \"./ExerciseContent\";\nimport ArrowBackIosIcon from \"@mui/icons-material/ArrowBackIos\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport useStyles from \"./styles\";\nimport { Link } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { useParams } from \"react-router-dom\";\nimport { PATHS, interpolatePath, versionCode } from \"../../constant\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick.css\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport {\n Container,\n Box,\n AppBar,\n Toolbar,\n useMediaQuery,\n Typography,\n Button,\n Select,\n MenuItem,\n} from \"@mui/material\";\nimport ModeEditOutlineOutlinedIcon from \"@mui/icons-material/ModeEditOutlineOutlined\";\nimport CompletionComponent from \"./CourseCompletion/CompletionComponent\";\nimport ExerciseImage from \"./ExerciseImage/ExerciseImage.js\";\nimport { breakpoints } from \"../../theme/constant\";\nconst languageMap = {\n \"hi-IN\": \"Hindi\",\n en: \"English\",\n \"te-IN\": \"Telugu\",\n ta: \"Tamil\",\n mr: \"Marathi\",\n \"or-IN\": \"Oriya\",\n \"kn-IN\": \"Kannada\",\n};\nconst Exercise = ({\n course,\n exerciseId,\n setExerciseId,\n classes,\n history,\n params,\n progressTrackId,\n}) => {\n const courseLength = course;\n const imageRef = React.useRef();\n useEffect(() => {\n if (imageRef.current) {\n imageRef.current.scrollIntoView({\n block: \"center\",\n });\n }\n }, [imageRef.current]);\n return (\n <>\n {courseLength?.map((exercise, index) => {\n return (\n \n );\n })}\n \n );\n};\nfunction NavigationComponent({\n index,\n exerciseId,\n setExerciseId,\n history,\n params,\n exercise,\n progressTrackId,\n imageRef,\n}) {\n return (\n <>\n {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId: params.courseId,\n exerciseId: index,\n pathwayId: params.pathwayId,\n })\n );\n }}\n index={index}\n imageRef={imageRef}\n selected={exerciseId == index}\n contentType={exercise.content_type}\n setExerciseId={setExerciseId}\n useSelector\n progressTrackId={progressTrackId}\n />\n \n );\n}\nfunction PathwayExercise() {\n const history = useHistory();\n const user = useSelector(({ User }) => User);\n const [course, setCourse] = useState([]);\n const [courseTitle, setCourseTitle] = useState(\"\");\n const [exerciseId, setExerciseId] = useState(0);\n const [previousExerciseId, setPreviousExerciseId] = useState(-1);\n const classes = useStyles();\n const params = useParams();\n const courseId = params.courseId;\n const courseLength = course && course.length ? course.length : 0;\n const [availableLang, setAvailableLang] = useState([\"en\"]);\n const [progressTrackId, setProgressTrackId] = useState(-1);\n const [successfulExerciseCompletion, setSuccessfulExerciseCompletion] =\n useState(false);\n const [showArrow, setShowArrow] = useState({ left: false, right: true });\n const scrollRef = React.useRef();\n const [language, setLanguage] = useState(\"en\");\n // const [excersiseSlugId, setExerciseSlugId] = useState();\n // const editor = user.data.user.rolesList.indexOf(\"admin\") > -1;\n const onScroll = () => {\n const scrollY = scrollRef.current.scrollLeft; //Don't get confused by what's scrolling - It's not the window\n const scrollTop = scrollRef.current.scrollTop;\n const maxScrollLeft =\n scrollRef.current.scrollWidth - scrollRef.current.clientWidth;\n if (!showArrow.left) {\n if (scrollY > 0) {\n setShowArrow((prev) => {\n return { ...prev, left: true };\n });\n }\n } else if (showArrow.left) {\n if (scrollY === 0) {\n setShowArrow((prev) => {\n return { ...prev, left: false };\n });\n }\n }\n if (showArrow.right) {\n if (Math.ceil(scrollY) >= maxScrollLeft - 2) {\n setShowArrow((prev) => {\n return { ...prev, right: false };\n });\n }\n } else if (!showArrow.right) {\n if (Math.ceil(scrollY) < maxScrollLeft - 2) {\n setShowArrow((prev) => {\n return { ...prev, right: true };\n });\n }\n }\n };\n const addCompletedExercise = () => {\n setProgressTrackId({\n ...(progressTrackId || {}),\n exercises: (progressTrackId?.exercises || []).concat(\n course[exerciseId].slug_id\n ),\n });\n };\n useEffect(() => {\n // Disable automatic scroll restoration\n if (\"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"manual\";\n }\n // Reset scroll position on page load\n window.onload = () => {\n setTimeout(() => {\n window.scrollTo(0, 0);\n }, 0);\n };\n // Clean up\n return () => {\n window.onload = null; // Remove the onload event handler when the component unmounts\n };\n }, []);\n useEffect(() => {\n if (localStorage.getItem(\"studentAuth\") || (user && user?.data?.token)) {\n return;\n } else {\n history.push(PATHS.LOGIN);\n }\n }, []);\n useEffect(() => {\n setExerciseId(parseInt(params.exerciseId));\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/courses/${courseId}/content/slug?lang=${language}`,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization:\n user.data?.token || localStorage.getItem(\"studentAuthToken\") || \"\",\n },\n })\n .then((res) => {\n setCourse(res?.data?.course?.course_content);\n setCourseTitle(res?.data?.course?.name);\n setAvailableLang(res?.data?.course?.lang_available);\n // setExerciseSlugId(res?.data?.course?.course_content[params.exerciseId]);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [courseId, language]);\n useEffect(() => {\n if (\n course[previousExerciseId]?.content_type !== \"exercise\" &&\n !progressTrackId?.exercises?.includes(course[previousExerciseId]?.slug_id)\n ) {\n // fixes #1105: https://github.com/navgurukul/bhanwari-devi/issues/1105\n // Manually add completed exercises (not assessments) as completed so don't make API\n // request in this case or when the exercise has already been marked as completed\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/progressTracking/${courseId}/completedContent`,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization:\n user.data?.token || localStorage.getItem(\"studentAuthToken\") || \"\",\n },\n })\n .then((res) => {\n setProgressTrackId(res.data);\n })\n .catch((err) => {});\n }\n setPreviousExerciseId(exerciseId);\n }, [exerciseId]);\n const LangDropDown = () => {\n return availableLang?.length === 1 ? (\n \n {Lang[availableLang[0]]}\n \n ) : (\n (\n \n )}\n onChange={(e) => {\n setLanguage(e.target.value);\n }}\n variant=\"standard\"\n >\n {availableLang?.map((lang) => {\n return (\n \n {Lang[lang]}\n \n );\n })}\n \n );\n };\n const Lang = languageMap;\n const previousClickHandler = () => {\n if (exerciseId > 0) {\n setSuccessfulExerciseCompletion(false);\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId: params.courseId,\n exerciseId: exerciseId - 1,\n pathwayId: params.pathwayId,\n })\n );\n setExerciseId(exerciseId - 1);\n // localStorage.setItem(`lastSelectedExercise_${params.courseId}`, exerciseId - 1);\n }\n };\n const nextClickHandler = () => {\n if (exerciseId < courseLength - 1) {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId: params.courseId,\n exerciseId: exerciseId + 1,\n pathwayId: params.pathwayId,\n })\n );\n } else {\n setSuccessfulExerciseCompletion(true);\n }\n if (\n course[exerciseId].content_type === \"exercise\" &&\n !progressTrackId?.exercises?.includes(course[exerciseId].slug_id)\n ) {\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/progressTracking/add/learningTrackStatus`,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization:\n user.data?.token || localStorage.getItem(\"studentAuthToken\") || \"\",\n },\n data: {\n pathway_id: params.pathwayId === \"c4caPathway\" ? 12 : params.pathwayId ,\n course_id: params.courseId,\n slug_id: course[exerciseId].slug_id,\n type: \"exercise\",\n lang: language,\n },\n }).then((res) => {\n addCompletedExercise();\n });\n addCompletedExercise();\n }\n setExerciseId(exerciseId + 1);\n };\n const nextArrowClickHandler = () => {\n if (exerciseId < courseLength - 1) {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId: params.courseId,\n exerciseId: exerciseId + 1,\n pathwayId: params.pathwayId,\n })\n );\n setExerciseId(exerciseId + 1);\n // localStorage.setItem(`lastSelectedExercise_${params.courseId}`, exerciseId + 1);\n }\n };\n const onChangeHandlerClick = () => {\n if (\n course[exerciseId].content_type === \"exercise\" &&\n !progressTrackId?.exercises?.includes(course[exerciseId].slug_id)\n ) {\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/exercises/${course[exerciseId].slug_id}/markcomplete`,\n headers: {\n \"version-code\": versionCode,\n accept: \"application/json\",\n Authorization:\n user.data?.token || localStorage.getItem(\"studentAuthToken\") || \"\",\n },\n params: {\n lang: language,\n type: course[exerciseId].content_type,\n },\n })\n .then((res) => {\n // add it here in case it gets overwritten as incomplete by a response from `/completedContent`\n // that comes in before the request marking it as complete is handled\n addCompletedExercise();\n })\n .catch((err) => {\n console.log(err);\n });\n // add it here so it gets marked as completed before response comes in\n addCompletedExercise();\n }\n };\n // to avoid duplication\n function languageSelectMenu() {\n const langMenu = availableLang.map((lang) => (\n {Lang[lang]}\n ));\n return availableLang.length === 1 ? (\n langMenu\n ) : (\n null}\n onChange={(e) => {\n setLanguage(e.target.value);\n }}\n variant=\"standard\"\n >\n {langMenu}\n \n );\n }\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const isActiveIpad = useMediaQuery(\"(max-width:1300px)\");\n return (\n <>\n \n \n
\n \n \n \n \n \n \n {/* \n {\n scrollRef.current.scrollBy({\n right: 0,\n left: -60,\n behavior: \"smooth\",\n });\n }}\n />\n \n \n
\n {\n scrollRef.current.scrollBy({\n right: 0,\n left: 60,\n behavior: \"smooth\",\n });\n }}\n />\n */}\n \n \n \n
\n
\n \n \n \n \n \n \n
\n {/* \n \n {course &&\n course?.map((exercise, index) => {\n return (\n <>\n {\n setExerciseId(index);\n }}\n >\n \n \n \n );\n })}\n
\n */}\n \n
\n \n {/* {editor && (\n \n \n \n \n \n \n \n Want to update the content?\n \n {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT_EDIT, {\n courseId: params.courseId,\n exerciseId: params.exerciseId,\n pathwayId: params.pathwayId,\n })\n );\n }}\n >\n Start Editing\n \n \n \n \n \n \n )} */}\n {successfulExerciseCompletion ? (\n \n ) : (\n // \n \n \n \n )}\n \n \n {/* }\n >\n Back\n \n }\n disabled={!(exerciseId < courseLength)}\n variant=\"text\"\n color=\"primary\"\n onClick={() => {\n nextClickHandler();\n onChangeHandlerClick();\n }}\n >\n Next\n */}\n }\n >\n Back\n \n }\n disabled={!(exerciseId < courseLength)}\n variant=\"text\"\n color=\"primary\"\n onClick={() => {\n nextClickHandler();\n onChangeHandlerClick();\n }}\n >\n Next\n \n \n \n \n );\n}\nexport default PathwayExercise;","import React from \"react\";\nimport { Box, Typography, Card, CardContent } from \"@mui/material\";\nfunction NoBatchEnroll() {\n return (\n <>\n \n \n \n \n Not seeing the batch to enroll?\n \n \n Usually, it takes one day for the batch to show here once a\n partner’s students are onboarded. Please go ahead and take a look\n at the course content in the meantime.\n \n \n \n \n \n );\n}\n\nexport default NoBatchEnroll;\n","import React, { useEffect, useState } from \"react\";\nimport { breakpoints } from \"../../theme/constant\";\nimport Modal from \"@mui/material/Modal\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Box, Typography, Button } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport axios from \"axios\";\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport FormControl from \"@mui/material/FormControl\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Select from \"@mui/material/Select\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport { METHODS } from \"../../services/api\";\nimport TextField from \"@mui/material/TextField\";\nimport useStyles from \"./styles\";\nimport { exec } from \"child_process\";\n\nconst style = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: 400,\n bgcolor: \"background.paper\",\n boxShadow: 24,\n p: 4,\n margin: \"3rem 0rem\",\n};\n\nfunction CustomModal({\n isFormModalOpen,\n setisFormModalOpen,\n setisFormFilled,\n user,\n}) {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles({ isActive });\n const [teacherDetails, setTeacherDetails] = useState({\n zone: \"\",\n school_id: \"\",\n school_name: \"\",\n teacher_name: \"\",\n teacher_id: \"\",\n class_of_teacher: \"\",\n phone_number: \"\",\n employee_type: \"\",\n });\n\n\n const ITEM_HEIGHT = 48;\n const ITEM_PADDING_TOP = 8;\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n };\n\n const classesOfTeacher = [\n \"Class 1\",\n \"Class 2\",\n \"Class 3\",\n \"Class 4\",\n \"Class 5\",\n ];\n\n const zoneArray = [\n \"Central\",\n \"Civil Lines\",\n \"CTSP\",\n \"Karol Bagh\",\n \"Keshavpuram\",\n \"Narela\",\n \"Rohini\",\n \"Nazafgarh\",\n \"South\",\n \"Sharda.North\",\n \"Sharda.South\",\n \"West\",\n ];\n\n const employeetype = [\n \"teacher\",\n \"principal\",\n \"mentor_teacher\",\n \"school_inspector\",\n \"clerical_staff\",\n ];\n\n const [teacherClass, setTeacherClass] = useState([]);\n const [errors, setErrors] = useState({});\n\n const handleChange = (event) => {\n const {\n target: { value },\n } = event;\n setTeacherClass(typeof value === \"string\" ? value.split(\",\") : value);\n };\n\n useEffect(() => {\n setTeacherDetails((prev) => ({\n ...prev,\n class_of_teacher: teacherClass.join(\",\"),\n }));\n }, [teacherClass]);\n\n const handleFormModalClose = () => {\n setisFormModalOpen(false);\n };\n\n const validateForm = () => {\n const newErrors = {};\n const containsNumbers = /\\d/;\n const containsOnlyNumbers = /^\\d+$/;\n\n if (!teacherDetails.zone) newErrors.zone = \"Zone is required.\";\n if (\n !teacherDetails.school_id &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.school_id = \"School ID is required.\";\n else if (\n teacherDetails.school_id &&\n !containsOnlyNumbers.test(teacherDetails.school_id)\n )\n newErrors.school_id = \"School ID should contain only digits.\";\n else if (\n teacherDetails.school_id &&\n (teacherDetails.school_id.toString().length < 7 ||\n teacherDetails.school_id.toString().length > 7)\n )\n newErrors.school_id = \"School ID must be of 7 digits only\";\n\n if (\n !teacherDetails.school_name &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.school_name = \"School Name is required.\";\n else if (containsNumbers.test(teacherDetails.school_name))\n newErrors.school_name = \"School Name should not contain numbers.\";\n\n // Validate fields based on employee type\n const validateEmployeeDetails = () => {\n if (!teacherDetails.teacher_name)\n newErrors.teacher_name = \"Teacher Name is required.\";\n else if (containsNumbers.test(teacherDetails.teacher_name))\n newErrors.teacher_name = \"Teacher Name should not contain numbers.\";\n\n if (\n !teacherDetails.teacher_id &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.teacher_id = \"Teacher ID is required.\";\n else if (\n teacherDetails.teacher_id &&\n !containsOnlyNumbers.test(teacherDetails.teacher_id)\n )\n newErrors.teacher_id = \"Teacher ID should contain only digits.\";\n else if (\n teacherDetails.teacher_id &&\n (teacherDetails.teacher_id.toString().length < 8 ||\n teacherDetails.teacher_id.toString().length > 8)\n )\n newErrors.teacher_id = \"Teacher ID must be of 8 digits only\";\n\n if (!teacherDetails.teacher_name)\n newErrors.teacher_name = \"Pricipal Name is required.\";\n else if (containsNumbers.test(teacherDetails.teacher_name))\n newErrors.teacher_name = \"Pricipal Name should not contain numbers.\";\n\n if (\n !teacherDetails.teacher_id &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.teacher_id = \"Pricipal ID is required.\";\n else if (\n teacherDetails.teacher_id &&\n !containsOnlyNumbers.test(teacherDetails.teacher_id)\n )\n newErrors.teacher_id = \"Pricipal ID should contain only digits.\";\n else if (\n teacherDetails.teacher_id &&\n (teacherDetails.teacher_id.toString().length < 8 ||\n teacherDetails.teacher_id.toString().length > 8)\n )\n newErrors.teacher_id = \"Pricipal ID must be of 8 digits only\";\n\n if (!teacherDetails.teacher_name)\n newErrors.teacher_name = \"Mentor Teacher Name is required.\";\n else if (containsNumbers.test(teacherDetails.teacher_name))\n newErrors.teacher_name =\n \"Mentor Teacher Name should not contain numbers.\";\n\n if (\n !teacherDetails.teacher_id &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.teacher_id = \"Mentor Teacher ID is required.\";\n else if (\n teacherDetails.teacher_id &&\n !containsOnlyNumbers.test(teacherDetails.teacher_id)\n )\n newErrors.teacher_id = \"Mentor Teacher ID should contain only digits.\";\n else if (\n teacherDetails.teacher_id &&\n (teacherDetails.teacher_id.toString().length < 8 ||\n teacherDetails.teacher_id.toString().length > 8)\n )\n newErrors.teacher_id = \"Mentor Teacher ID must be of 7 digits only\";\n\n if (!teacherDetails.teacher_name)\n newErrors.teacher_name = \"School Inspector Name is required.\";\n else if (containsNumbers.test(teacherDetails.teacher_name))\n newErrors.teacher_name =\n \"School Inspector Name should not contain numbers.\";\n\n if (\n !teacherDetails.teacher_id &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.teacher_id = \"School Inspector ID is required.\";\n else if (\n teacherDetails.teacher_id &&\n !containsOnlyNumbers.test(teacherDetails.teacher_id)\n )\n newErrors.teacher_id =\n \"School Inspector ID should contain only digits.\";\n else if (\n teacherDetails.teacher_id &&\n (teacherDetails.teacher_id.toString().length < 8 ||\n teacherDetails.teacher_id.toString().length > 8)\n )\n newErrors.teacher_id = \"School Inspector ID must be of 8 digits only\";\n\n if (!teacherDetails.teacher_name)\n newErrors.teacher_name = \"Employee Name is required.\";\n else if (containsNumbers.test(teacherDetails.teacher_name))\n newErrors.teacher_name = \"Employee Name should not contain numbers.\";\n\n if (\n !teacherDetails.teacher_id &&\n teacherDetails.employee_type !== \"clerical_staff\"\n )\n newErrors.teacher_id = \"Employee ID is required.\";\n else if (\n teacherDetails.teacher_id &&\n !containsOnlyNumbers.test(teacherDetails.teacher_id)\n )\n newErrors.teacher_id = \"Employee ID should contain only digits.\";\n else if (\n teacherDetails.teacher_id &&\n (teacherDetails.teacher_id.toString().length < 8 ||\n teacherDetails.teacher_id.toString().length > 8)\n )\n newErrors.teacher_id = \"EmployeeID must be of 8 digits only\";\n };\n\n if (teacherDetails.employee_type === \"teacher\") {\n validateEmployeeDetails();\n if (!teacherDetails.class_of_teacher)\n newErrors.class_of_teacher = \"Class of Teacher is required.\";\n } else if (teacherDetails.employee_type === \"principal\") {\n validateEmployeeDetails();\n } else if (teacherDetails.employee_type === \"mentor_teacher\") {\n validateEmployeeDetails();\n } else if (teacherDetails.employee_type === \"school_inspector\") {\n validateEmployeeDetails();\n } else if (teacherDetails.employee_type === \"clerical_staff\") {\n validateEmployeeDetails();\n }\n if (!teacherDetails.phone_number)\n newErrors.phone_number = \"Phone number is required.\";\n else if (!containsOnlyNumbers.test(teacherDetails.phone_number))\n newErrors.phone_number = \"Phone number should contain only digits.\";\n else if (teacherDetails.phone_number.toString().length !== 10)\n newErrors.phone_number = \"Phone number must be of 10 digits only\";\n\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n };\n\n const handleSubmitteacherDetails = () => {\n if (validateForm()) {\n const dataToSend = { ...teacherDetails };\n\n if (\n teacherDetails.employee_type !== \"teacher\" &&\n teacherDetails.employee_type !== \"mentor_teacher\"\n ) {\n delete dataToSend.class_of_teacher;\n }\n\n if (teacherDetails.employee_type === \"clerical_staff\") {\n delete dataToSend.school_id;\n delete dataToSend.school_name;\n } else {\n if (dataToSend.school_id && isNaN(Number(dataToSend.school_id))) {\n delete dataToSend.school_id;\n }\n if (!dataToSend.school_name || dataToSend.school_name.trim() === \"\") {\n delete dataToSend.school_name;\n }\n }\n\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/teacher/create`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token,\n },\n data: dataToSend,\n })\n .then((res) => {\n handleFormModalClose();\n setisFormFilled(true);\n setTeacherDetails({\n zone: \"\",\n school_id: \"\",\n school_name: \"\",\n teacher_name: \"\",\n teacher_id: \"\",\n class_of_teacher: \"\",\n phone_number: \"\",\n employee_type: \"\",\n });\n window.location.reload();\n })\n .catch((err) => console.log(err));\n }\n };\n\n const renderError = (field) =>\n errors[field] && {errors[field]};\n\n return (\n \n \n \n \n Employee Details\n \n \n \n\n \n \n \n Select Employee Type\n \n {\n setTeacherDetails({\n zone: \"\",\n school_id: \"\",\n school_name: \"\",\n teacher_name: \"\",\n teacher_id: \"\",\n class_of_teacher: \"\",\n phone_number: \"\",\n employee_type: e.target.value,\n });\n setTeacherClass([]);\n setErrors({});\n }}\n >\n {employeetype.map((name) => (\n \n \n \n ))}\n \n \n\n {teacherDetails.employee_type === \"principal\" && (\n <>\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_name: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_name\")}\n\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_id: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_id\")}\n \n )}\n\n {teacherDetails.employee_type === \"teacher\" && (\n <>\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_name: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_name\")}\n\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_id: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_id\")}\n\n \n Select Class\n }\n renderValue={(selected) => selected.join(\", \")}\n MenuProps={MenuProps}\n >\n {classesOfTeacher.map((name) => (\n \n -1} />\n \n \n ))}\n \n \n\n {renderError(\"class_of_teacher\")}\n \n )}\n\n {teacherDetails.employee_type === \"mentor_teacher\" && (\n <>\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_name: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_name\")}\n\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_id: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_id\")}\n\n \n Select Class\n }\n renderValue={(selected) => selected.join(\", \")}\n MenuProps={MenuProps}\n >\n {classesOfTeacher.map((name) => (\n \n -1} />\n \n \n ))}\n \n \n\n {renderError(\"class_of_teacher\")}\n \n )}\n {teacherDetails.employee_type === \"school_inspector\" && (\n <>\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_name: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_name\")}\n\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_id: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_id\")}\n \n )}\n\n {teacherDetails.employee_type === \"clerical_staff\" && (\n <>\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_name: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_name\")}\n\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n teacher_id: e.target.value,\n }));\n }}\n />\n {renderError(\"teacher_id\")}\n \n )}\n\n \n Select Zone\n {\n setTeacherDetails((prev) => ({\n ...prev,\n zone: e.target.value,\n }));\n }}\n >\n {zoneArray.map((name) => (\n \n \n \n ))}\n \n \n {renderError(\"zone\")}\n\n {teacherDetails.employee_type !== \"clerical_staff\" && (\n <>\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n school_id: e.target.value,\n }));\n }}\n />\n {renderError(\"school_id\")}\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n school_name: e.target.value,\n }));\n }}\n />\n {renderError(\"school_name\")}\n \n )}\n {\n e.persist();\n setTeacherDetails((prev) => ({\n ...prev,\n phone_number: e.target.value,\n }));\n }}\n />\n {renderError(\"phone_number\")}\n \n \n Submit Details\n \n \n \n );\n}\nexport default CustomModal;\n","import React, { useState, useEffect } from 'react';\nimport {\n Dialog, DialogTitle, IconButton, DialogContent,\n Typography, DialogActions, Button, Radio, RadioGroup,\n FormControlLabel, FormControl, FormLabel, Divider, Box,\n CircularProgress, Snackbar, Alert\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { useHistory } from 'react-router-dom';\nimport axios from 'axios';\nimport { useSelector } from \"react-redux\";\nimport PropTypes from 'prop-types';\nimport { METHODS } from \"../../services/api\";\nimport { PATHS, interpolatePath } from \"../../constant\";\n\n\nconst PreQuiz = ({ open, handleClose, courseId, courseName, courseData, pathwayId }) => {\n const user = useSelector(({ User }) => User);\n const [courseContent, setCourseContent] = useState([]);\n const [selectedAnswers, setSelectedAnswers] = useState({});\n const [slugId, setSlugId] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [openSnackbar, setOpenSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n const [snackbarSeverity, setSnackbarSeverity] = useState('success');\n const history = useHistory();\n useEffect(() => {\n const formSubmitted = localStorage.getItem(`preQuizSubmitted_${courseId}`);\n if (formSubmitted) {\n history.push(interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId,\n exerciseId: 0,\n pathwayId,\n }));\n }\n }, [courseId, history, pathwayId]);\n\n\n\n useEffect(() => {\n if (!courseId) return;\n axios({\n method: 'GET',\n url: `${process.env.REACT_APP_MERAKI_URL}/courses/${courseId}/prequiz`,\n headers: {\n accept: \"application/json\",\n Authorization: user?.data?.token || localStorage.getItem(\"studentAuthToken\"),\n },\n })\n .then((response) => {\n console.log('Fetched Data:', response.data);\n\n if (response.data.course.course_content) {\n setCourseContent(response.data.course.course_content);\n setSlugId(response.data.course.course_content[0]?.slug_id);\n } else {\n console.error('Unexpected data structure:', response.data);\n setError('Unexpected data structure.');\n }\n\n setLoading(false);\n })\n .catch((err) => {\n console.error('API call failed:', err);\n setError('Failed to fetch questions.');\n setLoading(false);\n });\n }, [courseId]);\n\n const handleChange = (event, questionText) => {\n const selectedOptionId = parseInt(event.target.value, 10);\n setSelectedAnswers(prevState => ({\n ...prevState,\n [questionText]: selectedOptionId,\n }));\n };\n\n\n\n const handleSubmit = async () => {\n const token = user?.data?.token || localStorage.getItem(\"studentAuthToken\");\n\n const resultsArray = courseContent\n .filter(item => item && item.content_type === 'prequiz')\n .map(item => {\n const selectedOptionId = Array.isArray(selectedAnswers[item.content[0]?.value])\n ? selectedAnswers[item.content[0]?.value]\n : [selectedAnswers[item.content[0]?.value]];\n\n const correctAnswerIds = Array.isArray(item.content[2]?.correct_options_value)\n ? item.content[2].correct_options_value.map(option => option.value)\n : [];\n\n const isCorrect = selectedOptionId[0] === correctAnswerIds[0];\n const status = isCorrect ? 'Pass' : 'Fail';\n const language = item.lang_available ? item.lang_available[0] : 'en';\n const courseId = item.course_id ? Number(item.course_id) : 0;\n const slugId = item.slug_id ? Number(item.slug_id) : 0;\n\n if (selectedOptionId.length > 0) {\n return {\n slug_id: slugId,\n course_id: courseId,\n selected_option: selectedOptionId,\n status: status,\n lang: language,\n };\n }\n return null;\n }).filter(Boolean);\n\n if (resultsArray.length > 0) {\n console.log('Payload being sent:', resultsArray);\n\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/assessment/slug/complete`,\n headers: {\n accept: \"application/json\",\n Authorization: token,\n },\n data: resultsArray,\n })\n .then((res) => {\n console.log('API call successful', res);\n setSnackbarMessage('Form submitted successfully!');\n setSnackbarSeverity('success');\n setOpenSnackbar(true);\n\n localStorage.setItem(`preQuizSubmitted_${courseId}`, true);\n\n history.push(interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId,\n exerciseId: 0,\n pathwayId,\n }));\n })\n .catch((err) => {\n console.error('API call failed', err);\n setSnackbarMessage(\"Please select every question's answer\");\n setSnackbarSeverity('error');\n setOpenSnackbar(true);\n });\n } else {\n setSnackbarMessage('No questions answered.');\n setSnackbarSeverity('warning');\n setOpenSnackbar(true);\n }\n console.log('Prepared Result:', resultsArray);\n };\n\n const handleCloseSnackbar = () => {\n setOpenSnackbar(false);\n };\n\n const handleDialogClose = (event, reason) => {\n if (reason !== 'backdropClick' && reason !== 'escapeKeyDown') {\n handleClose();\n }\n };\n\n return (\n \n \n {courseName}\n \n theme.palette.grey[500],\n }}\n >\n \n \n \n \n \n \n Welcome to the Pre-Quiz\n \n \n \n 1. This quiz is to test your basic proficiency.\n \n \n 2. It consists of multiple choice questions.\n \n \n 3. It is mandatory to complete the pre-quiz to access course material.\n \n \n {loading ? (\n \n ) : error ? (\n {error}\n ) : (\n \n {courseContent.map((item, index) => (\n
\n {item.content_type === 'prequiz' && (\n <>\n 0 ? \"48px\" : \"0px\",\n fontFamily: \"Noto Sans\",\n lineHeight: \"170%\",\n fontSize: \"18px\",\n color: \"Black\"\n }}\n >\n {index + 1}. {item.content[0].value}\n \n handleChange(event, item.content[0].value)}\n >\n {item.content[1].value.map((option, idx) => (\n }\n label={option.value}\n />\n ))}\n \n \n )}\n
\n ))}\n
\n )}\n \n \n \n \n \n
\n \n \n \n {snackbarMessage}\n \n \n \n );\n};\n\nexport default PreQuiz;\n","import React, { useState } from \"react\";\nimport {\n Box,\n Typography,\n Card,\n CardContent,\n CardActions,\n LinearProgress,\n Grid,\n} from \"@mui/material\";\nimport { useHistory } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport useStyles from \"./styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport PreQuiz from \"./PreQuiz\"; \n\nconst McDigitalCourse = ({\n pathwayCourseData,\n completedPortion,\n pathwayId,\n courseData\n}) => {\n const [selectedCourse, setSelectedCourse] = useState(null);\n const [courseName, setCourseName] = useState(''); \n const [quizOpen, setQuizOpen] = useState(false);\n const history = useHistory();\n const isActive = useMediaQuery(\"(max-width:600px)\");\n const classes = useStyles({ isActive });\n const handleCourseClick = (course) => {\n if (course.isPreQuizCompleted) { //condition for isPreQuizCompleted===\"false\"\n setSelectedCourse(course);\n setCourseName(course.name);\n setQuizOpen(true);\n } else {\n history.push(\n interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n courseId: course.id,\n exerciseId: 0,\n pathwayId: pathwayId,\n })\n );\n }\n };\n \n \n \n const handleClose = () => {\n setQuizOpen(false);\n };\n\n return (\n \n \n Mandatory Courses\n \n \n {pathwayCourseData.length > 0 ? (\n pathwayCourseData.map((item, index) =>\n item.isMandatory === \"true\" ? (\n \n handleCourseClick(item)}\n >\n \n \n
\n \n {index + 1}\n \n\n \n {item.name}\n \n
\n \n \n \n \n \n
\n ) : null\n )\n ) : (\n No mandatory courses available.\n )}\n \n\n \n Optional Courses\n \n\n \n {pathwayCourseData.length > 0 ? (\n pathwayCourseData.map((item, index) =>\n item.isMandatory === \"false\" ? (\n \n handleCourseClick(item)}\n >\n \n \n
\n \n {index + 1}\n \n\n \n {item.name}\n \n
\n \n \n \n \n \n
\n ) : null\n )\n ) : (\n No optional courses available.\n )}\n \n\n \n \n
\n );\n};\n\nexport default McDigitalCourse;\n","import * as React from \"react\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport { TextField, Typography } from \"@mui/material\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useStyles from \"./styles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useSelector } from \"react-redux\";\nimport AlertDialog from \"./AlertDialog\";\nimport { Box } from \"@mui/system\";\nimport { format } from \"../../common/date\";\nexport default function CheckMoreBatches(props) {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const {\n open,\n handleUpcomingBatchesClickOpen,\n handleUpcomingBatchesClickClose,\n } = props;\n\n const { upcomingBatchesData } = props;\n const user = useSelector(({ User }) => User);\n const [openDialog, setOpenDialog] = React.useState(false);\n const [AlertData, setAlertData] = React.useState({});\n const handelEnrollment = () => {\n setOpenDialog(true);\n };\n\n const close = () => {\n setOpenDialog(false);\n };\n return (\n <>\n \n {upcomingBatchesData?.length > 1 ? (\n \n \n More Batches\n \n {upcomingBatchesData?.slice(1, 3).map((item) => (\n \n {\" \"}\n \n {item.title}\n \n \n \n {format(item.start_time, \"dd MMM yy\")} -{\" \"}\n {format(item.last_class_date, \"dd MMM yy\")}\n \n {\n handelEnrollment(item.id);\n setAlertData({\n title: item.title,\n start_time: item.start_time,\n end_time: item.end_batch_time,\n id: item.id,\n });\n }}\n variant=\"contained\">\n Enroll Batch\n \n \n ))}\n \n \n ) : (\n \n \n \n It’s a void out here. Unfortunately, we only have one batch\n running at the moment.\n \n \n )}\n \n \n );\n}\n","import React from \"react\";\nimport useStyles from \"./styles\";\nimport { Container, Typography } from \"@mui/material\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { format } from \"../../common/date\";\nimport { CardContent, Card, Button } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport AlertDialog from \"./AlertDialog\";\nimport { useSelector } from \"react-redux\";\nimport CheckMoreBatches from \"./CheckMoreBatches\";\nimport { useHistory } from \"react-router-dom\";\n\nconst PathwayCourseBatchEnroll1 = ({ upcomingBatchesData }) => {\n const history = useHistory();\n const [open, setOpen] = React.useState(false);\n const [upcomingBatchesOpen, setUpcomingBatchesOpen] = React.useState(false);\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n\n const handleClickOpen = () => {\n if (user?.data?.token) {\n setOpen(!open);\n } else {\n history.push(interpolatePath(PATHS.LOGIN));\n }\n };\n\n const close = () => {\n setOpen(false);\n };\n const handleUpcomingBatchesClickOpen = () => {\n setUpcomingBatchesOpen(true);\n };\n const handleUpcomingBatchesClickClose = () => {\n setUpcomingBatchesOpen(false);\n };\n\n const batch = upcomingBatchesData[0];\n\n return batch ? (\n <>\n \n \n \n \n \n {batch?.title}\n \n \n \n From {format(batch?.start_time, \"dd MMM yy\")} -{\" \"}\n {format(batch?.last_class_date, \"dd MMM yy\")}\n \n \n \n Access to live classes\n \n \n \n \n Can’t start on {format(batch?.start_time, \"dd MMM yy\")}\n {\" ? \"}\n \n {\" \"}  \n Check out our other batches\n \n \n \n \n \n \n \n \n ) : (\n \"\"\n );\n};\nexport default PathwayCourseBatchEnroll1;\n","import React, { useEffect } from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport Chip from \"@mui/material/Chip\";\nimport CircleIcon from \"@mui/icons-material/Circle\";\nimport {\n Container,\n Box,\n Grid,\n Card,\n Stack,\n Button,\n CardContent,\n Typography,\n} from \"@mui/material\";\nimport { interpolatePath, PATHS } from \"../../../constant\";\nimport { format } from \"../../../common/date\";\nimport { getCourseContent } from \"../../Course/redux/api\";\nimport { useSelector } from \"react-redux\";\nimport { versionCode } from \"../../../constant\";\nimport { Link, useHistory } from \"react-router-dom\";\n\nimport useStyles from \"../styles\";\nconst PathwayCards = ({ userEnrolledClasses, data }) => {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const history = useHistory();\n const language = {\n hi: \"Hindi\",\n en: \"English\",\n mr: \"Marathi\",\n };\n\n const sliceNumber = data?.code === \"ACB\" ? 1 : 3;\n\n function UpcomingClassCardComponent({ item }) {\n const classes = useStyles();\n const isActive = useMediaQuery(\n \"(max-width:\" + breakpoints.values.sm + \"px)\"\n );\n const user = useSelector(({ User }) => User);\n\n const [classIndex, setClassIndex] = React.useState(0);\n useEffect(() => {\n const courseId = item.course_id;\n getCourseContent({ courseId, versionCode, user }).then((res) => {\n const index = res.data.course.course_content.findIndex(\n (ex) => ex.id === item.id\n );\n\n setClassIndex(index);\n });\n }, []);\n\n return (\n \n \n {\n // history.push(\n // interpolatePath(PATHS.PATHWAY_COURSE_CONTENT, {\n // courseId: item.course_id,\n // exerciseId: classIndex,\n // pathwayId: item.pathway_id,\n // })\n // );\n // }}\n style={\n item.pathway_id === 7\n ? {\n // minWidth: isActive ? \"95%\" : \"350\",\n marginRight: isActive ? \"500px\" : \"130px\",\n marginLeft: isActive ? \"5px\" : \"15px\",\n }\n : {\n minWidth: isActive ? \"95%\" : \"350\",\n marginRight: isActive ? \"500px\" : \"40px\",\n marginLeft: isActive ? \"5px\" : \"15px\",\n }\n }\n >\n \n\n \n \n \n {item.sub_title || item.title}\n \n \n \n \n \n \n {format(item.start_time, \"dd MMM yy\")}\n \n \n \n \n \n {language[item.lang]}\n \n \n \n \n \n \n \n );\n }\n\n return (\n <>\n \n \n Upcoming Classes\n \n\n \n {userEnrolledClasses?.slice(0, sliceNumber).map((item) => {\n return (\n <>\n \n \n );\n })}\n \n \n \n );\n};\n\nexport default PathwayCards;\n","import { createTheme } from \"@mui/material/styles\";\nimport { breakpoints } from \"./constant\";\nlet theme = createTheme();\nconst shadows = theme.shadows;\nshadows[2] =\n \"0px 1px 2px rgba(0, 0, 0, 0.06), 0px 2px 1px rgba(0, 0, 0, 0.04), 0px 1px 5px rgba(0, 0, 0, 0.08)\";\n// Removing shadow[9], use shadow[8] for hadder scrollup\nshadows[8] =\n \"0px 4px 4px rgba(0, 0, 0, 0.06), 0px 8px 12px rgba(0, 0, 0, 0.04), 0px 4px 24px rgba(0, 0, 0, 0.08)\";\nshadows[16] =\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\";\nshadows[24] =\n \"0px 24px 38px rgba(0, 0, 0, 0.06), 0px 9px 46px rgba(0, 0, 0, 0.04), 0px 11px 15px rgba(0, 0, 0, 0.08)\";\n\ntheme = createTheme(theme, {\n breakpoints,\n palette: {\n mode: \"light\",\n default: {\n // main: \"#FFFFFF\",\n // contrastText: \"#000000\",\n light: \"#0066FF\",\n main: \"#fff\",\n // dark: will be calculated from palette.secondary.main,\n contrastText: \"#FFCC00\",\n },\n primary: {\n //Green\n main: \"#48A145\",\n light: \"#E9F5E9\",\n dark: \"#3A8137\",\n lighter: \"#FAFAFA\",\n },\n secondary: {\n //Violet\n main: \"#FFCC00\",\n light: \"#FFF5CC\",\n dark: \"#CCA300\",\n contrastText: \"#2E2E2E\",\n },\n error: {\n //Red\n main: \"#F44336\",\n light: \"#FFE5E3\",\n dark: \"#C3362B\",\n },\n warning: {\n //Yellow\n main: \"#FFC107\",\n contrastText: \"#2E2E2E\",\n light: \"#FFF3CD\",\n dark: \"#CC9A06\",\n },\n info: {\n //Blue\n main: \"#2196F3\",\n dark: \"#1A78C2\",\n light: \"#D3EAFD\",\n },\n success: {\n //Green as primary\n main: \"#48A145\",\n light: \"#E9F5E9\",\n dark: \"#3A8137\",\n },\n grey: {\n main: \"#BDBDBD\",\n // main: \"rgba(0, 0, 0, 0.12)\",\n },\n text: {\n primary: \"#2E2E2E\",\n secondary: \"#6D6D6D\",\n disabled: \"#949494\",\n hint: \"#949494\",\n },\n background: {\n default: \"#FFFFFF\",\n paper: \"#FFFFFF\",\n },\n dark: {\n main: \"#2E2E2E\",\n contrastText: \"#FFFFFF\",\n },\n divider: \"#DEDEDE\",\n },\n typography: {\n fontFamily: \"Josefin Sans\",\n fontSize: 18,\n h1: {\n letterSpacing: \"-1px\",\n fontWeight: 600,\n fontSize: \"6rem\",\n lineHeight: \"130%\",\n fontFamily: \"Josefin Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"4rem\",\n },\n },\n h2: {\n letterSpacing: \"-0.6px\",\n fontSize: \"4.5rem\",\n lineHeight: \"130%\",\n fontFamily: \"Josefin Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"3rem\",\n },\n fontWeight: 600,\n },\n h3: {\n fontSize: \"3.5rem\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"2.5rem\",\n },\n fontWeight: 600,\n fontFamily: \"Josefin Sans\",\n lineHeight: \"130%\",\n },\n h4: {\n fontWeight: 600,\n fontSize: \"2.625rem\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \" 2rem\",\n },\n fontFamily: \"Josefin Sans\",\n lineHeight: \"130%\",\n },\n h5: {\n fontWeight: 600,\n fontSize: \"2rem\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \" 1.5rem\",\n },\n lineHeight: \"150%\",\n fontFamily: \"Josefin Sans\",\n },\n h6: {\n fontSize: \"1.5rem\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \" 1.25rem\",\n },\n lineHeight: \"150%\",\n fontWeight: 600,\n fontFamily: \"Josefin Sans\",\n },\n subtitle1: {\n fontSize: \"1.125rem\",\n fontFamily: \"Noto Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"1rem\",\n },\n lineHeight: \"170%\",\n fontWeight: 700,\n },\n subtitle2: {\n fontSize: \"0.875rem\",\n fontFamily: \"Noto Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"0.875rem\",\n },\n fontWeight: 700,\n lineHeight: \"170%\",\n },\n body1: {\n fontSize: \"1.125rem\",\n fontFamily: \"Noto Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"1rem\",\n },\n lineHeight: \"170%\",\n fontWeight: 400,\n },\n body2: {\n fontSize: \"0.875rem\", //1rem\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"0.875rem\",\n },\n fontFamily: \"Noto Sans \",\n lineHeight: \"170%\",\n fontWeight: 400,\n },\n body3: {\n fontSize: \"0.875rem\", //0.875rem\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"0.875rem\",\n },\n fontFamily: \"Noto Sans \",\n lineHeight: \"170%\",\n fontWeight: 400,\n },\n button: {\n fontSize: \"1.125rem\",\n fontFamily: \"Noto Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"1rem\",\n },\n lineHeight: \"170%\",\n fontWeight: 700,\n textTransform: \"none\",\n },\n caption: {\n fontSize: \"0.75rem\",\n fontFamily: \"Noto Sans\",\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"0.75rem\",\n },\n lineHeight: \"150%\",\n fontWeight: 400,\n },\n overline: {\n fontFamily: \"Noto Sans\",\n fontSize: \"0.75rem\",\n lineHeight: \"150%\",\n fontWeight: 400,\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"0.75rem\",\n },\n },\n code: {\n fontFamily: \"IBM Plex Mono\",\n fontSize: \"1.125rem\",\n lineHeight: \"170%\",\n fontWeight: 400,\n [theme.breakpoints.down(\"sm\")]: {\n fontSize: \"1rem\",\n },\n },\n },\n shadows,\n});\ntheme.components = {\n MuiCardMedia: {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: { width: 64 },\n },\n },\n MuiPaper: {\n styleOverrides: {\n root: {\n borderRadius: \"8px\",\n },\n },\n },\n MuiButton: {\n styleOverrides: {\n root: {\n borderRadius: \"8px\",\n height: \"48px\",\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n height: \"48px\",\n // margin: \"10px 16px 10px 16px\",\n \"&:hover\": {\n backgroundColor: \"#E9F5E9\",\n borderRadius: \"8px\",\n },\n },\n },\n },\n MuiTableRow: {\n styleOverrides: {\n root: {\n // backgroundColor: theme.palette.divider,\n backgroundColor: \"#F5F5F5\",\n \"&:hover\": {\n backgroundColor: \"#F5F5F5\",\n boxShadow: \"0px 0px 0px\",\n },\n },\n },\n },\n // MuiTextareaAutosize: {\n // styleOverrides: {\n // root: {\n // width: 529,\n // margin: \"10px 0px\",\n // padding: \"20px 10px\",\n // border: \"1px solid #BDBDBD\",\n // borderRadius: \"4px\",\n // fontSize: \"1.125rem\",\n // color: \"#2E2E2E\",\n // fontFamily: \"Noto Sans\",\n // resize: \"none\",\n // outline: \"none\",\n // \"&:focus\": {\n // border: \"2px solid #48A145 !important\",\n // },\n // },\n // },\n // },\n};\nexport default theme;\n","import React from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\n// https://v5.reactrouter.com/web/example/query-parameters\nexport const useQuery = () => {\n\n\n const { search } = useLocation();\n\n\n return React.useMemo(() => new URLSearchParams(search), [search]);\n};\n","const en = {};\nen.LEARN = \"Learn\";\nen.ABOUT = \"About\";\nen.GET_INVOLVED = \"Get Involved\";\nen.OUR_STORY = \"Our Story\";\nen.DASHBOARD = \"Dashboard\";\nen.STATEPARTNER = \"State Partners\";\nen.SWITCH_VIEWS = \"Switch Views\";\nen.SWITCH_TO_VIEW = \"Switch to %1 View\";\nen.STUDENT = \"Student\";\nen.VOLUNTEER = \"Volunteer\";\nen.ADMIN = \"Admin\";\nen.PARTNER = \"Partner\";\nen.STUDENTS = \"Students\";\nen.VOLUNTEERS = \"Tutors\";\nen.PARTNERS = \"Partners\";\nen.DONATE = \"Donate\";\nen.VOLUNTEER_WITH_US = \"Volunteer with Us\";\nen.MERAKI_TEAM = \"Meraki Team\";\nen.MENTOR = \"Mentor\";\nen.SCRATCH = 'Scratch';\nen.NAVGURUKUL_ADMISSION = \"Navgurukul Admission\";\nen.OPPORTUNITIES = \"Opportunities\";\nen.CLASSES = \"Classes\";\nen.SEARCH_FOR_COURSES = \"Search for Courses...\";\nen.CAREERS = \"Careers\";\nen.PROFILE = \"Profile\";\nen.LOGOUT = \"Logout\";\nen.TUTOR = \"Tutor\";\nen.CERTIFICATE_COMPLETION_WARNING =\n \"Please complete all the courses to unlock %1 certificate\";\n en.PEEPUL_CERTIFICATE_COMPLETE_WARNING =\n \"Please complete at least 80% of course to unlock %1 certificate\";\n\nexport default en;\n","import {\n useLanguageConstants,\n getTranslationKey,\n} from \"../../../common/language\";\n\nfunction Message({ constantKey, children, args = [] }) {\n const { language, MSG } = useLanguageConstants();\n const key = constantKey || getTranslationKey(children);\n\n if (key) {\n if (!MSG[key]) {\n console.warn(\n \"Message key\",\n key,\n \"does not exist. Using\",\n key,\n \". Please update the message constants.\"\n );\n return key;\n } else {\n return MSG[key]?.split(/(%\\d+)/g).map((part) => {\n if (/^%\\d+/.test(part) && parseInt(part.substring(1)) <= args.length) {\n return args[parseInt(part.substring(1)) - 1];\n } else {\n return part;\n }\n });\n }\n } else {\n return children;\n }\n}\n\nexport default Message;\n","import { useContext } from \"react\";\nimport { LanguageProvider } from \"./context\";\nimport { useQuery } from \"./url\";\nimport { lang } from \"../constant\";\nimport en from \"../msg/en\";\n\nexport const useLanguage = () => {\n const hl = useQuery().get(\"hl\") || localStorage.getItem(\"hl\");\n const isLanguageSupported = Object.keys(lang).includes(hl);\n if (isLanguageSupported) {\n localStorage.setItem(\"hl\", hl);\n return hl;\n } else {\n return \"en\"; // default to English\n }\n};\n\nexport const useLanguageConstants = () => {\n return useContext(LanguageProvider);\n};\n\nexport const getTranslationKey = (englishText) => {\n return Object.keys(en).find((key) => en[key] === englishText);\n};\n","import React from \"react\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport theme from \"../../theme/theme\";\nimport Message from \"../../components/common/Message/index\";\n\nconst CustomSnackbar = ({ openSnackbar, handleSnackbar, pathwayName }) => {\n\n return (\n \n ) : (\n \n )\n }\n onClose={handleSnackbar}\n ContentProps={{\n sx: {\n background: theme.palette.secondary.contrastText,\n fontWeight: \"400\",\n fontSize: theme.typography.fontSize,\n width: \"328px\",\n textAlign: \"left\",\n },\n }}\n />\n );\n};\n\nexport default CustomSnackbar;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport { format } from \"../../common/date\";\nimport { useSelector } from \"react-redux\";\nimport ClassJoinTimerButton from \"../Class/ClassJoinTimerButton\";\nimport {\n Typography,\n Grid,\n Button,\n Container,\n Card,\n CardContent,\n Chip,\n CardActions,\n Box,\n Stack,\n} from \"@mui/material\";\nimport AccessTimeIcon from \"@mui/icons-material/AccessTime\";\nimport DateRangeIcon from \"@mui/icons-material/DateRange\";\nimport ArrowForwardIcon from \"@mui/icons-material/ArrowForward\";\nimport useStyles from \"./styles\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport DoubtClassCard from \"./DoubtClassCard\";\nimport { Link } from \"react-router-dom\";\n\nfunction AmazonBootcampBatch({ enrolledBatches }) {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles();\n const [enrollClasses, setEnrollClasses] = useState([]);\n const [doubtclasses, setDoubtclasses] = useState([]);\n const user = useSelector(({ User }) => User);\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/7/ACBEnrolledBatches`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setEnrollClasses(res.data);\n })\n .catch((err) => {});\n }, []);\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/doubtclasses/7`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n setDoubtclasses(res.data);\n })\n .catch((err) => {});\n }, []);\n\n const enrolledBatcheClasses = enrollClasses.filter(\n (item) => item.type === \"batch\"\n );\n\n console.log(enrollClasses)\n\n return (\n <>\n \n \n \n {enrolledBatches}\n \n \n \n \n \n {/* \n \n */}\n \n \n \n Live Classes\n \n\n \n \n {enrolledBatcheClasses.map((item, index) => (\n \n {index === 0 && (\n \n )}\n \n \n \n \n \n \n \n \n {item.title}\n \n \n \n \n \n \n \n {format(item.start_time, \"dd MMM yy\")}\n \n \n \n \n \n {/* 2 PM */}\n {format(item.start_time, \"hh:mm aaa\")}\n \n \n \n \n \n \n \n \n \n ))}\n \n \n\n {/* {doubtclasses.length > 0 && (\n \n Doubt Class\n \n )}\n\n \n {doubtclasses.length > 0 &&\n doubtclasses?.map((item, index) => (\n \n ))}\n */}\n \n \n );\n}\n\nexport default AmazonBootcampBatch;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport NoBatchEnroll from \"../../BatchClassComponents/NoBatchEnroll\";\nimport { actions as upcomingBatchesActions } from \"../redux/action\";\nimport { actions as upcomingClassActions } from \"../redux/action\";\n\nimport { Container, Grid, Typography } from \"@mui/material\";\nimport useStyles from \"../styles\";\nimport PathwayCourseBatchEnroll1 from \"../../BatchClassComponents/PathwayCourseBatchEnroll1\";\nimport ExternalLink from \"../../common/ExternalLink\";\nimport AmazonBootcampBatch from \"../../BatchClassComponents/AmazonBootcampBatch\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../../services/api\";\nimport { versionCode } from \"../../../constant\";\nimport DOMPurify from \"dompurify\";\nimport get from \"lodash/get\";\n\nfunction UnsafeHTML(props) {\n const { html, Container, ...otherProps } = props;\n const sanitizedHTML = DOMPurify.sanitize(html);\n return (\n \n );\n}\n\nfunction AmazonCodingProgrammer({ pathwayId, pathwayCourseData }) {\n const dispatch = useDispatch();\n const user = useSelector(({ User }) => User);\n const { data } = useSelector((state) => state.Pathways);\n const pathway = useSelector((state) => state);\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n const upcomingBatchesData = useSelector((state) => {\n return state.Pathways?.upcomingBatches?.data;\n });\n\n // Filter batches with less than the dynamic max_enrolment value or no limit if null\n const filteredUpcomingBatches = upcomingBatchesData\n ?.filter((batch) => {\n const maxEnrolment = batch.max_enrolment;\n return maxEnrolment === null || batch.registrations.length < maxEnrolment;\n })\n .slice(0, 1);\n\n\n const enrolledBatches = useSelector((state) => {\n if (state?.Pathways?.enrolledBatches?.data?.length > 0) {\n return state?.Pathways?.enrolledBatches?.data;\n } else {\n return null;\n }\n });\n\n useEffect(() => {\n if (user?.data?.token && enrolledBatches?.length > 0) {\n dispatch(\n upcomingClassActions.getupcomingEnrolledClasses({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n } else {\n if (user?.data?.token) {\n dispatch(\n upcomingBatchesActions.getUpcomingBatches({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n }\n }\n }, [enrolledBatches]);\n\n const userEnrolledClasses = useSelector((state) => {\n return state.Pathways?.upcomingEnrolledClasses?.data;\n });\n\n return (\n \n {enrolledBatches ? (\n \n ) : (\n \n \n \n \n Learning Track\n \n \n Foundations of Data Structures and Algorithms\n \n \n {pathwayCourseData?.description}\n \n\n {pathwayCourseData?.summary.map((content, index) => {\n if (content.component === \"header\") {\n return (\n \n );\n } else {\n return (\n \n );\n }\n })}\n \n \n {filteredUpcomingBatches?.length > 0 ? (\n \n ) : (\n \n )}\n \n \n \n )}\n \n );\n}\n\nexport default AmazonCodingProgrammer;\n","import React, { useEffect } from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport useStyles from \"./styles\";\nimport { Link, useHistory } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { useParams } from \"react-router-dom\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as pathwayActions } from \"./redux/action\";\nimport { actions as upcomingBatchesActions } from \"./redux/action\";\nimport { actions as upcomingClassActions } from \"./redux/action\";\nimport { actions as enrolledBatchesActions } from \"./redux/action\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport NoBatchEnroll from \"../BatchClassComponents/NoBatchEnroll\";\nimport { CardContent } from \"@mui/material\";\n\n// import { ReactComponent as CertificateIcon } from \"./asset/certificate-grey.svg\";\nimport certificateGrey from \"./asset/certificate-grey.svg\";\n// import { ReactComponent as CertificateIconColored } from \"./asset/certificate-color.svg\";\nimport certificateColored from \"./asset/certificate-color.svg\";\nimport Modal from \"@mui/material/Modal\";\nimport CustomModal from \"./CustomModal\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\n\nimport { Card, Typography, CardActions, LinearProgress } from \"@mui/material\";\nimport McDigitalCourse from \"./McDigitalCourse\";\n// import ReactPDF from \"./ReactPDF.js\";\nimport {\n Container,\n Box,\n Grid,\n CardMedia,\n Button,\n Skeleton,\n FormControlLabel,\n Checkbox,\n} from \"@mui/material\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport PathwayCourseBatchEnroll1 from \"../BatchClassComponents/PathwayCourseBatchEnroll1\";\nimport PathwayCourseBatchEnroll2 from \"../BatchClassComponents/PathwayCourseBatchEnroll2\";\nimport PathwayCards from \"./PathwayCards/index.js\";\nimport { useState } from \"react\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\nimport CustomSnackbar from \"./customSnackbar\";\nimport MuiAlert from \"@mui/material/Alert\";\nimport { max } from \"date-fns\";\nimport AmazonCodingProgrammer from \"./AmazonCodingProgrammer\";\nimport DOMPurify from \"dompurify\";\nimport get from \"lodash/get\";\n\nfunction UnsafeHTML(props) {\n const { html, Container, ...otherProps } = props;\n const sanitizedHTML = DOMPurify.sanitize(html);\n return (\n \n );\n}\n\nconst Alert = React.forwardRef(function Alert(props, ref) {\n return ;\n});\n\nfunction saveFile(url) {\n // Get file name from url.\n var filename = url.substring(url.lastIndexOf(\"/\") + 1).split(\"?\")[0];\n var xhr = new XMLHttpRequest();\n xhr.responseType = \"blob\";\n xhr.onload = function () {\n let a = document.createElement(\"a\");\n a.href = window.URL.createObjectURL(xhr.response); // xhr.response is a blob\n a.download = filename; // Set the file name.\n a.style.display = \"none\";\n document.body.appendChild(a);\n a.click();\n };\n xhr.open(\"GET\", url);\n xhr.send();\n}\n\nfunction PathwayCourse() {\n const user = useSelector(({ User }) => User);\n const dispatch = useDispatch();\n const { pathwayCourse } = useSelector((state) => state.Pathways);\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const classes = useStyles({ isActive });\n const params = useParams();\n const pathwayId = params.pathwayId;\n const [completedPortion, setCompletedPortion] = useState({});\n const [openSnackbar, setOpenSnackbar] = useState(false);\n const [openModal, setOpenModal] = useState(false);\n\n const [isFormModalOpen, setisFormModalOpen] = useState(false);\n const [certificate, setCertificate] = useState(\"\");\n let completedAll = completedPortion?.total === 100;\n let [isFormFilled, setisFormFilled] = useState(false);\n\n const [open, setOpen] = React.useState(false);\n const [loader, setLoader] = useState(false);\n const [displayCert, setDisplayCert] = useState(false);\n const [pathwayCode, setPathwayCode] = useState(false);\n const [certificateCode, setCertificateCode] = useState(\"\");\n\n const [isChecked, setIsChecked] = useState(false); // State for checkbox\n\n const [userName, setUserName] = useState(\"\"); // State for storing user name\n\n useEffect(() => {\n const authData = JSON.parse(localStorage.getItem(\"__AUTH__\"));\n if (\n authData &&\n authData.data &&\n authData.data.user &&\n authData.data.user.name\n ) {\n setUserName(authData.data.user.name); // Set user name from local storage\n }\n }, []);\n\n const handleToggleCheckbox = () => {\n setIsChecked(!isChecked); // Toggle checkbox state\n };\n\n const handleCloseModal = () => {\n setOpenModal(false);\n };\n const modalStyle = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: isActive ? \"300px\" : \"544px\",\n bgcolor: \"background.paper\",\n outline: \"none\",\n borderRadius: \"8px\",\n box: 24,\n p: 4,\n };\n\n const data = useSelector((state) => {\n return state;\n });\n\n const upcomingBatchesData = useSelector((state) => {\n return state.Pathways?.upcomingBatches?.data;\n });\n\n const userEnrolledClasses = useSelector((state) => {\n return state.Pathways?.upcomingEnrolledClasses?.data;\n });\n\n const enrolledBatches = useSelector((state) => {\n if (state?.Pathways?.enrolledBatches?.data?.length > 0) {\n return state?.Pathways?.enrolledBatches?.data;\n } else {\n return null;\n }\n });\n\n const handleSnackbar = () => {\n setOpenSnackbar((prev) => !prev);\n };\n\n const handleModal = () => {\n setLoader(true);\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/certificate?pathway_code=${certificateCode}`,\n headers: {\n accept: \"application/json\",\n Authorization:\n user?.data?.token || localStorage.getItem(\"studentAuthToken\"),\n },\n })\n .then((response) => {\n setLoader(false);\n setCertificate(response?.data?.url);\n if (response) {\n setOpenModal((prev) => !prev);\n }\n })\n .catch((err) => {});\n };\n\n const downloadCert = () => {\n saveFile(certificate);\n };\n\n // const shareCertificate = () => {\n // if (navigator.share !== undefined) {\n // const title = `Check out my ${pathwayCourseData?.pathway} certificate`;\n // const text = `I completed a ${pathwayCourseData?.pathway} from Meraki!`;\n // const url = certificate;\n // navigator\n // .share({\n // title,\n // text,\n // url,\n // })\n // .catch((err) => console.error(err));\n // }\n // };\n\n const loading = useSelector((state) => {\n const upcomingBatchesState = state?.Pathways?.upcomingBatches;\n const enrolledBatchesState = state?.Pathways?.enrolledBatches;\n return (\n (!upcomingBatchesState ||\n !enrolledBatchesState ||\n upcomingBatchesState.loading ||\n enrolledBatchesState.loading) &&\n !(upcomingBatchesData?.length > 0) &&\n !(enrolledBatches?.length > 0)\n );\n });\n\n const history = useHistory();\n useEffect(() => {\n dispatch(\n pathwayActions.getPathwaysCourse({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n }, [dispatch, pathwayId]);\n\n ///////////////////////complete portion data////////////////////\n\n useEffect(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/teacher/checking`,\n headers: {\n accept: \"application/json\",\n Authorization:\n user?.data?.token || localStorage.getItem(\"studentAuthToken\"),\n },\n })\n .then((response) => {\n setisFormFilled(response.data);\n })\n .catch((err) => {});\n // }, [pathwayId, pathwayCourse]);\n }, []);\n\n useEffect(() => {\n if (user?.data?.token && pathwayId) {\n dispatch(\n enrolledBatchesActions.getEnrolledBatches({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/${pathwayId}/totalProgress`,\n headers: {\n accept: \"application/json\",\n Authorization:\n user?.data?.token || localStorage.getItem(\"studentAuthToken\"),\n },\n })\n .then((response) => {\n setCompletedPortion((prevState) => ({\n ...prevState,\n total: response?.data?.total_completed_portion,\n }));\n\n response.data.pathway.map((item) => {\n setCompletedPortion((prevState) => ({\n ...prevState,\n [item.course_id]: item.completed_portion,\n }));\n });\n })\n .catch((err) => {});\n }\n }, [dispatch, pathwayId]);\n\n ////////////////// upcoming classes data ////////////////\n useEffect(() => {\n if (user?.data?.token && enrolledBatches?.length > 0) {\n dispatch(\n upcomingClassActions.getupcomingEnrolledClasses({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n } else {\n if (user?.data?.token) {\n dispatch(\n upcomingBatchesActions.getUpcomingBatches({\n pathwayId: pathwayId,\n authToken: user?.data?.token,\n })\n );\n }\n }\n }, [enrolledBatches, pathwayId]);\n\n /*For Content List Scroll Position*/\n useEffect(() => {\n try {\n if (localStorage.getItem(\"contentListScroll\")) {\n localStorage.removeItem(\"contentListScroll\");\n }\n } catch (error) {\n return {};\n }\n try {\n if (localStorage.getItem(\"contentListScrollMobile\")) {\n localStorage.removeItem(\"contentListScrollMobile\");\n }\n } catch (error) {\n //console.error('Error accessing localStorage:',);\n return {};\n }\n }, []);\n\n const pathwayCourseData = data.Pathways.data?.pathways.find((item) => {\n return item.id == pathwayId;\n });\n\n useEffect(() => {\n if (pathwayCourse?.data) {\n setCertificateCode(pathwayCourse?.data?.code);\n pathwayCourse?.data.code === \"PRGPYT\" ||\n pathwayCourse?.data.code === \"TCBPI\" ||\n pathwayCourse?.data.code === \"SCRTHB\"\n ? setDisplayCert(true)\n : setDisplayCert(false);\n }\n }, [pathwayCourse?.data]);\n\n const onHandleSnackbarOpen = () => {\n setOpen(true);\n };\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n const handleFormModal = () => {\n setisFormModalOpen(true);\n };\n\n // const PopupBox = styled(Dialog)(({ theme }) => ({\n // '& .MuiDialogContent-root': {\n // padding: theme.spacing(2),\n // },\n // '& .MuiDialogActions-root': {\n // padding: theme.spacing(1),\n // },\n // }));\n\n // const handleClickOpen = () => {\n // setOpen(true);\n // };\n\n return (\n <>\n \n {user.data !== null ? (\n \n Please share your teacher details first to start the course\n \n ) : (\n \n Please Login First and Share your Details to Unlock The course\n \n )}\n \n \n {pathwayCourse?.data?.type === \"withoutCourse\" ? (\n \n ) : (\n <>\n {/* ............enroll class heading............... */}\n {enrolledBatches && !loading ? (\n <>\n \n {enrolledBatches[0]?.title}\n \n \n ) : (\n \"\"\n )}\n {/*............... certificate modal.............. */}\n\n \n \n \n \n \n {\" \"}\n {`${pathwayCourse?.data?.name\n ?.split(\" \")\n .pop()} Certificate`}\n \n \n \n \n Your name on the certificate as per our records\n \n \n {userName}\n \n \n Please ensure that your name is correct. In case, there is a\n mistake, please change your name in the\n “Profile” \n section\n \n \n }\n label=\"I confirm that my name displayed above is correct\"\n sx={{ mt: 4 }}\n />\n \n {/* */}\n \n Get Certificate\n \n \n \n \n\n {/* ................UserEnroll classs................. */}\n\n {enrolledBatches ? (\n <>\n \n \n ) : (\n pathwayCourse?.data && (\n <>\n \n \n \n \n {pathwayCourse?.data.name}\n \n \n {/* {pathwayCourse?.data.description} */}\n Explore and learn the essential material and tools to\n start
\n supporting your students learning on Meraki\n
\n\n {pathwayCourse?.data.video_link && (\n \n \n \n \n {\" \"}    \n What's it all about?\n \n \n \n )}\n\n {/* .....summary .......*/}\n {pathwayCourse?.data?.code === \"TCBPI\" &&\n pathwayCourse?.data?.summary.map((content, index) => {\n if (content.component === \"text\") {\n return (\n \n );\n }\n })}\n\n {/* ..........login button when user are not login............... */}\n\n {!user?.data?.token &&\n (pathwayCourse?.data.code == \"PRGPYT\" ||\n pathwayCourse?.data.code == \"SPKENG\") && (\n <>\n \n Want to learn through live classes by a teacher?\n \n {\n history.push(PATHS.LOGIN);\n }}\n >\n Login\n \n \n )}\n \n \n {/* ........upcoming classes............ */}\n \n {user?.data?.token &&\n (pathwayCourse?.data.code == \"PRGPYT\" ||\n pathwayCourse?.data.code == \"SPKENG\") &&\n (loading ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : upcomingBatchesData?.length > 0 ? (\n \n ) : (\n \n ))}\n \n \n\n {/* ...............Learning outcomes..................... */}\n {pathwayCourse?.data?.outcomes.length > 0 && (\n \n \n Learning Outcomes\n \n \n {pathwayCourse?.data.outcomes.map((content, index) => {\n if (content.component === \"text\") {\n return (\n \n \n \n \n \n \n \n \n );\n }\n })}\n \n \n )}\n \n )\n )}\n {/* ................Courses........................ */}\n\n \n {pathwayCourse?.data?.code === \"TCBPI\" ? (\n isFormFilled ? (\n \n ) : (\n \n \n \n \n Please take out few minutes and fill your details\n \n \n The details will be used for partner report purposes\n only\n \n \n \n \n \n )\n ) : (\n <>\n \n Courses\n \n\n \n {pathwayCourse?.data?.courses?.map((item, index) => (\n \n \n \n \n \n
\n {!isFormFilled && pathwayCode ? (\n \n ) : (\n \n {index + 1}\n \n )}\n\n \n {item.name}\n \n
\n \n \n \n \n \n \n
\n ))}\n \n \n )}\n\n {/* ...............certificate three dot button................ */}\n\n \n\n {displayCert ? (\n \n \n \"icon\"\n \n \n {completedAll ? (\n loader ? (\n \n ) : (\n // \n \n )\n ) : (\n // \n \n )}\n \n {pathwayCourse?.data?.name} Certificate\n \n \n \n\n \n ) : null}\n
\n \n \n )}{\" \"}\n ;\n \n );\n}\nexport default PathwayCourse;\n","import React, { useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { actions as pathwayActions } from \"../../PathwayCourse/redux/action\";\nimport { useDispatch } from \"react-redux\";\nimport { breakpoints } from \"../../../theme/constant\";\nimport {\n Container,\n Box,\n Grid,\n Card,\n Typography,\n Button,\n Stack,\n} from \"@mui/material\";\nimport { Link } from \"react-router-dom\";\nimport { interpolatePath, PATHS } from \"../../../constant\";\nimport useStyles from \"../styles\";\n\nfunction ResidentialProgramme() {\n const dispatch = useDispatch();\n const user = useSelector(({ User }) => User);\n const { data } = useSelector((state) => state.Pathways);\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const isActiveIpad = useMediaQuery(\"(max-width:1300px)\");\n\n const classes = useStyles();\n\n useEffect(() => {\n dispatch(\n pathwayActions.getPathways({\n authToken: user,\n })\n );\n }, [dispatch]);\n\n const resPathway =\n data && data.pathways.find((pathway) => pathway.code === \"PRCRSE\");\n const pathwayCourse = resPathway && resPathway.courses;\n\n return (\n \n \n \n \n \n Learning Track\n \n \n Residential Programme Info- Track\n \n \n Navgurukul, our parent organization, offers fully funded 1 year\n software engineering programme. Learn all about it in this\n introductory course and get ready to apply for it.\n \n \n \n \n\n \n \n Courses\n \n \n {pathwayCourse &&\n pathwayCourse.map((item, index) => (\n \n \n \n \n
\n \n {index + 1}\n \n \n {item.name}\n \n
\n \n \n
\n ))}\n
\n
\n\n {/* \n Have you completed the overview?\n \n \n \n */}\n
\n );\n}\n\nexport default ResidentialProgramme;\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as courseActions } from \"../../Course/redux/action\";\nimport { actions as pathwayActions } from \"../../PathwayCourse/redux/action\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\n\nimport { Link } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../../constant\";\nimport { Container, Box, Grid, Card, Typography } from \"@mui/material\";\nimport useStyles from \"../styles\";\n\nfunction MiscellaneousCourses() {\n const dispatch = useDispatch();\n const user = useSelector(({ User }) => User);\n const { data } = useSelector(({ Course }) => Course);\n const pathway = useSelector((state) => state);\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n useEffect(() => {\n dispatch(courseActions.getCourses());\n }, [dispatch]);\n\n useEffect(() => {\n dispatch(\n pathwayActions.getPathways({\n authToken: user,\n })\n );\n }, [dispatch, user]);\n\n const pathwayCourseId =\n (pathway.Pathways.data &&\n pathway.Pathways.data.pathways\n .map((pathway) => pathway.courses || [])\n .flat()\n .map((course) => course.id)) ||\n [];\n\n const otherCourses =\n data &&\n data.allCourses.filter(\n (item) => pathwayCourseId && !pathwayCourseId.includes(item.id)\n );\n\n return (\n \n \n \n \n \n \n Miscellaneous Courses\n \n \n Do you want to delve into Android, Game Development, Web Dev\n Basics or just some fun projects? Check out these courses for a\n sneak peak into these exciting fields.\n \n \n \n \n\n \n \n Courses\n \n \n {otherCourses &&\n otherCourses.map((item, index) => (\n \n \n \n \n {item.name}\n \n \n \n \n ))}\n \n \n \n \n );\n}\n\nexport default MiscellaneousCourses;\n","import { useQuery } from \"./url\";\nimport { useEffect } from \"react\";\n\n/**\n * A custom hook that calls the provided function, if any, every time the\n * search parameter of the query string changes\n * @param {Function} cb the function to call with the search parameter or empty\n * string if it's not present\n * @return {string} the value of the search parameter in the query string, if\n * present, otherwise the empty string\n */\nexport const useSearchQuery = (cb) => {\n const query = useQuery();\n const search = query.get(\"search\") || \"\";\n useEffect(() => {\n if (typeof cb === \"function\") {\n cb(search);\n }\n }, [search]);\n\n return search;\n};\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n course: {\n paddingBottom: 40,\n },\n courseCard: {\n marginBottom: 10,\n },\n box: {\n marginLeft: \"16px\",\n marginTop: 32,\n },\n courseName: {\n background: \"#E9F5E9\",\n width: \"24px\",\n height: \"24px\",\n borderRadius: \"50%\",\n },\n pathwayCard: {\n margin: \"15px 0\",\n \"&:hover\": {\n boxShadow:\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\",\n },\n },\n pathwayLink: {\n textDecoration: \"none\",\n },\n courseImage: {\n objectFit: \"cover\",\n width: \"100%\",\n height: \"200px\",\n borderRadius: \"8px\",\n },\n courseTitleNumber: {\n display: \"flex\",\n alignItems: \"baseline\",\n paddingTop: \"16px\",\n },\n}));\n\nexport default useStyles;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { actions as courseActions } from \"../Course/redux/action\";\nimport { actions as pathwayActions } from \"../PathwayCourse/redux/action\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { useSearchQuery } from \"../../common/search\";\nimport {\n Box,\n TextField,\n Container,\n Typography,\n Grid,\n Card,\n} from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport { Popover, InputAdornment } from \"@mui/material\";\nimport SearchOutlinedIcon from \"@mui/icons-material/SearchOutlined\";\nimport { METHODS } from \"../../services/api\";\nimport axios from \"axios\";\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nfunction SearchCourse(props) {\n const { data } = useSelector(({ Course }) => Course);\n const pathway = useSelector((state) => state.Pathways);\n const dispatch = useDispatch();\n\n const [search, setSearch] = useState(\"\");\n const [focus, setFocus] = useState(true);\n\n const prevSearch = usePrevious(search);\n\n useSearchQuery(setSearch);\n const history = useHistory();\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const [updated, setUpdated] = useState(\"\");\n const user = useSelector(({ User }) => User);\n const userId = user.data?.user.id;\n\n useEffect(() => {\n setUpdated(search);\n }, [search]);\n\n useEffect(() => {\n dispatch(courseActions.getCourses());\n }, [dispatch]);\n\n useEffect(() => {\n dispatch(\n pathwayActions.getPathways({\n authToken: user,\n })\n );\n }, [dispatch, user]);\n\n const handleSearchChange = (e) => {\n if (e.key == \"Enter\") {\n if (e.target.value == \"\") {\n history.replace(`/search-course/?search=${prevSearch}`);\n } else {\n history.replace(`/search-course/?search=${e.target.value}`);\n }\n e.preventDefault();\n }\n };\n\n // useEffect(() => {\n // const data = JSON.parse(localStorage.getItem(\"recent\"));\n // if (data !== null) {\n // setrecentSearch(data);\n // }\n // }, [setrecentSearch]);\n\n const pathwayCourseIds =\n pathway.data?.pathways\n .map((pathway) => pathway.courses || [])\n .flat()\n .map((course) => course.id) || [];\n\n const otherCourseResults = data?.allCourses.filter((item) => {\n return (\n // item.course_type === \"json\" &&\n !pathwayCourseIds.includes(item.id) &&\n item.name.toLowerCase().includes(search.toLowerCase())\n );\n });\n\n const pathwayTrackResults = pathway.data?.pathways\n .map((pathway) => {\n return {\n ...pathway,\n courses: pathway.courses?.filter((course) => {\n return course.name.toLowerCase().includes(search.toLowerCase());\n }),\n };\n })\n .filter((pathway) => pathway.courses?.length > 0);\n\n const hasSearchResults =\n pathwayTrackResults?.length > 0 || otherCourseResults?.length > 0;\n\n // const handleDataBar = (name) => {\n // if (!recentSearch.includes(name)) {\n // localStorage.setItem(\"recent\", JSON.stringify([...recentSearch, name]));\n // }\n // };\n\n const countCourse = pathwayTrackResults?.map((item) => {\n return item.courses?.length;\n });\n\n let sum = countCourse?.reduce((total, item) => {\n return total + item;\n }, 0);\n\n let misscount = otherCourseResults?.length;\n\n let totalCourse = sum + misscount;\n\n const onPopularsearch = (name) => {\n if (user.data !== null) {\n axios({\n method: METHODS.POST,\n url: `${process.env.REACT_APP_MERAKI_URL}/search/${userId}/${name}`,\n headers: {\n accept: \"application/json\",\n Authorization: user.data?.token || \"\",\n },\n data: {\n name: name,\n user_id: userId,\n },\n })\n .then((res) => {\n // console.log(res)\n })\n .catch((err) => {});\n }\n };\n\n return (\n <>\n \n \n \n \n ),\n }}\n sx={{ margin: \"40px 0px 0px 0px\" }}\n inputRef={(input) => {\n if (input != null) {\n input.focus();\n }\n }}\n variant=\"standard\"\n fullWidth\n value={updated}\n onKeyPress={handleSearchChange}\n onChange={(e) => {\n setUpdated(e.target.value);\n }}\n />\n \n {isNaN(totalCourse) ? 0 : totalCourse} result found\n \n \n \n {/* {recentSearch} */}\n \n {search ? (\n <>\n \n {pathwayTrackResults?.map((pathway, index) => {\n return (\n <>\n \n {pathway.name}\n \n \n {pathway.courses.map((item, index) => (\n \n \n {\n onPopularsearch(item.name);\n }}\n >\n \n \n \n {index + 1}\n \n \n {item.name}\n \n \n \n \n \n ))}\n \n \n );\n })}\n\n {otherCourseResults?.length > 0 && (\n <>\n \n Miscellaneous Courses\n \n \n {otherCourseResults?.map((item, index) => (\n <>\n \n \n {\n onPopularsearch(item.name);\n }}\n >\n \n {item.name}\n \n \n \n \n \n ))}\n \n \n )}\n \n {!hasSearchResults && (\n <>\n \n \n \n \n Whoops. The results for taken away!\n
\n Please try a new search\n \n \n )}\n \n ) : null}\n \n
\n \n );\n}\n\nexport default SearchCourse;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n volunteerFlow: {\n paddingTop: \"5px\",\n },\n volunteerImg: {\n width: \"500px\",\n paddingLeft: \"32px\",\n },\n volunteerImg1: {\n width: \"350px\",\n },\n volunteerCard: {\n border: \"1px solid #48A145\",\n height: \"95%\",\n padding: \"16px\",\n borderRadius: \"8px !importent\",\n },\n volunteerCard1: {\n border: \"1px solid #FFCC00\",\n height: \"95%\",\n padding: \"16px\",\n },\n volunteerCard2: {\n border: \"1px solid #FFCC00\",\n height: \"95%\",\n padding: \"16px 16px 0px 16px\",\n },\n displayIcon: {\n display: \"flex\",\n marginTop: \"8px\",\n },\n IconColor: {\n color: \"#6D6D6D\",\n },\n TextContent: {\n paddingLeft: \"10px\",\n // color: \"#000000\",\n },\n\n VolunteerHrline: {\n width: \"200px\",\n height: \"4px\",\n background: \"#2196F3\",\n },\n\n TrackCard: {\n maxWidth: 256,\n height: 171,\n \"&:hover\": {\n border: \"1px solid #48A145\",\n boxShadow:\n \"0px 16px 24px rgba(0, 0, 0, 0.06), 0px 6px 30px rgba(0, 0, 0, 0.04), 0px 8px 10px rgba(0, 0, 0, 0.08)\",\n },\n },\n selectedTrack: {\n boxShadow: \"1px 1px 0px #E9F5E9\",\n maxWidth: 256,\n height: 171,\n border: \"1px solid #48A145\",\n },\n TrackButtonBox: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n marginBottom: \"20px\",\n },\n TrackImages: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"100%\",\n flexDirection: \"column\",\n },\n link: {\n textDecoration: \"none\",\n },\n backToAllClasses: {\n lineHeight: 1.5,\n fontWeight: 700,\n fontFamily: \"Lusitana\",\n fontSize: \"1.5rem\",\n },\n classCard: {\n padding: \"18px \",\n height: \"320px\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n Typography,\n Container,\n Grid,\n Box,\n Button,\n Card,\n CardContent,\n CardActions,\n useMediaQuery,\n} from \"@mui/material\";\nimport { PATHS } from \"../../constant\";\nimport { useSelector } from \"react-redux\";\nimport useStyles from \"./styles\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\nimport { breakpoints } from \"../../theme/constant\";\n\nfunction VolunteerAutomation() {\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const isActiveIpad = useMediaQuery(\"(max-width:1300px)\");\n\n const user = useSelector(({ User }) => User);\n let history = useHistory();\n\n const pathname = window.location.pathname;\n const rolesList = user?.data?.user.rolesList; // TODO: Use selector\n\n const handleClick = () => {\n if (rolesList) {\n history.push(PATHS.VOLUNTEER_FORM);\n // if (rolesList.includes(\"volunteer\")) {\n // history.push(PATHS.CLASS);\n // } else {\n // history.push(PATHS.VOLUNTEER_FORM);\n // }\n } else {\n history.push(PATHS.LOGIN, pathname);\n }\n };\n\n return (\n \n \n \n \n \n Help Students Get their Dream Job in Tech\n \n \n Why Volunteer?\n \n \n \n \n Gain a wide network to leverage for advancing your skills and\n career prospects.\n \n \n \n \n \n Help students from low-income families to get their first job in\n tech.\n \n \n \n \n \n \n \n \n \n \n \n Areas to Volunteer In\n \n\n \n \n \n \n \n \n Teaching\n \n \n \n \n Python\n \n \n \n \n \n Spoken English\n \n \n \n \n {\" \"}\n Expected effort\n \n : 2 hours / week for 15 weeks\n \n \n Please volunteer only if you are professional who has worked\n with Python or have great command over English.\n \n \n \n \n Start Now\n \n \n \n \n \n \n \n \n \n Tech\n \n \n \n \n UX/Graphic Design\n \n \n \n \n \n Android (Kotlin)\n \n \n \n \n \n Front End Dev (React)\n \n \n\n \n \n \n Back End Dev\n \n \n\n \n \n \n Project Management\n \n \n \n \n \n Curriculum Creation & Translation\n \n \n \n \n \n Expected effort\n \n : 4 hours / week for 15 weeks\n \n \n You will be taken to a Google form.\n \n \n \n \n \n Start Now\n \n \n \n \n \n \n );\n}\n\nexport default VolunteerAutomation;\n","import React, { useEffect } from \"react\";\nimport {\n Typography,\n Container,\n Grid,\n Box,\n CardMedia,\n useMediaQuery,\n Card,\n} from \"@mui/material\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as pathwayActions } from \"../PathwayCourse/redux/action\";\nimport useStyles from \"./styles\";\n\nfunction SelectTrack({ setDisable, pathwayId, setPathwayId }) {\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const user = useSelector(({ User }) => User);\n const classes = useStyles();\n const { data } = useSelector((state) => state.PathwaysDropdow);\n useEffect(() => {\n if (pathwayId.length === 0) {\n setDisable(true);\n } else {\n setDisable(false);\n }\n }, [pathwayId]);\n const handleChange = (id) => {\n if (pathwayId.includes(id)) {\n setPathwayId(pathwayId.filter((item) => item !== id));\n } else {\n setPathwayId([...pathwayId, id]);\n }\n };\n\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(\n pathwayActions.getPathwaysDropdown({\n authToken: user,\n })\n );\n }, [dispatch, user]);\n\n return (\n \n \n \n Please choose what you’d like to teach\n \n \n We run the learning tracks in a batch format with multiple live\n classes.\n \n \n \n \n {data &&\n data.pathways &&\n data.pathways.map((item) => {\n if (\n item.name === \"Python\" ||\n item.name === \"Spoken English\" ||\n item.name?.toLocaleLowerCase() ===\n \"Amazon Coding Bootcamp\".toLocaleLowerCase()\n ) {\n return (\n \n handleChange(item.id)}\n >\n \n \n {item.name}\n \n \n \n );\n }\n })}\n \n \n \n );\n}\n\nexport default SelectTrack;\n","import React, { useEffect } from \"react\";\nimport { Typography, Container, Stack, Button } from \"@mui/material\";\n\nfunction Confirmation({ setDisable }) {\n useEffect(() => {\n setDisable(false);\n }, []);\n\n return (\n \n \n We can’t wait to see you taking classes\n \n \n It’s all done. Thanks for completing the short onboarding. Your students\n are eager to meet you in the first class\n \n\n \n \n \n \n );\n}\n\nexport default Confirmation;\n","import React, { useEffect } from \"react\";\nimport {\n Grid,\n Typography,\n Container,\n TextField,\n Box,\n FormLabel,\n FormGroup,\n FormControlLabel,\n Checkbox,\n Stack,\n} from \"@mui/material\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { DesktopTimePicker } from \"@mui/x-date-pickers/DesktopTimePicker\";\nimport { AdapterDateFns } from \"@mui/x-date-pickers/AdapterDateFns\";\nimport moment from \"moment\";\nimport DesktopDatePicker from \"@mui/lab/DesktopDatePicker\";\nimport itLocale from \"date-fns/locale/it\";\n\nfunction Availability({ setAvailability, availability, setDisable }) {\n const days = {\n MO: \"Mon\",\n TU: \"Tue\",\n WE: \"Wed\",\n TH: \"Thu\",\n FR: \"Fri\",\n SA: \"Sat\",\n SU: \"Sun\",\n };\n\n const handleChange = (e) => {\n setAvailability({ ...availability, [e.target.name]: e.target.value });\n };\n\n const handleDaySelection = (e) => {\n const index = availability.available_on_days.indexOf(e.target.value);\n if (index === -1) {\n setAvailability({\n ...availability,\n [\"available_on_days\"]: [\n ...availability.available_on_days,\n e.target.value,\n ],\n });\n } else {\n const dayDeleted = availability.available_on_days.filter(\n (selectedDay) => selectedDay !== e.target.value\n );\n setAvailability({ ...availability, [\"available_on_days\"]: dayDeleted });\n }\n };\n\n useEffect(() => {\n if (\n availability.hours_per_week.length > 0 &&\n availability.available_on_days.length > 0\n // &&\n // availability.available_on_time.length > 0\n ) {\n setDisable(false);\n } else {\n setDisable(true);\n }\n }, [availability]);\n\n return (\n \n \n Please tell us your availability to teach\n \n \n We recommend giving nearly 3 hours per week for about 15 weeks duration.\n \n\n \n handleChange(e)}\n value={availability.hours_per_week}\n name=\"hours_per_week\"\n id=\"contact\"\n variant=\"outlined\"\n fullWidth\n />\n \n\n \n \n Available on days\n \n \n \n {Object.keys(days).map((item) => (\n \n }\n // onClick={() => {\n // setOnInput((prev) => {\n // return { ...prev, days: true };\n // });\n // }}\n label={item}\n labelPlacement={item}\n />\n ))}\n \n\n \n \n Please provide 3 preferred start times in a day (Classes are of 1\n hour)\n \n \n {[\n { label: \"First Start Time\", prop: \"first_time\" },\n { label: \"Second Start Time\", prop: \"second_time\" },\n { label: \"Third Start Time\", prop: \"third_time\" },\n ].map(({ label, prop }) => (\n \n \n {\n // setAvailability({\n // ...availability,\n // [prop]: time,\n // });\n // }}\n onChange={(time) => {\n // let time = time.getHours() + \":\" + time.getMinutes()\n setAvailability({\n ...availability,\n [\"available_on_time\"]: {\n ...availability.available_on_time,\n [prop]: time,\n },\n });\n }}\n // minTime={\n // availability.date === moment().format(\"YYYY-MM-DD\")\n // ? new Date(new Date().setSeconds(0))\n // : null\n // }\n renderInput={(params) => }\n />\n \n \n ))}\n \n \n \n );\n}\n\nexport default Availability;\n","import React, { useEffect } from \"react\";\nimport { Typography, Container, Box } from \"@mui/material\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport ArrowRightAltIcon from \"@mui/icons-material/ArrowRightAlt\";\nimport useStyles from \"./styles\";\n\nfunction CodeOfConduct({ setDisable }) {\n const classes = useStyles();\n\n useEffect(() => {\n setDisable(false);\n }, []);\n\n return (\n \n \n \n Code of Conduct\n \n \n We work with girls (primarily minors) from low-income families. Hence,\n as a volunteer, you must understand and abide by the code of conduct\n and privacy policy.\n \n \n \n \n Video during calls is optional. If enabling video, please maintain\n an appropriate dress standard.\n \n \n \n \n \n Please keep the interactions polite. No one should convey abusive\n language and irrelevant material in speech or writing.\n \n \n \n \n \n We respect your and the student's privacy. Please do not share/ask\n for personal contact details.\n \n \n \n \n \n Raise any concerns you witness to the Meraki team and treat all\n students fairly and equally.\n \n \n \n The above are the most important points to keep in mind. However,\n please feel free to read our detailed{\" \"}\n \n Volunteering with Meraki\n {\" \"}\n To proceed to next step\n \n \n \n );\n}\n\nexport default CodeOfConduct;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Typography,\n Container,\n Box,\n TextField,\n Button,\n Snackbar,\n Grid,\n} from \"@mui/material\";\nimport {\n getAuth,\n RecaptchaVerifier,\n signInWithPhoneNumber,\n} from \"firebase/auth\";\nimport axios from \"axios\";\nimport { initializeApp } from \"firebase/app\";\nimport MuiPhoneNumber from \"material-ui-phone-number\";\n\nconst firebaseConfig = {\n apiKey: process.env.REACT_APP_API_KEY,\n authDomain: process.env.REACT_APP_authDomain,\n projectId: process.env.REACT_APP_projectId,\n storageBucket: process.env.REACT_APP_storageBucket,\n messagingSenderId: process.env.REACT_APP_messagingSenderId,\n appId: process.env.REACT_APP_appId,\n};\n\nconst CountryList = require(\"country-list-with-dial-code-and-flag\");\n\nfunction VerifyPhoneNo(props) {\n const { setDisable, setContact, contact, setNextButton } = props;\n const [otp, setOtp] = useState(\"\");\n const [bgColor, setBgColor] = useState(false);\n const [verifyOpen, setVerifyOpen] = useState(false);\n const [generateOtp, setGenerateOtp] = useState(true);\n const [startOtp, setStartOtp] = useState(false);\n const [confirmationResult, setConfirmationResult] = useState(null);\n const [timer, setTimer] = useState(\"5:00\");\n const [isStartTimer, setIsStartTimer] = useState(false);\n const [countryCode, setCountryCode] = useState(\n (contact && `${contact?.split(\" \")[0]}`) || \"+91\"\n );\n const [phone, setPhone] = useState(\"\");\n const phoneData = `${countryCode.slice(1)}-${phone}`;\n const app = initializeApp(firebaseConfig);\n\n const handleChange = (event) => {\n const number = event.target.value?.replace(/[^0-9]/g, \"\") || \"\";\n if (number.length <= 10) {\n setPhone(number);\n }\n };\n\n useEffect(() => {\n setDisable(true);\n setNextButton(false);\n if (contact) {\n setDisable(false);\n setNextButton(true);\n setVerifyOpen(true);\n setGenerateOtp(false);\n }\n }, [contact]);\n\n const [open, setOpen] = useState(false);\n const [message, setMessage] = useState(\"\");\n\n const handleClose = () => {\n setOpen(false);\n setMessage(\"\");\n };\n\n const setupRecaptcha = () => {\n const auth = getAuth();\n window.recaptchaVerifier = new RecaptchaVerifier(\n \"recaptcha-container\",\n {\n size: \"invisible\",\n callback: () => {\n onSignInSubmit();\n },\n },\n auth\n );\n };\n\n const countTimer = () => {\n setIsStartTimer(true);\n let countDownDate = new Date().getTime() + 300000;\n const interval = setInterval(() => {\n let now = new Date().getTime();\n let distance = countDownDate - now;\n let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\n let seconds = Math.floor((distance % (1000 * 60)) / 1000);\n setTimer(`${minutes}:${seconds < 10 ? \"0\" : \"\"}${seconds}`);\n if (distance < 0) {\n clearInterval(interval);\n setTimer(null);\n setIsStartTimer(false);\n setOtp(\"\");\n setStartOtp(false);\n }\n }, 1000);\n };\n\n const onSignInSubmit = async () => {\n try {\n const response = await axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/volunteers/${phoneData}`,\n method: \"GET\",\n headers: {\n accept: \"application/json\",\n },\n });\n if (response.data !== \"please register your mobile number\") {\n setOpen(true);\n setMessage(response.data);\n } else {\n if (!confirmationResult) {\n setupRecaptcha();\n }\n const phoneNumber = `${countryCode} ${phone}`;\n setContact(phoneNumber);\n const appVerifier = window.recaptchaVerifier;\n const auth = getAuth();\n signInWithPhoneNumber(auth, phoneNumber, appVerifier)\n .then((result) => {\n setMessage(\"OTP sent successfully\");\n setOpen(true);\n setStartOtp(true);\n setConfirmationResult(result);\n countTimer();\n setVerifyOpen(false);\n })\n .catch(() => {\n setMessage(\"Enter valid phone number or tried too many times\");\n setOpen(true);\n });\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n const verifyOtp = () => {\n confirmationResult\n .confirm(otp)\n .then(() => {\n setMessage(\"Phone number verified successfully\");\n setOpen(true);\n setDisable(false);\n setIsStartTimer(false);\n setVerifyOpen(true);\n setNextButton(true);\n })\n .catch(() => {\n setMessage(\"Invalid OTP\");\n setOpen(true);\n setOtp(\"\");\n setBgColor(true);\n });\n };\n\n const countryData = CountryList.findFlagByDialCode(countryCode);\n\n return (\n \n
\n \n Please provide your phone number.\n \n \n {generateOtp ? (\n \n \n setCountryCode(val)}\n />\n \n \n \n \n \n ) : (\n {`${countryData.dial_code} ${contact.split(\" \")[1]}`}\n )}\n\n {!startOtp && generateOtp && (\n \n Generate OTP\n \n )}\n\n {startOtp && (\n <>\n setOtp(e.target.value)}\n fullWidth\n sx={{ mt: 2 }}\n inputProps={{\n maxLength: 6,\n style: {\n backgroundColor: bgColor ? \"#fdecea\" : \"inherit\",\n },\n }}\n />\n \n {`OTP expires in ${isStartTimer ? timer : \"\"}`}\n \n \n Verify OTP\n \n \n )}\n\n {verifyOpen && (\n \n You have been verified successfully.\n \n )}\n\n \n \n
\n );\n}\n\nexport default VerifyPhoneNo;\n","import React from \"react\";\nimport { Typography, Container } from \"@mui/material\";\nimport ReactPlayer from \"react-player\";\n\nfunction IntroVideo({ setDisable }) {\n const handleProgress = (secs) => {\n if (secs > 1) {\n setDisable(false);\n }\n };\n\n return (\n \n \n \n Our teaching philosophy\n \n handleProgress(e.playedSeconds)}\n />\n \n \n );\n}\n\nexport default IntroVideo;\n","import React, { useState } from \"react\";\nimport { PATHS } from \"../../constant\";\nimport Stepper from \"@mui/material/Stepper\";\nimport Step from \"@mui/material/Step\";\nimport { useHistory } from \"react-router-dom\";\nimport { StepLabel } from \"@mui/material\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogContentText from \"@mui/material/DialogContentText\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport {\n Container,\n Box,\n AppBar,\n Toolbar,\n Typography,\n Button,\n Select,\n MenuItem,\n IconButton,\n} from \"@mui/material\";\nimport ArrowBackIosIcon from \"@mui/icons-material/ArrowBackIos\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport SelectTrack from \"./SelectTrack\";\nimport Confirmation from \"./Confirmation\";\nimport AttendClass from \"./AttendClass\";\nimport Availability from \"./Availability\";\nimport CodeOfConduct from \"./CodeOfConduct\";\nimport VerifyPhoneNo from \"./VerifyPhoneNo\";\nimport IntroVideo from \"./IntroVideo\";\nimport axios from \"axios\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { METHODS } from \"../../services/api\";\nimport { actions } from \"../User/redux/action\";\nimport { Link } from \"react-router-dom\";\nimport \"./styles.scss\";\nimport { getObjectState, saveObjectState } from \"../../common/storage\";\n\nfunction HorizontalLinearStepper() {\n let history = useHistory();\n const user = useSelector(({ User }) => User);\n const roles = user?.data?.user.rolesList; // TODO: Use selector for this\n const uid = user?.data?.user.id; // TODO: Factor out common logic used for selected role PR # 660\n const allUsersState = getObjectState(\"volunteer_automation\", \"state\");\n const currentState = allUsersState?.[uid] || {\n completed: [],\n };\n const dispatch = useDispatch();\n const [activeStep, setActiveStep] = React.useState(currentState.step || 0);\n const [skipped, setSkipped] = React.useState(new Set());\n const [completed, setCompleted] = React.useState(currentState.completed);\n const [disable, setDisable] = React.useState(!completed[activeStep]);\n const [contact, setContact] = useState(currentState.contact);\n const [pathwayId, setPathwayId] = useState(currentState.pathwayId || []);\n const [enrollId, setEnrollId] = useState(currentState.enrollId || null);\n const [open, setOpen] = React.useState(false);\n const [nextButton, setNextButton] = React.useState(\"true\");\n const [countryCode, setCountryCode] = React.useState(\"\");\n const [phone, setPhone] = React.useState(\"\");\n\n const current_time = new Date();\n const [availability, setAvailability] = React.useState(\n currentState.availability || {\n hours_per_week: \"\",\n available_on_days: [],\n available_on_time: {\n first_time: current_time,\n second_time: current_time,\n third_time: current_time,\n },\n }\n );\n\n const itemValues = { contact, enrollId, pathwayId, availability };\n\n const handleClickOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const updateAndSaveState = (setter, key, value) => {\n setter && setter(value);\n currentState[key] = value;\n saveObjectState(\"volunteer_automation\", \"state\", {\n ...allUsersState,\n [uid]: currentState,\n });\n };\n\n // Commented below code to redirect to volunteer onboarded form, even if the user has volunteer role.\n // React.useEffect(() => {\n // if (roles?.includes(\"volunteer\")) {\n // history.push(PATHS.CLASS);\n // }\n // }, [roles]);\n\n const setActiveStepCompleted = () => {\n const newCompleted = completed.slice();\n newCompleted[activeStep] = true;\n updateAndSaveState(setCompleted, \"completed\", newCompleted);\n };\n\n const steps = [\n {\n label: \"Verify Phone No.\",\n itemKey: \"contact\",\n component: (\n \n ),\n },\n {\n label: \"Select Track\",\n itemKey: \"pathwayId\",\n component: (\n \n ),\n },\n {\n label: \"Your Availability\",\n itemKey: \"availability\",\n component: (\n \n ),\n },\n {\n label: \"Intro Video\",\n component: ,\n },\n {\n label: \"Code of Conduct\",\n component: ,\n },\n // {\n // label: \"Attend Class\",\n // itemKey: \"enrollId\",\n // component: (\n // \n // ),\n // },\n {\n label: \"Confirmation\",\n component: ,\n },\n ];\n\n const isStepSkipped = (step) => {\n return skipped.has(step);\n };\n\n const setActiveStepHandler = (changeBy, prevActiveStep) => {\n const itemKey = steps[prevActiveStep]?.itemKey;\n const currentStep = prevActiveStep + changeBy;\n\n if (itemKey && !disable) {\n // button was enabled by Component for this step so it's completed\n // and we should therefore update the state for this key\n currentState[itemKey] = itemValues[itemKey];\n }\n\n setDisable(!completed[currentStep]);\n\n updateAndSaveState(null, \"step\", currentStep);\n return currentStep;\n };\n\n const handleNext = () => {\n let newSkipped = skipped;\n setActiveStepCompleted();\n // currentState.completed should be present if the user didn't\n // alter their localStorage but we'll check anyway to avoid a crash\n //currentState.completed && (currentState.completed[activeStep] = true);\n\n if (isStepSkipped(activeStep)) {\n newSkipped = new Set(newSkipped.values());\n newSkipped.delete(activeStep);\n }\n\n setActiveStep(setActiveStepHandler.bind(null, 1));\n setSkipped(newSkipped);\n };\n\n const handleBack = () => {\n setActiveStep(setActiveStepHandler.bind(null, -1));\n };\n\n const submit = () => {\n const contactNumber = contact.split(\"+\")[1].split(\" \").join(\"-\");\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/volunteers/Automation`,\n method: METHODS.POST,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n data: {\n contact: contactNumber,\n pathway_id: pathwayId,\n ...availability,\n },\n })\n .then(\n (res) => {\n try {\n localStorage.setItem(\"isNewVolunteer\", true);\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n history.push(PATHS.CLASS);\n return axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/users/volunteerRole`,\n method: METHODS.POST,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token,\n },\n })\n .then(\n (res) => {\n dispatch(\n actions.onUserRefreshDataIntent({ token: user.data.token })\n );\n },\n (error) => {\n console.log(error);\n }\n )\n .catch((err) => {});\n },\n (error) => {\n console.log(error);\n }\n )\n .catch((err) => {});\n };\n\n return (\n <>\n \n \n \n \n \n \n \n {\"Leave Registration?\"}\n \n \n \n Goals can change all the time. However, we will keep your\n registration progress intact in case you return back.\n \n \n \n \n \n \n \n \n \n \n \n Tutor Registration\n \n \n \n\n \n \n \n {steps.map((step, index) => {\n const stepProps = {};\n const labelProps = {};\n\n if (isStepSkipped(index)) {\n stepProps.completed = false;\n }\n return (\n \n \n {step.label}\n \n \n );\n })}\n \n \n \n <>\n {steps.map((step, index) => {\n if (activeStep === index) {\n return (\n \n \n {step.component}\n \n \n );\n }\n })}\n \n \n \n {activeStep > 0 && (\n }\n >\n Back\n \n )}\n\n \n {activeStep === steps.length - 1 ? (\n }\n onClick={submit}\n >\n Go to Dashboard\n \n ) : (\n nextButton && (\n }\n onClick={handleNext}\n disabled={disable}\n >\n Next\n \n )\n )}\n \n \n \n \n \n );\n}\n\nexport default HorizontalLinearStepper;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n videoContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n video: {\n maxWidth: \"100%\",\n },\n}));\nexport default useStyles;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { versionCode } from \"../../../constant\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../../services/api\";\n\nimport { Typography, Paper, Button, Grid } from \"@mui/material\";\nimport useStyles from \"./style\";\nconst YouTubePlaylist = ({\n setPlaylistVideos,\n playlistVideos,\n slicedVideos,\n setSlicedVideos,\n pageNumber,\n limit,\n}) => {\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n let recurring_id = null;\n\n // Getting the recurring_id and then calling youtubeBroadcast api to get the videos array to display videos.\n useEffect(() => {\n let isMounted = true;\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/7/ACBEnrolledBatches`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n const foundBatch = res.data.find((item) => item.recurring_id);\n if (foundBatch) {\n recurring_id = foundBatch.recurring_id;\n }\n })\n .then(() => {\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/youtubeBroadcast/${recurring_id}`,\n headers: {\n accept: \"application/json\",\n \"version-code\": versionCode,\n Authorization: user.data.token,\n },\n })\n .then((res) => {\n if (isMounted) {\n setPlaylistVideos(res.data);\n }\n })\n .catch((err) => {});\n })\n\n .catch((err) => {});\n\n return () => {\n isMounted = false;\n };\n }, [recurring_id]);\n\n // sliced videos setting:\n useEffect(() => {\n const slicedData = playlistVideos.slice(\n pageNumber * limit,\n (pageNumber + 1) * limit\n );\n setSlicedVideos(slicedData);\n }, [playlistVideos]);\n\n // ---------------------------------------------\n\n return (\n \n {slicedVideos.map((video) => (\n \n \n \n {video.title}\n \n
\n \n
\n \n window.open(\n `https://www.youtube.com/embed/${video.video_id}`,\n \"_blank\"\n )\n }\n >\n Go to YouTube\n \n
\n
\n ))}\n
\n );\n};\n\nexport default YouTubePlaylist;\n","import React, { useState } from \"react\";\nimport YouTubePlaylist from \"./YouTubePlaylist\";\nimport { Typography, Box, Container } from \"@mui/material\";\nimport ReactPaginate from \"react-paginate\";\n\nconst AmazonVideos = () => {\n const [playlistVideos, setPlaylistVideos] = useState([]);\n const [slicedVideos, setSlicedVideos] = useState([]);\n const [pageNumber, setPageNumber] = useState(0);\n const limit = 6;\n const totalCount = playlistVideos?.length;\n const pageCount = Math.ceil(totalCount / limit);\n const changePage = ({ selected }) => {\n setPageNumber(selected);\n };\n\n return (\n <>\n \n \n Amazon Coding Programmers\n
\n }\n nextLabel={}\n initialPage={0}\n marginPagesDisplayed={0}\n onPageChange={changePage}\n pageCount={pageCount}\n containerClassName=\"paginationBttns\"\n previousLinkClassName=\"previousBttn\"\n nextLinkClassName=\"nextBttn\"\n disabledClassName=\"paginationDisabled\"\n activeClassName=\"paginationActive\"\n />\n
\n
\n\n \n \n Batch 1\n \n \n \n
\n \n );\n};\n\nexport default AmazonVideos;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n listItem: {\n fontSize: \"1.125rem\",\n fontFamily: \"Noto Sans\",\n fontWeight: \"400\",\n lineHeight: \"1.5\",\n },\n headingMargin: {\n marginTop: \"32px\",\n },\n}));\n\nexport default useStyles;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport CreateClassComponent from \"../../components/Class\";\nimport ClassesList from \"../../components/Class/ClassList\";\nimport { useSelector } from \"react-redux\";\nimport \"../../components/Class/ClassList/styles.scss\";\nimport axios from \"axios\";\nimport { METHODS } from \"../../services/api\";\n// import \"./styles.scss\";\nimport useStyles from \"./styles\";\nimport {\n Container,\n Button,\n Modal,\n useMediaQuery,\n Box,\n Stack,\n Typography,\n Dialog,\n DialogTitle,\n DialogActions,\n} from \"@mui/material\";\nimport { List, ListItem, ListSubheader } from \"@mui/material\";\nimport { breakpoints } from \"../../theme/constant\";\nimport ClassForm from \"../../components/Class/ClassForm\";\n\nimport SuccessModel from \"../../components/Class/SuccessModel\";\nimport NewVolunteerCard from \"../../components/Class/NewVolunteerCard\";\n\nfunction GscoIdea() {\n const classes = useStyles();\n\n return (\n \n \n NavGurukul has developed a mobile-first platform called Meraki, which is\n already used by more than 55,000 learners across Haryana and\n Maharashtra. The students are taught skills such as Python, English,\n Typing, Scratch, and Web Development using a simple android phone and a\n keyboard (optional.)\n \n \n Alexa Chatbot:\n \n \n To introduce the learners to skills such as AI, ML, NLP, and IOT, we\n want to build a specific functionality in the application (both mobile -\n kotlin and web - reactjs) that will allow the learners to create an\n Alexa chatbot using blocks. In simpler words, without writing any code -\n students will be able to make functional chatbots that they can test on\n their phones or on Alexa devices. The Alexa Skills Kit (ASK) is a\n software development framework that enables you to create content called\n skills. Skills are like apps for Alexa. NavGurukul has already\n integrated Scratch - a block-based programming language with a simple\n visual interface that allows young people to create digital stories,\n games, and animations.\n \n \n This project involves building the following capabilities:\n \n \n \n Define and implement a basic set of scratch blocks to create the Alexa\n skill/app,\n \n \n Define and implement character blocks, motion blocks, control blocks,\n event blocks, and custom blocks mapped to the corresponding Alexa\n Programming Language.\n \n \n Define and implement a block to publish the Alexa skill/app to\n Alexa-enabled devices.\n \n \n \n Build a playground to learn blockchain:\n \n \n \n To build a playground for learning blockchain, the first step would be\n to create a chatbot that can explain the basics of blockchain\n technology to users. The chatbot should be able to answer questions\n about blockchain and provide helpful information, such as what a\n blockchain is, who invented it, and how it works. Additionally, it\n should be able to provide examples of real-world applications of\n blockchain technology and explain the benefits and risks associated\n with using it.\n \n \n Once the basics have been established, the chatbot can provide more\n advanced topics, such as how to create a blockchain, how to use smart\n contracts, and how to develop decentralized applications. The chatbot\n should also be able to provide resources and tutorials to help users\n get started with blockchain development.\n \n \n Finally, the chatbot can provide an interactive playground where users\n can practice using blockchain technology. This would include\n activities such as setting up a private blockchain network,\n programming a smart contract, or building a decentralized application.\n The chatbot should be able to provide helpful feedback and resources\n to help users complete the activities.\n \n \n \n Building a platform to learn technology in the user-preferred language:\n \n \n The goal of this project is to build a platform that leverages AI to\n identify language proficiency levels and create personalized language\n learning experiences for users. The platform will use a combination of\n natural language processing and machine learning algorithms to determine\n the learner's current level of proficiency in a target language and\n provide content that is tailored to their needs.\n
\n To achieve this, the following steps will be undertaken:\n
\n \n \n Develop an algorithm to identify the learner's current level of\n proficiency in the target language based on factors such as grammar,\n vocabulary, and writing style.\n \n \n Create a platform for delivering the learning content that can track\n the learner's progress and adjust the content based on their\n performance.\n \n \n Incorporate machine learning algorithms to continuously evaluate and\n improve the content, tailoring it to the individual needs and\n preferences of each learner.\n \n \n Offer a wide range of subjects, such as English as a Second Language,\n to accommodate a diverse group of learners.\n \n \n Continuously gather feedback from learners and make improvements to\n the platform based on that feedback to ensure that the solution is\n constantly evolving and improving.\n \n \n \n This project aligns well with the goals of Google Summer of Code as it\n involves using AI to improve education and make it more accessible and\n personalized for learners.\n \n \n );\n}\n\nexport default GscoIdea;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport { Button, Card, CardContent, Grid, Typography } from \"@mui/material\";\nimport AccessTimeIcon from \"@mui/icons-material/AccessTime\";\n\nconst ReportGenerate = () => {\n const user = useSelector(({ User }) => User); // Use inside the component\n const [csvUpdatedTime, setCSVUpdatedTime] = useState({});\n \n\n useEffect(() => {\n if (user?.data?.token) {\n axios({\n method: \"GET\",\n url: `${process.env.REACT_APP_MERAKI_URL}/tcb/csv/read-date-csv`,\n headers: { accept: \"application/json\", Authorization: user.data.token },\n })\n .then((response) => {\n setCSVUpdatedTime(response.data);\n })\n .catch((err) => {\n console.log(err);\n });\n }\n }, [user?.data?.token]); // Add token as dependency\n\n const downloadReport = (url, fileName = \"report.csv\") => {\n if (!url) {\n console.error(\"URL is required to download the report.\");\n return;\n }\n\n if (!user?.data?.token) {\n console.error(\"User token is missing.\");\n return;\n }\n\n axios({\n method: \"GET\",\n url: url,\n headers: { accept: \"application/json\", Authorization: user.data.token },\n responseType: \"blob\",\n })\n .then((res) => {\n const blob = new Blob([res.data]);\n const downloadUrl = window.URL.createObjectURL(blob); // Changed variable name\n const link = document.createElement(\"a\");\n link.href = downloadUrl;\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // Clean up the DOM\n })\n .catch((err) => {\n console.error(\"Error downloading the report:\", err);\n alert(\"Failed to download the report. Please try again.\");\n });\n };\n\n const studentReport1 = () => {\n const reportUrl = `${process.env.REACT_APP_MERAKI_URL}/tcb/csv/progress/roport`;\n downloadReport(reportUrl);\n };\n\n const studentReport2 = () => {\n const reportUrl = `${process.env.REACT_APP_MERAKI_URL}/tcb/csv/last-week/login-report`;\n downloadReport(reportUrl);\n };\n\n return (\n
\n peepul india\n \n MCDigital Course-2.0\n \n \n \n \n \n \n All Time Student Progress Report\n \n \n \n Last updated on {csvUpdatedTime?.allUsersDetailUpdatedOn} at{\" \"}\n {csvUpdatedTime?.at}\n \n \n The report contains student progress since the start of the\n programme until the present day.\n \n \n Download Report\n \n \n \n \n \n \n \n \n Seven Days Student Progress Report\n \n \n \n Last updated on{\" \"}\n {csvUpdatedTime?.lastWeekUsersLoginDetailsUpdatedOn} at{\" \"}\n {csvUpdatedTime?.at}\n \n \n The report contains student progress from the last 7 days\n until the present day.\n \n \n Download Report\n \n \n \n \n \n
\n );\n \n};\n\nexport default ReportGenerate;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Container,\n Grid,\n Typography,\n Box,\n Card,\n CardContent,\n CardActions,\n LinearProgress,\n} from \"@mui/material\";\nimport { METHODS } from \"../../../services/api\";\nimport axios from \"axios\";\nimport { useSelector } from \"react-redux\";\nimport useStyles from \"../styles\";\nimport { PATHS, interpolatePath } from \"../../../constant\";\nimport { Link } from \"react-router-dom\";\nimport LockIcon from \"@mui/icons-material/Lock\";\nimport LockOpenIcon from \"@mui/icons-material/LockOpen\";\nimport { toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\nimport DOMPurify from \"dompurify\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport get from \"lodash/get\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../../theme/constant\";\n\ntoast.configure();\n\nfunction UnsafeHTML(props) {\n const { html, Container, ...otherProps } = props;\n const sanitizedHTML = DOMPurify.sanitize(html);\n return (\n \n );\n}\n\nfunction Aidcxpathway() {\n const user = useSelector(({ User }) => User);\n const [pathway, setPathway] = useState([]);\n const [allCourses, setAllCourses] = useState([]);\n const classes = useStyles();\n const history = useHistory();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n useEffect(() => {\n if (localStorage.getItem(\"studentAuth\") === null) history.push(\"/login\");\n\n axios({\n method: METHODS.GET,\n url: `${process.env.REACT_APP_MERAKI_URL}/pathways/aidcx`,\n headers: {\n accept: \"application/json\",\n Authorization: localStorage.getItem(\"studentAuthToken\"),\n },\n })\n .then((response) => {\n console.log(response, \"RESPONSE\");\n console.log(response?.data?.data?.courses, \"courses\");\n setAllCourses(response?.data?.data?.courses);\n if (pathway?.length < 1) setPathway(response?.data);\n })\n .catch((err) => {});\n }, []);\n\n const filterCourses = pathway?.modules?.filter((item) => {\n return item.courses.length > 0;\n });\n\n const [unlockedCourses, setUnlockedCourses] = useState([]);\n\n // Function to check if a course is unlocked\n\n // Effect to automatically unlock courses when their percentage reaches 100\n // useEffect(() => {\n // filterCourses &&\n // filterCourses.forEach((item, index) => {\n // const lastCourseIndex = item.courses.length - 1;\n // item.courses.forEach((course, courseindex) => {\n // if (course.completed_portion === 100) {\n // if (courseindex < lastCourseIndex) {\n // const nextCourse = item.courses[courseindex + 1];\n // if (!isCourseUnlocked(nextCourse.id)) {\n // // Automatically unlock the next course\n // setUnlockedCourses([...unlockedCourses, nextCourse.id]);\n // }\n // }\n // }\n // if (item.completed_portion === 100) {\n // if (index < filterCourses.length - 1) {\n // const nextItem = filterCourses[index + 1];\n // const firstCourseOfNextItem = nextItem.courses[0];\n\n // if (!isCourseUnlocked(firstCourseOfNextItem.id)) {\n // setUnlockedCourses([\n // ...unlockedCourses,\n // firstCourseOfNextItem.id,\n // ]);\n // }\n // }\n // }\n // });\n // });\n // }, [unlockedCourses, filterCourses]);\n\n const isCourseUnlocked = (courseId) => {\n return unlockedCourses.includes(courseId);\n };\n\n return (\n \n \n \n \n Learning AIDCX-pathway\n \n \n {pathway?.name}\n \n \n {pathway?.description}\n \n \n \n\n \n \n {allCourses.map((course, index) => {\n return (\n \n \n \n {/* Top Box that grows to push CardContent & CardActions down */}\n \n \n \n\n \n \n {/* Always display the index number */}\n \n {index + 1}\n \n {course.name}\n \n \n\n \n \n \n \n \n \n );\n })}\n \n \n \n );\n}\nexport default Aidcxpathway;\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\nimport { PrivateRoute } from \"./Routes\";\n// import { userRoles } from '../services/auth'\nimport Home from \"../pages/Home\";\nimport { PATHS } from \"../constant\";\nimport Login from \"../pages/Login\";\nimport CreateClass from \"../pages/CreateClass\";\nimport Mentor from \"../pages/Mentor\";\nimport User from \"../components/User\";\nimport PrivacyPolicy from \"../components/PrivacyPolicy\";\nimport PartnerData from \"../components/Dashboard/PartnerData\";\nimport StudentData from \"../components/Dashboard/StudentData\";\nimport StudentClassData from \"../components/Dashboard/StudentClassData\";\nimport Profile from \"../pages/Profile\";\nimport Opportunities from \"../pages/Opportunities\";\nimport AFEpage from \"../components/AFEpage\";\nimport NavgurukulIntroduce from \"../pages/Navgurukul\";\n// import Admission from \"../pages/Navgurukul/merakiAdmission\";\nimport RedirectComponent from \"../components/common/RedirectComponent\";\nimport VolunteerDashboard from \"../components/VolunteerDashbord/VolunteerDetails\";\nimport VolunteerOverview from \"../components/VolunteerDashbord/IndividualVolunteers\";\nimport StatePartnerDashboard from \"../pages/StatePartnerDashboard\";\nimport OurStory from \"../pages/OurStory\";\nimport NewUserDashbord from \"../components/NewUserDashbord\";\nimport Team from \"../pages/Team\";\nimport Partner from \"../pages/OurPartner\";\nimport PathwayExercise from \"../components/PathwayExercise/\";\nimport PathwayCourse from \"../components/PathwayCourse\";\nimport ResidentialCourse from \"../components/PathwayCourse/ResidentialCourse\";\nimport MiscellaneousCourses from \"../components/PathwayCourse/MiscellaneousCourses\";\nimport SearchCourse from \"../components/SearchBar\";\nimport ReturningUserPage from \"../components/ReturningUser/ReturningUserPage\";\nimport VolunteerAutomation from \"../components/VolunteerAutomation\";\nimport VolunteerForm from \"../components/VolunteerAutomation/Stepper\";\nimport ClassCard from \"../components/Class/ClassCard\";\nimport AmazonVideos from \"../components/PathwayCourse/AmazonCodingProgrammer/AmazonVideos\";\n// import ClassFormModel from \"../components/BatchClassComponents/ClassFormModel\";\nimport GsocIdea from \"../pages/GsocIdea/GsocIdea\";\nimport C4CApathway from \"../components/PathwayCourse/C4CApathway\";\nimport ReportGenerate from \"../pages/ReportGenerate/ReportGenerate\";\nimport Aidcxpathway from \"../components/PathwayCourse/Aidcxpathway\";\n// import Credits from \"../pages/Credits\";\n\nconst Routing = () => {\n return (\n <>\n\n {/* Public routes */}\n {/* Route home page to login in */}\n \n \n \n \n \n \n\n \n \n \n \n \n {/* */}\n\n \n \n \n \n \n\n \n\n \n \n \n \n\n {/* Private routes */}\n\n \n\n \n {/* */}\n \n {/* */}\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n {/* } /> */}\n\n \n );\n};\n\nexport default Routing;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n link: {\n textDecoration: \"none\",\n color: \"black\",\n },\n box: {\n padding: \"20px 0px 0px 20px\",\n },\n mobileBox: {\n width: 415,\n height: \"100%\",\n },\n RightBox: {\n flexGrow: 1,\n display: { xs: \"flex\", md: \"none\" },\n },\n crossIcon: {\n flexGrow: 0,\n paddingRight: \"50px\",\n },\n meraki: {\n flexGrow: 1,\n },\n merakiLearn: {\n flexGrow: 0,\n display: { xs: \"none\", md: \"flex\" },\n },\n button: {\n textDecoration: \"none\",\n color: \"white\",\n },\n bgColor: {\n background: \"#e9f5e9\",\n },\n active: {\n color: \"#48a145\",\n },\n buttonLink: {\n textDecoration: \"none\",\n },\n scratchLink: {\n height: \"36px\",\n padding: \"6px 16px\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover\": {\n backgroundColor: \"#E9F5E9\",\n borderRadius: \"8px\",\n },\n },\n donate: {\n height: \"36px\",\n padding: \"6px 16px\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:hover\": {\n backgroundColor: \"#E9F5E9\",\n borderRadius: \"8px\",\n },\n },\n}));\n\nexport default useStyles;\n","import React from \"react\";\nimport {\n Typography,\n MenuItem,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from \"@mui/material\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport Message from \"../common/Message\";\n\n// TODO: Make it conform to this signature, adding properties as necessary\n/**\n * Component for representing a mobile dropdown AccordionDropDown menu.\n * @param {string} textMsgKey the constant key for the text to display on the menu item toggling\n * the dropdown\n * @param {Array.=} textArgs an optional arguments Array to supply to\n * the Message component\n * @param {Array.} options the Array of options in the dropdown menu\n */\nexport default function AccordionDropDownMenu({\n textMsgKey,\n textArgs,\n // options,\n children,\n}) {\n return (\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n sx={{ width: 380 }}\n >\n \n \n \n \n {children}\n \n );\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport { MenuItem } from \"@mui/material\";\nimport useStyles from \"./styles\";\n\nexport default function DropdownLink({\n to,\n external,\n padding,\n margin,\n linkOnClick,\n children,\n ...props\n}) {\n const A = external ? ExternalLink : Link;\n const toKey = external ? \"href\" : \"to\";\n const classes = useStyles();\n return (\n \n \n {children}\n \n \n );\n}\n","import React, { useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport useStyles from \"./styles\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as pathwayActions } from \"../PathwayCourse/redux/action\";\nimport AccordionDropDownMenu from \"./AccordionDropDownMenu\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport DropdownLink from \"./DropdownLink\";\nimport LaunchIcon from \"@mui/icons-material/Launch\";\nimport Message from \"../common/Message\";\nimport { LEARN_KEY, ABOUT_KEY, GET_INVOLVED_KEY, MENU_ITEMS } from \"./constant\";\nimport { PATHWAYS_INFO } from \"../../constant\";\nimport {\n Typography,\n Menu,\n MenuItem,\n CardContent,\n Divider,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n} from \"@mui/material\";\n\nconst students = {\n [LEARN_KEY]: [],\n [ABOUT_KEY]: [\n { name: \"Our Story\", path: PATHS.OUR_STORY, type: \"internal\" },\n { name: \"Meraki Team\", path: PATHS.TEAM, type: \"internal\" },\n ],\n [GET_INVOLVED_KEY]: [\n {\n name: ,\n path: PATHS.VOLUNTEER_AUTOMATION,\n type: \"internal\",\n },\n {\n name: \"Our Partner\",\n path: PATHS.OUR_PARTNER,\n type: \"internal\",\n },\n // {\n // name: ,\n // path: \"https://www.navgurukul.org/donate\",\n // type: \"external\",\n // },\n {\n name: \"Careers\",\n path: \"https://recruiterflow.com/navgurukul/jobs\",\n type: \"external\",\n },\n ],\n};\n\nexport const MobileDropDown = ({ menuKey, handleClose, toggleDrawer }) => {\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n const dispatch = useDispatch();\n const { data } = useSelector((state) => state.PathwaysDropdow);\n // const { language, MSG } = useLanguageConstants(); //useContext(LanguageProvider);\n\n // useEffect(() => {\n // dispatch(\n // pathwayActions.getPathwaysDropdown({\n // authToken: user,\n // })\n // );\n // }, [dispatch, user]);\n\n const miscellaneousPathway = data?.pathways.filter((pathway) =>\n PATHWAYS_INFO.some((miscPathway) => pathway.name === miscPathway.name)\n );\n const pathwayData = data?.pathways\n .filter((pathway) => !miscellaneousPathway.includes(pathway))\n .concat(miscellaneousPathway);\n\n data?.pathways && (students[LEARN_KEY] = pathwayData);\n\n return (\n \n {students[menuKey].map((menu, index) => {\n if (menu.type === \"external\") {\n return (\n \n \n {menuKey === LEARN_KEY && (\n \n )}\n \n \n {menu.name}\n \n \n \n \n \n );\n } else {\n return (\n \n \n {menuKey === LEARN_KEY && (\n \n )}\n \n \n {menu.name}\n \n \n \n \n );\n }\n })}\n \n );\n};\n\nexport const DropDown = ({\n dropDown,\n //handleClose,\n toggleDrawer,\n //setInDropdown,\n //handleMouseLeave,\n}) => {\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n const dispatch = useDispatch();\n const { data } = useSelector((state) => state.PathwaysDropdow);\n\n // useEffect(() => {\n // dispatch(\n // pathwayActions.getPathwaysDropdown({\n // authToken: user,\n // })\n // );\n // }, [dispatch, user]);\n\n return (\n <>\n {dropDown &&\n students[dropDown].map((menu, index) => {\n if (menu.type === \"external\") {\n return (\n <>\n \n \n {menu.name}\n \n \n \n {dropDown === LEARN_KEY &&\n index === students[dropDown].length - 3 && }\n \n );\n } else {\n return (\n <>\n \n {dropDown === LEARN_KEY && (\n \n )}\n \n {menu.name}\n \n \n {dropDown === LEARN_KEY &&\n index === students[dropDown].length - 3 && }\n \n );\n }\n })}\n \n );\n};\n","import React from \"react\";\nimport useStyles from \"./styles\";\n\nimport { Typography, MenuItem } from \"@mui/material\";\nimport { NavLink } from \"react-router-dom\";\nimport OpenInNewIcon from \"@mui/icons-material/OpenInNew\";\nfunction HeaderNavLink({ to, text, toggleDrawer, externalLink }) {\n const classes = useStyles();\n\n function handleLinkClick(event) {\n if (externalLink) {\n event.preventDefault();\n window.open(to, externalLink ? \"_blank\" : \"_self\");\n }\n }\n\n return (\n \n \n \n {text}\n {externalLink && (\n \n )}\n \n \n \n );\n}\nexport default HeaderNavLink;\n","import React from \"react\";\nimport { isTouchScreen } from \"../../common/utils\";\nimport Menu from \"@mui/material/Menu\";\n\n/**\n * Component for representing a dropdown menu with a visible toggling button.\n * Clicking on the button the first time (or also hovering over it on a non-touch\n * screen) opens the menu clicking on the button a second time or on the menu option\n * closes it. The menu is also closed after a delay after moving off of it\n * (on a non-touch screen).\n * @param {ReactElement} DropDownButton the button to toggle the opening/closing of the menu\n * @param {object=} menuContainerProps properties of the menu\n * @param {number=} delay the delay in ms for which to close the menu on a non-touch screen after\n * the pointer is moved off of it, defaults to 200\n * @param {boolean=} attachRight true exactly when the dropdown menu's right edge should coincide\n * with the right of the toggle button\n * @param {Function=} onOpenMenu an optional handler that's called when the menu is opened\n * @param {Function=} onCloseMenu an optional handler that's called when the menu is closed\n * @param {Array.} children the Array of options in the dropdown menu\n */\nexport default function DropDownMenu({\n DropDownButton,\n menuContainerProps,\n delay,\n attachRight,\n onOpenMenu,\n onCloseMenu,\n children,\n}) {\n const [inDropdown, setInDropdown] = React.useState({\n inProgress: false,\n value: false,\n });\n\n // const ref = React.useRef(null);\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n // #802: part of hack to make button clickable over presentation layer\n // when menu is open, needed for sidebar\n const [offsetX, setOffsetX] = React.useState(0);\n const [offsetY, setOffsetY] = React.useState(0);\n // We can just adjust the margin left/top of the presentation layer when\n // attaching the menu to the left, but the hack won't work if attaching\n // to the right. In that case, we use a preset margin-top which is set\n // for the current heading.\n const useOffset = !attachRight;\n const offset = useOffset\n ? { ml: offsetX + \"px\", mt: offsetY + \"px\" }\n : { mt: \"45px\" };\n\n const inDropdownRef = React.useRef(inDropdown);\n inDropdownRef.current = inDropdown;\n\n const handleOpenMenu = (event) => {\n typeof onOpenMenu === \"function\" && onOpenMenu(event);\n setAnchorEl(event.currentTarget);\n setOffsetX(event.currentTarget.getBoundingClientRect().left);\n setOffsetY(event.currentTarget.getBoundingClientRect().bottom);\n /*\n setOffsetY(\n event.currentTarget.getBoundingClientRect().bottom -\n event.currentTarget.getBoundingClientRect().height / 2 +\n 6\n );\n */\n };\n\n const handleCloseMenu = () => {\n typeof onCloseMenu === \"function\" && onCloseMenu();\n setAnchorEl(null);\n };\n\n const updateInDropdownState = () => {\n setInDropdown({ inProgress: true, value: false });\n setTimeout(\n () =>\n setInDropdown({\n value: inDropdownRef.current?.value,\n inProgress: false,\n }),\n delay || 200\n );\n };\n\n const DropDownButtonWithHandlers = React.cloneElement(DropDownButton, {\n onMouseEnter: (e) => {\n if (typeof DropDownButton.props.onMouseEnter === \"function\") {\n DropDownButton.props.onMouseEnter(e);\n }\n if (!isTouchScreen()) {\n setInDropdown({ value: true, inProgress: false });\n handleOpenMenu(e);\n }\n },\n onMouseLeave: (e) => {\n if (typeof DropDownButton.props.onMouseLeave === \"function\") {\n DropDownButton.props.onMouseLeave(e);\n }\n\n if (!isTouchScreen()) {\n updateInDropdownState();\n }\n },\n onClick: (e) => (anchorEl ? handleCloseMenu() : handleOpenMenu(e)),\n /*\n style: {\n // #802: hack to make button clickable over presentation layer when menu is open\n // This won't work because its header parent has a lower z-index than the modal\n // We can change this \n // (https://mui.com/material-ui/customization/default-theme/?expand-path=$.zIndex)\n // but its an even worse hack and the shadow will appear under the header. \n position: 'relative',\n zIndex: (menuContainerProps?.zIndex || 0) + 10000,\n ...DropDownButton.props.style,\n },\n */\n });\n\n React.useEffect(() => {\n if (!inDropdown.inProgress && !inDropdown.value) {\n // mouse has moved out of main menu item and its\n // dropdown after delay milliseconds\n // menuCloseHandler();\n //console.log(inDropdown);\n handleCloseMenu();\n }\n }, [inDropdown]);\n\n // React.useEffect(() => {\n // const handleClickOutside = (event) => {\n // if (\n // !ref?.current?.contains(event.target) &&\n // !inDropdown.inProgress &&\n // !inDropdown.value\n // ) {\n // handleCloseMenu();\n // }\n // };\n // document.addEventListener(\"mousedown\", handleClickOutside);\n // }, []);\n\n return (\n <>\n {DropDownButtonWithHandlers}\n \n !isTouchScreen() &&\n setInDropdown({ value: true, inProgress: false }),\n onMouseLeave: () => !isTouchScreen() && updateInDropdownState(),\n onClick: handleCloseMenu,\n }}\n hideBackdrop\n open={!!anchorEl}\n // To resolve issue https://github.com/mui/material-ui/issues/5185\n disableScrollLock={true}>\n {children}\n \n \n );\n}\n","import React from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as userActions } from \"../../User/redux/action\";\nimport { PATHS } from \"../../../constant\";\nimport { Link, NavLink } from \"react-router-dom\";\nimport {\n Box,\n IconButton,\n Typography,\n Menu,\n Avatar,\n MenuItem,\n} from \"@mui/material\";\nimport useStyles from \"../styles\";\nimport Message from \"../../common/Message\";\nimport DropDownMenu from \"../DropDownMenu\";\n// import { isTouchScreen } from \"../../../common/utils\";\n\n// function UserMenu({ profile }) {\nfunction UserMenu() {\n // const [anchorElUser, setAnchorElUser] = React.useState(null);\n const classes = useStyles();\n const dispatch = useDispatch();\n const user = useSelector(({ User }) => User);\n const profilePict = user?.data?.user?.profile_picture;\n const name = user?.data?.user?.name;\n\n /*\n React.useEffect(() => {\n sendToken({ token: user.data.token }).then((res) => {\n setProfile(res.data.user.profile_picture);\n });\n }, []);\n*/\n\n /*\n const handleOpenUserMenu = (event) => {\n setAnchorElUser(event.currentTarget);\n };\n\n const handleCloseUserMenu = () => {\n setAnchorElUser(null);\n };\n */\n\n return (\n \n \n \n \n }\n menuContainerProps={{\n // sx: { mt: '45px' },\n id: \"menu-appbar\",\n /*\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n keepMounted: true,\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n */\n }}\n attachRight\n >\n \n \n \n \n \n \n \n {/* \n \n NG Admissions\n \n */}\n \n \n Opportunities\n \n \n dispatch(userActions.logout())}\n className={classes.link}\n >\n \n \n \n \n \n \n \n \n );\n}\n\nexport default UserMenu;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport HeaderNavLink from \"../HeaderNavlink\";\nimport Message from \"../../common/Message\";\nimport { PATHS } from \"../../../constant\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport {\n Box,\n // Typography,\n // Menu,\n // MenuItem,\n Button,\n} from \"@mui/material\";\n\nfunction SearchHeader() {\n return (\n \n {/* \n }>\n \n \n */}\n \n );\n}\n\nexport default SearchHeader;\n","import React from \"react\";\nimport DropDownMenu from \"./DropDownMenu\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Typography from \"@mui/material/Typography\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport Message from \"../common/Message\";\n\n/**\n * Component for representing a dropdown menu with a visible multilingual text toggling\n * button with expanding more/less icon.\n * Clicking on the button the first time (or also hovering over it on a non-touch\n * screen) opens the menu while clicking on the button a second time or on the menu\n * option closes it. The menu is also closed after a delay after moving off of it\n * (on a non-touch screen).\n * @param {string} btnTextMsgKey the constant key for the text to display on the button\n * @param {Array.=} btnTextArgs an optional arguments Array to supply to\n * the Message component\n * @param {object=} menuContainerProps properties of the menu\n * @param {number=} delay the delay for which to close the menu on a non-touch screen after\n * the pointer is moved off of it\n * @param {boolean=} attachRight true exactly when the dropdown menu's right edge should coincide\n * with the right of the toggle button\n * @param {Array.} children the Array of options in the dropdown menu\n */\nexport default function TextButtonDropDownMenu({\n btnTextMsgKey,\n btnTextArgs,\n menuContainerProps,\n delay,\n attachRight,\n children,\n ...otherProps\n}) {\n const [isOpen, setIsOpen] = React.useState(false);\n return (\n \n \n \n \n {isOpen ? : }\n \n }\n onOpenMenu={() => setIsOpen(true)}\n onCloseMenu={() => setIsOpen(false)}\n attachRight={attachRight}\n delay={delay}\n menuContainerProps={menuContainerProps}\n >\n {children}\n \n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useLocation } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { METHODS } from \"../../services/api\";\nimport { breakpoints } from \"../../theme/constant\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { useSearchQuery } from \"../../common/search\";\nimport {\n Box,\n TextField,\n Container,\n Typography,\n Grid,\n Card,\n Button,\n Tooltip,\n Popper,\n setRef,\n} from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport { Popover, InputAdornment, Modal } from \"@mui/material\";\nimport SearchOutlinedIcon from \"@mui/icons-material/SearchOutlined\";\nimport Backdrop from \"@mui/material/Backdrop\";\nimport axios from \"axios\";\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nfunction SearchPopup() {\n const { data } = useSelector(({ Course }) => Course);\n const user = useSelector(({ User }) => User);\n const userId = user.data?.user?.id;\n const pathway = useSelector((state) => state.Pathways);\n const dispatch = useDispatch();\n // const [recentSearch,setrecentSearch]=useState(\"\")\n const [search, setSearch] = useState(\"\");\n const [focus, setFocus] = useState(true);\n useSearchQuery(setSearch);\n const history = useHistory();\n const classes = useStyles();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n const [anchorEl, setAnchorEl] = useState(null);\n const [popular, setPopular] = useState([]);\n const [recentSearch, setRecentSearch] = useState([]);\n\n const prevSearch = usePrevious(search);\n\n const handleClick = (event) => {\n setAnchorEl(anchorEl ? null : event.currentTarget);\n };\n\n const open = Boolean(anchorEl);\n const id = open ? \"simple-popper\" : undefined;\n\n const handleSearchChange = (e) => {\n if (e.key == \"Enter\") {\n if (e.target.value == \"\") {\n if (!search == \"\") {\n history.replace(`/search-course/?search=${prevSearch}`);\n }\n } else {\n history.replace(`/search-course/?search=${e.target.value}`);\n }\n setAnchorEl(null);\n e.preventDefault();\n }\n };\n\n const handleSearchBar = (e) => {\n history.replace(`/search-course/?search=${e.target.value}`);\n setAnchorEl(null);\n };\n\n useEffect(() => {\n axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/search/popular`,\n method: METHODS.GET,\n headers: {\n accept: \"application/json\",\n Authorization: false,\n },\n })\n .then((res) => {\n setPopular(res.data.top_popular);\n })\n .catch((err) => {});\n }, []);\n\n useEffect(() => {\n if (user.data !== null) {\n axios({\n url: `${process.env.REACT_APP_MERAKI_URL}/search/${userId}`,\n method: METHODS.GET,\n headers: {\n accept: \"application/json\",\n Authorization: user.data.token || null,\n },\n })\n .then((res) => {\n setRecentSearch(res.data.user_search);\n })\n .catch((err) => {});\n }\n }, []);\n\n const pathwayCourseIds =\n pathway.data?.pathways\n .map((pathway) => pathway.courses || [])\n .flat()\n .map((course) => course.id) || [];\n const otherCourseResults = data?.allCourses.filter((item) => {\n return (\n // item.course_type === \"json\" &&\n !pathwayCourseIds.includes(item.id) &&\n item.name.toLowerCase().includes(search.toLowerCase())\n );\n });\n const pathwayTrackResults = pathway.data?.pathways\n .map((pathway) => {\n return {\n ...pathway,\n courses: pathway.courses?.filter((course) => {\n return course.name.toLowerCase().includes(search.toLowerCase());\n }),\n };\n })\n .filter((pathway) => pathway.courses?.length > 0);\n\n const hasSearchResults =\n pathwayTrackResults?.length > 0 || otherCourseResults?.length > 0;\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n // const recent = JSON.parse(localStorage.getItem(\"recent\"));\n\n return (\n <>\n \n\n \n \n \n \n \n \n ),\n }}\n sx={{ margin: \"40px 0px 32px 0px\" }}\n inputRef={(input) => {\n if (input != null) {\n input.focus();\n }\n }}\n variant=\"standard\"\n fullWidth\n onKeyPress={handleSearchChange}\n onChange={(e) => {\n setSearch(e.target.value);\n }}\n />\n\n <>\n {recentSearch && recentSearch?.length ? (\n <>\n Recent Searches\n\n \n {recentSearch.map((item) => (\n \n \n \n ))}\n \n \n ) : (\n <>\n Popular Searches\n \n {popular.map((item) => (\n \n \n \n ))}\n \n \n )}\n \n \n \n \n \n );\n}\nexport default SearchPopup;\n","import React from \"react\";\n\nimport { DropDown, MobileDropDown } from \"../DropDown\";\nimport { Box, Typography, Menu, MenuItem, Button } from \"@mui/material\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport HeaderNavLink from \"../HeaderNavlink\";\nimport SearchHeader from \"../SearchHeader\";\nimport Message from \"../../common/Message\";\nimport { PATHS } from \"../../../constant\";\nimport TextButtonDropDownMenu from \"../TextButtonDropDownMenu\";\nimport LaunchOutlinedIcon from \"@mui/icons-material/LaunchOutlined\";\nimport {\n LEARN_KEY,\n MENU_ITEMS,\n // ROLES,\n // ADMIN_ROLE_KEY as ADMIN,\n // PARTNER_ROLE_KEY as PARTNER,\n // PARTNER_VIEW_ROLE_KEY as PARTNER_VIEW,\n // PARTNER_EDIT_ROLE_KEY as PARTNER_EDIT,\n // STUDENT_ROLE_KEY as STUDENT,\n // VOLUNTEER_ROLE_KEY as VOLUNTEER,\n} from \"../constant\";\nimport SearchPopup from \"../../SearchBar/SearchPopup\";\nimport ExternalLink from \"../../common/ExternalLink\";\nimport useStyles from \"../../Header\";\n\nfunction CommonLeftStudentHeader({ toggleDrawer }) {\n const classes = useStyles();\n return (\n <>\n }\n toggleDrawer={toggleDrawer}\n />\n }\n toggleDrawer={toggleDrawer}\n externalLink=\"true\"\n />\n \n );\n}\n\nfunction StudentHeader({ leftDrawer, toggleDrawer, onlyRole }) {\n const [learn, setLearn] = React.useState(null);\n\n const handleCloseLearn = () => {\n setLearn(null);\n };\n\n return (\n <>\n \n \n \n \n\n \n \n \n \n \n \n\n \n {!leftDrawer && }\n\n {/* }\n toggleDrawer={toggleDrawer}\n />\n }\n toggleDrawer={toggleDrawer}\n /> */}\n \n \n );\n}\n\nexport default StudentHeader;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport HeaderNavLink from \"../HeaderNavlink\";\nimport SearchHeader from \"../SearchHeader\";\nimport Message from \"../../common/Message\";\nimport { PATHS } from \"../../../constant\";\nimport SearchPopup from \"../../SearchBar/SearchPopup\";\n\nfunction AdminHeader({ leftDrawer, toggleDrawer }) {\n const user = useSelector(({ User }) => User);\n const partnerGroupId = user.data.user.partner_group_id;\n\n return (\n <>\n \n {/* }\n toggleDrawer={toggleDrawer}\n /> */}\n }\n toggleDrawer={toggleDrawer}\n />\n {/* \n }\n toggleDrawer={toggleDrawer}\n /> */}\n\n }\n toggleDrawer={toggleDrawer}\n />\n }\n toggleDrawer={toggleDrawer}\n />\n {partnerGroupId && (\n \n }\n toggleDrawer={toggleDrawer}\n />\n )}\n \n {!leftDrawer && }\n \n );\n}\n\nexport default AdminHeader;\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport HeaderNavLink from \"../HeaderNavlink\";\nimport SearchHeader from \"../SearchHeader\";\nimport Message from \"../../common/Message\";\nimport { PATHS } from \"../../../constant\";\nimport SearchPopup from \"../../SearchBar/SearchPopup\";\n\nfunction VolunteerHeader({ leftDrawer, toggleDrawer }) {\n return (\n <>\n \n }\n toggleDrawer={toggleDrawer}\n />\n \n {!leftDrawer && }\n \n );\n}\n\nexport default VolunteerHeader;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"@mui/material\";\nimport HeaderNavLink from \"../HeaderNavlink\";\nimport SearchHeader from \"../SearchHeader\";\nimport Message from \"../../common/Message\";\nimport { PATHS } from \"../../../constant\";\nimport SearchPopup from \"../../SearchBar/SearchPopup\";\n\nfunction PartnerHeader({ leftDrawer, toggleDrawer }) {\n const user = useSelector(({ User }) => User);\n const partnerId = user.data.user.partner_id;\n const partnerGroupId = user.data.user.partner_group_id;\n\n return (\n <>\n \n \n }\n toggleDrawer={toggleDrawer}\n />\n \n {!leftDrawer && }\n \n );\n}\n\nexport default PartnerHeader;\n","import React from \"react\";\nimport StudentHeader from \"../StudentHeader\";\nimport AdminHeader from \"../AdminHeader\";\nimport VolunteerHeader from \"../VolunteerHeader\";\nimport PartnerHeader from \"../PartnerHeader\";\nimport {\n ADMIN_ROLE_KEY as ADMIN,\n PARTNER_ROLE_KEY as PARTNER,\n STUDENT_ROLE_KEY as STUDENT,\n VOLUNTEER_ROLE_KEY as VOLUNTEER,\n} from \"../constant\";\n\nfunction RoleSpecificHeader({ role, isUniqueRole, leftDrawer, toggleDrawer }) {\n const drawerProps = { leftDrawer, toggleDrawer };\n\n const roleSpecificComponentMap = {\n [STUDENT]: ,\n [ADMIN]: ,\n [VOLUNTEER]: ,\n [PARTNER]: ,\n };\n\n return roleSpecificComponentMap[role] || \"\";\n}\n\nexport default RoleSpecificHeader;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { NavLink, useLocation, useHistory } from \"react-router-dom\";\nimport { PATHS } from \"../../../constant\";\nimport useStyles from \"../styles\";\nimport { Box, Typography, Menu, MenuItem } from \"@mui/material\";\nimport TextButtonDropDownMenu from \"../TextButtonDropDownMenu\";\n// import ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\n// import ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport Message from \"../../common/Message\";\nimport {\n MENU_ITEMS,\n ROLES,\n ADMIN_ROLE_KEY as ADMIN,\n PARTNER_ROLE_KEY as PARTNER,\n PARTNER_VIEW_ROLE_KEY as PARTNER_VIEW,\n PARTNER_EDIT_ROLE_KEY as PARTNER_EDIT,\n STUDENT_ROLE_KEY as STUDENT,\n VOLUNTEER_ROLE_KEY as VOLUNTEER,\n} from \"../constant\";\nimport AccordionDropDownMenu from \"../AccordionDropDownMenu\";\n// import { isTouchScreen } from \"../../../common/utils\";\n\n/*\nconst rolesLandingPages = {\n [STUDENT]: PATHS.NEW_USER_DASHBOARD,\n [ADMIN]: PATHS.PARTNERS,\n [VOLUNTEER]: PATHS.CLASS,\n [PARTNER]: PATHS.PARTNERS,\n};\n*/\n\n// const SELECTED_ROLE_KEY = \"selectedRole\";\nconst ID_TO_SELECTED_ROLE_MAP_KEY = \"idToSelectedRoleMap\";\n\nfunction ChangeRole({ isToggle, role, setRoleView, roleView, uid }) {\n const classes = useStyles();\n const styles = isToggle ? {} : { margin: \"0 10px\" };\n const roleStr = ;\n\n const roleLandingPage = role.landingPage;\n // classes.bgColor doesn't do anything because it's overriden by the\n // transparency of the list item\n return roleLandingPage ? (\n {\n setRoleView(role.key);\n // localStorage.setItem(SELECTED_ROLE_KEY, role.key);\n const idToSelectedRoleMap =\n JSON.parse(localStorage.getItem(ID_TO_SELECTED_ROLE_MAP_KEY)) || {};\n idToSelectedRoleMap[uid] = role.key;\n localStorage.setItem(\n ID_TO_SELECTED_ROLE_MAP_KEY,\n JSON.stringify(idToSelectedRoleMap)\n );\n // !isToggle && handleCloseSwitchView();\n }}\n sx={styles}\n className={roleView === role.key && classes.bgColor}\n // className={classes.link}\n >\n {isToggle ? (\n \n ) : (\n roleStr\n )}\n \n ) : (\n \"\"\n );\n}\n\nfunction ChangeRolesView({ setRole, roles, uid, leftDrawer }) {\n const defaultRole = roles.find((role) => role.assignedRole) || roles[0];\n const lastSelectedRoleKey = JSON.parse(\n localStorage.getItem(ID_TO_SELECTED_ROLE_MAP_KEY)\n )?.[uid]; // || localStorage.getItem(SELECTED_ROLE_KEY);\n const hasLastSelectedRole = roles.some(\n (role) => role.key === lastSelectedRoleKey\n );\n const [roleView, setRoleView] = React.useState(\n hasLastSelectedRole ? lastSelectedRoleKey : defaultRole?.key\n );\n const otherRole =\n roles[(roles.findIndex((role) => role.key === roleView) + 1) % 2];\n\n const commonProps = { setRoleView, roleView, uid };\n const history = useHistory();\n let menu = \"\";\n\n if (roles.length > 2) {\n const menuContents = (\n
\n {roles.map((role) => (\n \n ))}\n
\n );\n menu = leftDrawer ? (\n \n {menuContents}\n \n ) : (\n \n {menuContents}\n \n );\n } else if (roles.length === 2) {\n menu = ;\n }\n //const location = useLocation();\n\n React.useEffect(() => {\n setRole(roleView);\n // if (location !== roles[roleView]) {\n // for load\n // history.push(roles[roleView]);\n //}\n }, [roleView]);\n\n // React.useEffect(() => {\n // const roleData = roles.find((role) => role.key === roleView);\n // roleData?.landingPage && history.push(roleData.landingPage);\n // }, []);\n\n return (\n \n {menu}\n \n );\n}\n\nexport default ChangeRolesView;\n","import React, { useState, useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Link, NavLink, useLocation, useHistory } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport { hasOneFrom } from \"../../common/utils\";\nimport { actions as userActions } from \"../User/redux/action\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport useStyles from \"./styles\";\nimport { DropDown, MobileDropDown } from \"./DropDown\";\nimport { sendToken } from \"../User/redux/api\";\nimport { actions as pathwayActions } from \"../../components/PathwayCourse/redux/action\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport { Box, Typography, Menu, MenuItem, Button } from \"@mui/material\";\nimport HeaderNavLink from \"./HeaderNavlink\";\nimport UserMenu from \"./UserMenu\";\nimport SearchBar from \"../SearchBar\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Message from \"../common/Message\";\nimport {\n LEARN_KEY,\n MENU_ITEMS,\n ROLES,\n ADMIN_ROLE_KEY as ADMIN,\n PARTNER_ROLE_KEY as PARTNER,\n PARTNER_VIEW_ROLE_KEY as PARTNER_VIEW,\n PARTNER_EDIT_ROLE_KEY as PARTNER_EDIT,\n STUDENT_ROLE_KEY as STUDENT,\n VOLUNTEER_ROLE_KEY as VOLUNTEER,\n} from \"./constant\";\nimport StudentHeader from \"./StudentHeader\";\nimport AdminHeader from \"./AdminHeader\";\nimport VolunteerHeader from \"./VolunteerHeader\";\nimport PartnerHeader from \"./PartnerHeader\";\nimport RoleSpecificHeader from \"./RoleSpecificHeader\";\nimport SearchHeader from \"./SearchHeader\";\nimport ChangeRolesView from \"./ChangeRolesView\";\nimport { selectRolesData, selectUserId } from \"../User/redux/selectors\";\n\n/*\nconst savedRolesToKeysMap = Object.keys(ROLES).reduce((roleKeyMap, roleKey) => {\n roleKeyMap[ROLES[roleKey].savedValue] = roleKey;\n return roleKeyMap;\n}, {});\n*/\n\nconst rolesLandingPages = {\n [STUDENT]: PATHS.NEW_USER_DASHBOARD,\n [ADMIN]: PATHS.PARTNERS,\n [VOLUNTEER]: PATHS.CLASS,\n [PARTNER]: PATHS.PARTNERS,\n};\n\nfunction AuthenticatedHeaderOption({\n setRole,\n role,\n toggleDrawer,\n leftDrawer,\n handleSearchChange,\n}) {\n //const [RoleSpecificHeader, setRoleSpecificHeader] = React.useState(null);\n const roles = useSelector(selectRolesData);\n const uid = useSelector(selectUserId);\n // const history = useHistory();\n // const location = useLocation();\n\n const rolesWithLandingPages = roles.map((role) => ({\n ...role,\n landingPage: rolesLandingPages[role.key] || \"/\",\n }));\n\n // const [role, setRole] = React.useState(null);\n // const user = useSelector(({ User }) => User);\n const isUniqueRole = roles.length === 1;\n // const dispatch = useDispatch();\n // const pathway = useSelector((state) => state.Pathways);\n\n // special case for partner landing page\n const partnerRole = rolesWithLandingPages.find(\n (role) => role.key === PARTNER\n );\n if (partnerRole) {\n if (partnerRole.properties.partnerGroupId != null) {\n partnerRole.landingPage = `${PATHS.STATE}/${partnerRole.properties.partnerGroupId}`;\n } else if (partnerRole.properties.partnerId != null) {\n partnerRole.landingPage = `${PATHS.PARTNERS}/${partnerRole.properties.partnerId}`;\n }\n }\n\n /*\n useEffect(() => {\n if (location !== rolesWithLandingPages[role.key]) {\n history.push(rolesWithLandingPages[role.key]);\n }\n }, [role]);\n*/\n /*\n useEffect(() => {\n sendToken({ token: user.data.token }).then((res) => {\n // setPartnerId(res.data.user.partner_id);\n // setProfile(res.data.user.profile_picture);\n });\n }, []);\n*/\n\n // useEffect(() => {\n // dispatch(pathwayActions.getPathways());\n //}, [dispatch]);\n\n // const pythonPathwayId =\n // pathway.data?.pathways.find((pathway) => pathway.code === \"PRGPYT\")?.id;\n\n // const merakiStudents = rolesList.length < 1; //admin\n\n return (\n <>\n \n \n \n \n {!leftDrawer && }\n \n );\n}\n\nexport default AuthenticatedHeaderOption;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport theme from \"../../theme/theme\";\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS } from \"../../constant\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport ExpandLessIcon from \"@mui/icons-material/ExpandLess\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport useStyles from \"./styles\";\nimport List from \"@mui/material/List\";\nimport { DropDown, MobileDropDown } from \"./DropDown\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { breakpoints } from \"../../theme/constant\";\nimport {\n AppBar,\n Box,\n Toolbar,\n Container,\n Button,\n MenuItem,\n ThemeProvider,\n SwipeableDrawer,\n Typography,\n useMediaQuery,\n} from \"@mui/material\";\nimport PropTypes from \"prop-types\";\nimport { withRouter } from \"react-router\";\nimport { NavLink } from \"react-router-dom\";\nimport {\n PUBLIC_MENU_KEYS,\n // LEARN_KEY,\n MENU_ITEMS,\n // ROLES,\n ADMIN_ROLE_KEY as ADMIN,\n PARTNER_ROLE_KEY as PARTNER,\n // PARTNER_VIEW_ROLE_KEY as PARTNER_VIEW,\n // PARTNER_EDIT_ROLE_KEY as PARTNER_EDIT,\n STUDENT_ROLE_KEY as STUDENT,\n VOLUNTEER_ROLE_KEY as VOLUNTEER,\n} from \"./constant\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport { selectRolesData } from \"../User/redux/selectors\";\nimport AuthenticatedHeaderOption from \"./AuthenticatedHeaderOption\";\nimport SearchBar from \"../SearchBar\";\nimport { useHistory } from \"react-router-dom\";\nimport { useLocation } from \"react-router-dom\";\nimport Message from \"../common/Message\";\nimport TextButtonDropDownMenu from \"./TextButtonDropDownMenu\";\nimport SearchPopup from \"../SearchBar/SearchPopup\";\nimport LaunchOutlinedIcon from \"@mui/icons-material/Launch\";\nimport HeaderNavLink from \"./HeaderNavlink\";\n\nimport OpenInNewIcon from \"@mui/icons-material/OpenInNew\";\n// import { PUBLIC_MENU_KEYS, MENU_ITEMS } from \"./constant\";\n// import { useContext } from \"react\";\n// import { useLanguageConstants, getTranslationKey } from \"../../common/language\";\n// import { LanguageProvider } from \"../../common/context\";\n\nconst PublicMenuOption = ({ leftDrawer, toggleDrawer }) => {\n const [indicator, setIndicator] = useState(null);\n const [dropDownMenu, setDropDownMenu] = useState(null);\n const [selectedMenu, SetSelectedMenu] = useState(null);\n const [inDropdown, setInDropdown] = useState({\n inProgress: false,\n value: false,\n });\n const inDropdownRef = useRef(inDropdown);\n inDropdownRef.current = inDropdown;\n const classes = useStyles();\n // const { language, MSG } = useLanguageConstants(); //useContext(LanguageProvider);\n\n const menuOpenHandler = (event, menuKey) => {\n setIndicator(event.currentTarget);\n setDropDownMenu(menuKey);\n SetSelectedMenu(menuKey);\n };\n\n const showLoginButton = !useRouteMatch({\n path: PATHS.LOGIN,\n });\n\n const menuCloseHandler = () => {\n setIndicator(null);\n };\n\n const updateInDropdownState = () => {\n setInDropdown({ inProgress: true, value: false });\n setTimeout(\n () =>\n setInDropdown({\n value: inDropdownRef.current?.value,\n inProgress: false,\n }),\n 200\n );\n };\n\n useEffect(() => {\n if (!inDropdown.inProgress && !inDropdown.value) {\n // mouse has moved out of main menu item and its\n // dropdown after delay milliseconds\n menuCloseHandler();\n }\n }, [inDropdown]);\n\n const [scratchUrl, setScratchUrl] = useState(\n `https://scratch.merakilearn.org/login`\n );\n\n useEffect(() => {\n if (\n window.location.origin === \"http://localhost:3000\" ||\n window.location.origin ===\n \"https://www.merd-bhanwaridevi.merakilearn.org\"\n ) {\n setScratchUrl(`https://dev.scratch.merakilearn.org/login`);\n }\n }, []);\n\n return (\n <>\n \n {localStorage.getItem(\"studentAuth\") ? null : (\n <>\n {PUBLIC_MENU_KEYS.map((menuKey, index) => (\n <>\n \n \n \n \n ))}\n\n \n \n \n Donate\n \n \n \n \n \n )}\n \n\n \n {localStorage.getItem(\"studentAuth\") ? null : (\n <>\n {PUBLIC_MENU_KEYS.map((menuKey) => (\n \n ))}\n \n \n \n Donate\n \n \n \n \n \n )}\n \n\n {localStorage.getItem(\"studentAuth\") ? (\n \n \n Scratch\n \n \n \n ) : (\n <>\n {!leftDrawer && (\n \n \n \n )}\n\n {showLoginButton && !leftDrawer && (\n \n \n \n \n \n )}\n \n )}\n \n );\n};\n\nconst MobileVersion = ({ toggleDrawer, leftDrawer, setRole, role }) => {\n const { data } = useSelector(({ User }) => User);\n const isAuthenticated = data && data.isAuthenticated;\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n {isAuthenticated ? (\n \n ) : (\n \n )}\n \n \n );\n};\n\nfunction Header() {\n const classes = useStyles();\n const { data } = useSelector(({ User }) => User);\n const user = useSelector(({ User }) => User);\n const [position, setposition] = useState(true);\n const roles = useSelector(selectRolesData);\n const [role, setRole] = React.useState(null);\n const isAuthenticated = data && data.isAuthenticated;\n const [leftDrawer, setLeftDrawer] = useState(false);\n const [bgColor, setBgcolor] = useState(false);\n let location = useLocation();\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n window.addEventListener(\"resize\", () => {\n if (window.outerWidth > theme.breakpoints.values.md) {\n setLeftDrawer(false);\n }\n });\n\n const partnerGroupId = user?.data?.user?.partner_group_id;\n const partnerId = user?.data?.user?.partner_id;\n\n const rolesLandingPages = {\n [STUDENT]: PATHS.NEW_USER_DASHBOARD,\n [ADMIN]: PATHS.PARTNERS,\n [VOLUNTEER]: PATHS.CLASS,\n [PARTNER]: partnerGroupId\n ? `${PATHS.STATE}/${partnerGroupId}`\n : `${PATHS.PARTNERS}/${partnerId || \"\"}`,\n };\n\n useEffect(() => {\n if (location.pathname === \"/home\" || location.pathname === \"/\") {\n setBgcolor(true);\n } else {\n setBgcolor(false);\n }\n }, [location]);\n\n const roleKey = roles\n .map((userRole) => userRole.key)\n .find((key) => key === role);\n const defaultPage = rolesLandingPages[roleKey] || \"/\";\n\n const toggleDrawer = (open) => (event) => {\n if (\n event &&\n event.type === \"keydown\" &&\n (event.key === \"Tab\" || event.key === \"Shift\")\n ) {\n return;\n }\n setLeftDrawer(open);\n };\n const [elevation, setElevation] = useState(0);\n window.addEventListener(\"scroll\", () => {\n if (window.scrollY > 0) {\n setElevation(8);\n } else {\n setElevation(0);\n }\n });\n\n // window.addEventListener(\"scroll\", changeBackground);\n\n window.addEventListener(\"scroll\", () => {\n let count = isActive ? 900 : 770;\n if (window.scrollY > count) {\n setposition(false);\n } else {\n setposition(true);\n }\n });\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n \n \n */}\n \n \n \n \n \n \n \n {isAuthenticated ? (\n \n ) : (\n <>\n \n \n )}\n \n \n \n \n );\n}\n\nexport default Header;\n","import { makeStyles } from \"@mui/styles\";\n\nconst useStyles = makeStyles((theme) => ({\n logo: {\n padding: \"0px 8px 0px 16px\",\n marginBottom: \"20px\",\n },\n meraki: {\n padding: \"20px 8px\",\n },\n socialMedia: {\n paddingLeft: \"9px\",\n },\n image: {\n padding: \"0px 8px\",\n },\n content: {\n padding: \"10px 10px 0px 16px\",\n width: \"300px\",\n },\n hover: {\n \"&:hover\": {\n color: \"#48a145\",\n },\n },\n link: {\n textDecoration: \"none\",\n },\n CareerNDoner: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n \"&:hover\": {\n color: \"#48a145\",\n },\n },\n}));\n\nexport default useStyles;\n","import React, { useEffect } from \"react\";\nimport { Grid, Box, Container, List, Typography, Divider } from \"@mui/material\";\nimport useStyles from \"./styles\";\nimport { Link } from \"react-router-dom\";\nimport { PATHS, interpolatePath } from \"../../constant\";\nimport LaunchOutlinedIcon from \"@mui/icons-material/LaunchOutlined\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as pathwayActions } from \"../PathwayCourse/redux/action\";\nimport ExternalLink from \"../common/ExternalLink\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { breakpoints } from \"../../theme/constant\";\nimport { PATHWAYS_INFO } from \"../../constant\";\n\nconst menu = {\n About: [\n { name: \"Our Story\", type: \"internal\", path: PATHS.OUR_STORY },\n { name: \"Meraki Team\", type: \"internal\", path: PATHS.TEAM },\n ],\n LearningTracks: [],\n GetInvolved: [\n {\n name: \"Volunteer With Us\",\n type: \"internal\",\n path: PATHS.VOLUNTEER_AUTOMATION,\n },\n {\n name: \"Our Partners\",\n type: \"internal\",\n path: PATHS.OUR_PARTNER,\n },\n {\n name: \"Careers\",\n type: \"external\",\n path: \"https://recruiterflow.com/navgurukul/jobs\",\n },\n ],\n};\n\nconst MenuList = (menuItem) => {\n const title = menuItem.split(/(?=[A-Z])/).join(\" \");\n const user = useSelector(({ User }) => User);\n const classes = useStyles();\n const dispatch = useDispatch();\n const { data } = useSelector((state) => {\n return state.PathwaysDropdow;\n });\n\n // useEffect(() => {\n // dispatch(\n // pathwayActions.getPathwaysDropdown({\n // authToken: user,\n // })\n // );\n // }, [dispatch, user]);\n\n const miscellaneousPathway = data?.pathways.filter((pathway) =>\n PATHWAYS_INFO.some((miscPathway) => pathway.name === miscPathway.name)\n );\n const pathwayData = data?.pathways\n .filter((pathway) => !miscellaneousPathway.includes(pathway))\n .concat(miscellaneousPathway);\n\n if (menuItem === \"LearningTracks\") {\n menu[menuItem] = pathwayData;\n }\n\n const subMenu = menu[menuItem];\n\n return (\n <>\n \n {title}\n \n \n {subMenu?.map((item) => {\n if (item.type === \"external\") {\n return (\n \n \n {item.name} \n \n \n );\n } else {\n const toLink = item.id\n ? interpolatePath(PATHS.PATHWAY_COURSE, {\n pathwayId: item.id,\n })\n : item.path;\n return (\n \n \n {item.name}\n \n \n );\n }\n })}\n \n \n );\n};\n\nfunction FooterIcon(props) {\n const classes = useStyles();\n\n const socialMediaLink = {\n facebook: \"https://www.facebook.com/navgurukul/\",\n linkedIn: \"https://www.linkedin.com/company/navgurukul/\",\n twitter: \"https://twitter.com/navgurukul\",\n };\n\n return (\n \n \n \n \n \n );\n}\n\nfunction Footer() {\n const classes = useStyles();\n const user = useSelector(({ User }) => User);\n const dispatch = useDispatch();\n const { data } = useSelector((state) => {\n return state.PathwaysDropdow;\n });\n\n const isActive = useMediaQuery(\"(max-width:\" + breakpoints.values.sm + \"px)\");\n\n // useEffect(() => {\n // dispatch(\n // pathwayActions.getPathwaysDropdown({\n // authToken: user,\n // })\n // );\n // }, [dispatch, user]);\n\n menu.LearningTracks &&\n data &&\n data.pathways &&\n data.pathways.forEach((pathway) => {\n menu.LearningTracks.forEach((item) => {\n if (pathway.code === item.code) {\n item.id = pathway.id;\n }\n });\n });\n\n return (\n \n \n \n \n \n \n \n \n \n \n {[\"facebook\", \"linkedIn\", \"twitter\"].map((imgName) => (\n \n ))}\n \n \n \n © 2022 NavGurukul Foundation for Social Welfare\n \n \n \n \n {MenuList(\"About\")}\n \n \n {MenuList(\"LearningTracks\")}\n \n \n {MenuList(\"GetInvolved\")}\n \n \n Donate \n \n \n \n \n \n Learn on Mobile\n \n \n \n \n \n \n Now on Playstore\n \n \n \n \n \n \n \n \n \n \n \n \n Legal & Privacy Policy\n \n \n \n \n \n Made with ❤️ for our students{\" \"}\n \n \n \n \n \n \n );\n}\n\nexport default Footer;\n","const hi = {};\nhi.LEARN = \"सीखें\";\nhi.ABOUT = \"के बारे में\";\nhi.GET_INVOLVED = \"उलझना\";\nhi.OUR_STORY = \"हमारी कहानी\";\nhi.DASHBOARD = \"डैशबोर्ड\";\nhi.STATEPARTNER = \"स्टेटपार्टनर\";\nhi.SWITCH_VIEWS = \"दृष्टिकोण स्विच करें\";\nhi.SWITCH_TO_VIEW = \"%1 के दृष्टिकोण पर स्विच करें\";\nhi.STUDENT = \"छात्र\";\nhi.VOLUNTEER = \"स्वयंसेवक\";\nhi.ADMIN = \"एडमिन\";\nhi.PARTNER = \"साथी\";\nhi.STUDENTS = \"छात्र\";\nhi.VOLUNTEERS = \"स्वयंसेवक\";\nhi.PARTNERS = \"साथी\";\nhi.DONATE = \"दान करें\";\nhi.VOLUNTEER_WITH_US = \"हमारे साथ स्वयंसेवक करें\";\nhi.MERAKI_TEAM = \"मेराकी टीम\";\nhi.MENTOR = \"गुरु\"; // \"पथप्रदर्शक\";\nhi.SCRATCH = \"स्क्रैच\";\nhi.NAVGURUKUL_ADMISSION = \"नवगुरुकुल प्रवेश\";\nhi.OPPORTUNITIES = \"अवसर\";\nhi.CLASSES = \"कक्षाएं\";\nhi.SEARCH_FOR_COURSES = \"पाठ्यक्रमों के लिए खोजें...\";\nhi.CAREERS = \"करियर\";\nhi.PROFILE = \"प्रोफ़ाइल\";\nhi.LOGOUT = \"लॉगआउट\";\nhi.TUTOR = \"टुटर\";\nhi.CERTIFICATE_COMPLETION_WARNING =\n \"%1 सर्टिफिकेट प्राप्त करने के लिए कृपया सारे कोर्सेज पूर्ण करे.\";\n\nexport default hi;\n","import { lang } from \"../constant\";\nimport en from \"./en\";\nimport hi from \"./hi\";\n// import mr from \"./mr\";\n// import ta from \"./ta\";\n// import te from \"./te\";\n\nconst MSG = { en, hi }; //, mr, ta, te};\n\n// Default language constants to English\nObject.keys(lang).forEach((lang) => (MSG[lang] = { ...en, ...MSG[lang] }));\n\nexport default MSG;\n","import React, { useEffect } from \"react\";\nimport Routing from \"../../routing\";\nimport Header from \"../Header\";\nimport Footer from \"../Footer\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { actions as pathwayActions } from \"../PathwayCourse/redux/action\";\nimport { HideHeader, HideFooter } from \"../../constant\";\nimport { ThemeProvider } from \"@mui/material/styles\";\nimport { LanguageProvider } from \"../../common/context\";\nimport { useLanguage } from \"../../common/language\";\nimport theme from \"../../theme/theme\";\nimport MSG from \"../../msg\";\n\nimport \"./styles.scss\";\n\nfunction App() {\n const language = useLanguage();\n const showHeader = !useRouteMatch({\n path: HideHeader,\n });\n const showFooter = !useRouteMatch({\n path: HideFooter,\n });\n\n const user = useSelector(({ User }) => User);\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(\n pathwayActions.getPathwaysDropdown({\n authToken: user,\n })\n );\n }, [dispatch, user]);\n\n return (\n \n \n
\n {showHeader ?
: \"\"}\n
\n {\" \"}\n {\" \"}\n
\n {showFooter ?
: \"\"}\n
\n
\n \n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {});\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","// ScrollToTop.jsx\nimport { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport React from \"react\";\nconst ScrollToTop = (props) => {\n const location = useLocation();\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [location]);\n\n return <>{props.children};\n};\n\nexport default ScrollToTop;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport initialStore from \"./store.js\";\nimport \"./index.css\";\nimport App from \"./components/App/index.js\";\nimport { DeviceProvider } from \"./common/context\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { getIsMobile } from \"./common/utils\";\nimport ScrollToTop from \"./common/ScrollTotOP.js\";\nimport * as Sentry from \"@sentry/react\";\nimport { BrowserTracing } from \"@sentry/tracing\";\n\nSentry.init({\n dsn: process.env.REACT_APP_SENTRY_DSN,\n integrations: [new BrowserTracing()],\n\n // Set tracesSampleRate to 1.0 to capture 100%\n // of transactions for performance monitoring.\n // We recommend adjusting this value in production\n tracesSampleRate: 1.0,\n});\n\n// To learn redux and redux saga\n// https://www.codementor.io/@rajjeet/step-by-step-how-to-add-redux-saga-to-a-react-redux-app-11xqieyj67\n// https://redux.js.org/recipes/configuring-your-store\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/calender.31c9e099.svg\";","module.exports = __webpack_public_path__ + \"static/media/doublequote.3d3da03c.svg\";","module.exports = __webpack_public_path__ + \"static/media/leftquote.15517aab.svg\";","module.exports = __webpack_public_path__ + \"static/media/calendar.ed7f8251.svg\";","module.exports = __webpack_public_path__ + \"static/media/Group.ad76898f.svg\";","module.exports = __webpack_public_path__ + \"static/media/specialdeals.fda256b1.svg\";","var map = {\n\t\"./amzbootcamp.svg\": 1768,\n\t\"./language.svg\": 1769,\n\t\"./logo.svg\": 598,\n\t\"./menu.svg\": 893,\n\t\"./meraki.svg\": 894,\n\t\"./misc.svg\": 1770,\n\t\"./python.svg\": 1771,\n\t\"./random.svg\": 1772,\n\t\"./residential.svg\": 1773,\n\t\"./scratch.svg\": 1774,\n\t\"./web.svg\": 1775\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 597;","module.exports = __webpack_public_path__ + \"static/media/logo.558f2635.svg\";","// This can still cause collisions if the namespace can contain --\nconst getKeyName = (namespace, key) => namespace + \"--\" + key;\n\nconst saveObjectState = (namespace, key, data) => {\n try {\n const lsKey = getKeyName(namespace, key);\n localStorage.setItem(lsKey, JSON.stringify(data));\n } catch (error) {\n //console.error('Error accessing localStorage:', error);\n return {};\n }\n};\n\nconst getObjectState = (namespace, key) => {\n const lsKey = getKeyName(namespace, key);\n return JSON.parse(localStorage.getItem(lsKey));\n};\n\nconst setItemInState = (namespace, key, itemKey, value) => {\n const data = getObjectState(namespace, key);\n if (data[itemKey] !== value) {\n // don't set again if same value\n data[itemKey] = value;\n saveObjectState(namespace, key, data);\n }\n};\n\nmodule.exports = { saveObjectState, getObjectState, setItemInState };\n","module.exports = __webpack_public_path__ + \"static/media/Email.3861449b.svg\";","module.exports = __webpack_public_path__ + \"static/media/Group.84865e94.svg\";","module.exports = __webpack_public_path__ + \"static/media/Layer.5ec4176b.svg\";","module.exports = __webpack_public_path__ + \"static/media/butterfly.c4adb9c8.svg\";","module.exports = __webpack_public_path__ + \"static/media/girls.fdbf530b.svg\";","module.exports = __webpack_public_path__ + \"static/media/lang.a884469a.svg\";","module.exports = __webpack_public_path__ + \"static/media/livelessons.66938df1.svg\";","module.exports = __webpack_public_path__ + \"static/media/main_image.133268fa.svg\";","module.exports = __webpack_public_path__ + \"static/media/scale.abf4ec23.svg\";","module.exports = __webpack_public_path__ + \"static/media/whatsapp.4bc5f357.svg\";","module.exports = __webpack_public_path__ + \"static/media/ClassCreated.c46399b2.svg\";","module.exports = __webpack_public_path__ + \"static/media/facilitator.e854db31.svg\";","module.exports = __webpack_public_path__ + \"static/media/language.e4b76cde.svg\";","const getIsMobile = () => {\n let check = false;\n (function (a) {\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\n a\n ) ||\n // eslint-disable-next-line no-useless-escape\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\n a.substr(0, 4)\n )\n )\n check = true;\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n};\n\nconst isTouchScreen = () => {\n // https://stackoverflow.com/a/4819886\n return (\n \"ontouchstart\" in window ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints > 0\n );\n};\n\nconst getQueryVariable = (queryVars) => {\n var query = window.location.search.substring(1);\n var vars = query.split(\"&\");\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split(\"=\");\n if (decodeURIComponent(pair[0]) == queryVars) {\n return decodeURIComponent(vars[i]);\n }\n }\n};\n\nconst hasOneFrom = (arr1, arr2) => arr2.some((item) => arr1.includes(item));\n\nmodule.exports = { getIsMobile, getQueryVariable, hasOneFrom, isTouchScreen };\n","module.exports = __webpack_public_path__ + \"static/media/Second-img.4fd1f36d.svg\";","module.exports = __webpack_public_path__ + \"static/media/code-example.593998ef.svg\";","module.exports = __webpack_public_path__ + \"static/media/degree.54daf7f9.svg\";","module.exports = __webpack_public_path__ + \"static/media/playButton.b16f857a.svg\";","module.exports = __webpack_public_path__ + \"static/media/menu.123e7350.svg\";","module.exports = __webpack_public_path__ + \"static/media/meraki.dd9c8e09.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.c77050df.svg\";","module.exports = __webpack_public_path__ + \"static/media/playStore.35f7af8f.svg\";","module.exports = __webpack_public_path__ + \"static/media/dicto.1b9fb29b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/certificate-grey.26c54b12.svg\";","module.exports = __webpack_public_path__ + \"static/media/certificate-color.b448278f.svg\";"],"sourceRoot":""}