{"version":3,"sources":["api/BaseUrl.js","context/Context.js","api/EndPoints.js","shared/fillButtonComponent/FillButtonComponent.js","shared/constants.js","shared/inputComponent/InputComponent.js","utils/inputCheckValidation.js","shared/customModalComponent/CustomModalComponent.js","shared/titleComponent/TitleComponent.js","shared/customModalComponent/CustomModalWithTitleComponent.js","shared/loginPromptComponent/LoginPromptComponent.js","utils.js","components/editProfileComponent/EditProfileComponent.js","components/createQuizComponents/blueInputComponent/BlueInputComponent.js","components/createQuizComponents/mediaUploadComponent/MediaUploadComponent.js","components/quizComponent/quizMediaComponent/quizImageComponent/QuizImageComponent.js","components/quizComponent/quizMediaComponent/quizVideoComponent/QuizVideoComponent.js","components/quizComponent/quizMediaComponent/quizAudioComponent/QuizAudioComponent.js","components/quizComponent/quizMediaComponent/quizMediaComponent/QuizMediaComponent.js","components/createQuizComponents/saveordiscardComponent/SaveordiscardComponent.js","components/createQuizComponents/discardSlideComponent/DiscardSlideComponent.js","components/quizComponent/mobileTimerComponent/MobileTimerComponent.js","components/createQuizComponents/miniSlideComponents/miniSlideComponent/MiniSlideComponent.js","components/createQuizComponents/questionDetailsComponent/QuestionDetailsComponent.js","shared/Icons.js","components/dashboardDrawerComponent/DashboardDrawerComponent.js","components/createQuizComponents/createNonQuestionComponent/CreateNonQuestionComponent.js","components/quizComponent/timerComponent/TimerComponent.js","shared/answeredCountComponent/AnsweredCountComponent.js","shared/warningComponent/WarningComponent.js","components/quizComponent/quizTypeComponent/quizMTFComponent/QuizMTFComponent.js","components/quizComponent/quizAnswerComponent/QuizAnswerMTF.js","components/quizComponent/quizAnswerComponent/QuizAnswerDragArrange.js","components/quizComponent/quizMCQOptionsComponent/QuizMCQOptionsComponent.js","components/quizComponent/quizTypeComponent/quizDragArrangeComponent/QuizDragArrangeComponent.js","components/qtestComponent/qtestMobileFixedHeader/QtestMobileFixedHeader.js","components/qtestComponent/qtestQuestionTypeSelectComponent/QtestQuestionTypeSelectComponent.js","components/qtestComponent/qtestFooterComponent/QtestFooterComponent.js","components/qtestComponent/qtestAnswerComponent/QtestAnswerComponent.js","components/quizComponent/quizBlanksComponent/QuizBlanksComponent.js","components/quizComponent/quizFIBComponent/QuizFIBComponent.js","components/createQuizComponents/miniSlideComponents/miniMCQComponent/MiniMCQComponent.js","components/createQuizComponents/accessPromptComponent/AccessPromptComponent.js","components/quizComponent/quizAnswerComponent/QuizAnswerComponent.js","components/quizComponent/quizBasicComponent/QuizBasicComponent.js","components/quizComponent/quizInfoComponent/QuizInfoComponent.js","components/qtestComponent/qtestQuestionBasicComponent/QtestQuestionBasicComponent.js","components/qtestComponent/qtestQuestionInfoComponent/QtestQuestionInfoComponent.js","components/createQuizComponents/quizDrawerComponent/QuizDrawerComponent.js","components/createQuizComponents/miniSlideComponents/miniNonQuestionComponent/MiniNonQuestionComponent.js","components/createQuizComponents/miniSlideComponents/miniMTFComponent/MiniMTFComponent.js","components/createQuizComponents/miniSlideComponents/miniFIBComponent/MiniFIBComponent.js","components/createQuizComponents/quizSettingsComponent/quizSettingsComponent.js","components/createQuizComponents/createMCQComponent/CreateMCQComponent.js","components/createQuizComponents/radioBtnTicked/RadioBtnTicked.js","components/createQuizComponents/createMTFComponent/CreateMTFComponent.js","components/createQuizComponents/createDNDComponent/CreateDNDComponent.js","components/createQuizComponents/createFIBComponent/CreateFIBComponent.js","components/quizPreviewComponent/QuizPreviewComponent.js","shared/exitWarning/ExitWarning.js","shared/inviteModalComponent/InviteModalComponent.js","components/createQuizComponents/saveQuizComponent/SaveQuizComponent.js","components/headerComponent/HeaderComponent.js","components/homeComponent/HomeQTImage.js","shared/navMenuComponent/NavMenuComponent.js","components/homeComponent/HomeComponent.js","components/playerDetailsComponent/nameAgeComponent/NameAgeComponent.js","components/playerDetailsComponent/playerDetailsComponent/PlayerDetailsComponent.js","shared/inviteModalComponent/InviteModalWrapper.js","shared/sliderComponent/SliderComponent.js","components/waitingRoomComponent/WaitingRoomComponent.js","components/getReadyRoomComponent/GetReadyRoomComponent.js","components/quizComponent/quizFooterComponent/QuizFooterComponent.js","components/leaderboardList/LeaderboardList.js","components/leaderboardComponent/LeaderboardComponent.js","components/quizComponent/quizTypeComponent/quizDragArrangeComponent/QuizDragArrangeCompWrapper.js","components/quizComponent/quizTypeComponent/quizMTFComponent/QuizMTFCompWrapper.js","components/quizComponent/quizTypeComponent/QuestionTypeComponent.js","components/quizComponent/quizNavBarComponent/QuizNavBarComponent.js","components/quizComponent/quizMobileFixedHeader/QuizMobileFixedHeader.js","shared/barChartComponent/BarChartComponent.js","components/quizComponent/questionStatsComponent/QuestionStatsComponent.js","components/quizComponent/quizComponent/QuizComponent.js","components/podiumComponent/PodiumComponent.js","shared/quizTile/QuizTile.js","shared/pricingPromptComponent/PricingPromptComponent.js","components/quizSelectionComponent/DisplayQuizzesComponent.js","components/quizSelectionComponent/searchFilterComponent/SearchFilterComponent.js","components/quizSelectionComponent/scheduleQtestComponent/ScheduleQtestComponent.js","shared/choicePopupComponent/ChoicePopupComponent.js","shared/playQuizModalComponent/PlayQuizModalComponent.js","components/quizSelectionComponent/QuizSelectionComponent.js","components/profileComponent/ProfileComponent.js","components/redirectComponent/RedirectComponent.js","shared/userAuthComponent/UserAuthComponent.js","components/signInComponent/SignInComponent.js","components/signUpComponent/SignUpComponent.js","components/forgotPasswordComponent/ForgotPasswordComponent.js","components/confirmEmailComponent/ConfirmEmailComponent.js","components/staticComponent/StaticComponent.js","utils/loadScript.js","copies.js","components/pricingComponent/PremiumModalComponent.js","components/pricingComponent/PricingComponent.js","components/qtestComponent/nameEmailComponent/NameEmailComponent.js","components/shareQtestComponent/ShareQtestComponent.js","components/qtestComponent/QtestComponent.js","components/embedComponent/EmbedComponent.js","components/welcomeBannerComponent/WelcomeBannerComponent.js","components/horizonatalTileComponent/HorizonatalTileComponent.js","shared/searchComponent/searchComponent.js","components/tilesCarouselComponent/TilesCarouselComponent.js","components/displayGridComponent/DisplayGridComponent.js","shared/viewAllTilesComponent/viewAllTilesComponent.js","components/dashboardComponent/DashboardComponent.js","components/createQuizComponents/titleCardComponent/TitleCardComponent.js","components/createQuizComponents/selectSlideComponent/SelectSlideComponent.js","components/createQuizComponents/createQuizComponent/CreateQuizComponent.js","components/myLibraryComponent/MyLibraryComponent.js","components/reportsComponent/ReportsComponent.js","shared/displayCardComponent/DisplayCardComponent.js","components/adminComponent/createUserComponent/CreateUserComponent.js","components/mainComponent/MainComponent.js","context/Provider.js","shared/alertComponent/AlertComponent.js","shared/loadingComponent/LoadingComponent.js","axios-config.js","index.js"],"names":["BEURL","process","WSURL","FEURL","S3URL","EnterpriseContactUsFormURL","Context","React","createContext","apiEndpoints","createInvite","categories","readymade","checkRoomId","getToken","updateProfile","getProfile","getDashboard","getMyLibrary","getShortReport","getQuizExcelReportSummary","signUp","confirmSignUp","checkUsername","resendConfirmationCode","signOut","signIn","getUserStats","updateUserStats","forgotPassword","confirmForgotPassword","termsAndConditions","createOrder","confirmPayment","getExcelSummary","createSubscription","FillButtonComponent","displayText","isDisabled","bgColor","bgHoverColor","handleClick","style","disabled","onClick","sx","textTransform","color","borderColor","padding","fontFamily","fontWeight","letterSpacing","borderRadius","display","backgroundColor","fontSize","getQtestTypeCode","readbleQtestType","validateEmail","email","match","generateRandom","min","max","Math","floor","random","checkArrayEqual","a","b","Array","isArray","length","every","val","index","get_answer_blanks_with_hint_letter","answer","blanks","fill","letter_position","letter","forEach","ind","copyToClipboardAsync","str","navigator","clipboard","writeText","Promise","reject","shortenText","charCount","stringElement","slice","isStateValid","state","capitalizeString","charAt","toUpperCase","capitalizeSentence","sentence","split","map","word","join","isAtleastOneKeyEmpty","obj","key","hasOwnProperty","value","trim","mediaTypeFromMime","mimeString","toLowerCase","compareForArraySortWrapper","fieldName","order","getSlideInfoFromRoomId","roomId","src","label","text","InputComponent","Type","Label","Value","OnChange","OnBlur","OnKeyDown","Disabled","Maxlength","Placeholder","ClassName","Checked","InputId","children","className","id","type","onChange","onBlur","maxLength","placeholder","onKeyDown","checked","checkTypes","NOTEMPTY","errorType","errorMessage","EMAIL","NOOFCHARS","NAME","checkValidation","validateFields","name","field","checksFor","checkFor","String","test","charLengthCheckType","charLength","CustomModalComponent","open","handleClose","theme","useTheme","isMobile","useMediaQuery","breakpoints","down","isTablet","position","top","left","transform","width","bgcolor","boxShadow","flexDirection","justifyContent","alignItems","p","cursor","height","marginLeft","onClose","aria-labelledby","aria-describedby","alt","TitleComponent","title","handleOnClick","isBackReqd","isIcon","onIconClick","props","lineHeight","variaint","size","CustomModalWithTitleComponent","handleBackButton","customStyles","outline","visibility","LoginPromptComponent","redirectFlag","navigate","useNavigate","variant","cities","useStyles","makeStyles","inputRoot","border","RadioBtn","FormControlLabel","control","Radio","EditProfileComponent","useState","city","setCity","firstName","setFirstName","lastName","setLastName","phoneNumber","setPhoneNumber","intro","setIntro","username","setUsername","ageGroup","setAgeGroup","setIsDisabled","imageURL","setImageURL","isImageUploaded","setIsImageUploaded","useContext","isLoggedIn","setNotificationType","setNotificationMessage","setNotificationDisplayFlag","setLoadingDisplayFlag","classes","setAlert","message","useEffect","url","axios","get","then","res","data","catch","err","console","log","align","marginRight","document","getElementById","click","accept","e","reader","FileReader","file","target","files","readAsDataURL","onloadend","result","Grid","container","rowSpacing","columnSpacing","xs","sm","md","lg","item","post","error","response","finally","RadioGroup","aria-label","row","rowGap","columnGap","Autocomplete","options","autoComplete","newValue","PaperComponent","Paper","background","marginBottom","marginTop","overflowY","renderInput","params","TextField","setTimeout","BlueInputComponent","BlueTextAreaComponent","Rows","paddingLeft","resize","rows","MediaUploadComponent","placeholderimage","setIsMediaUploaded","mediaFileName","setMediaFileName","mediaType","setMediaType","handleMediaClick","htmlFor","paddingTop","mediaUrl","mediaTypeParam","onMediaClick","QuizImageComponent","imageUrl","onError","QuizVideoComponent","videoUrl","slideType","autoPlay","muted","loop","controls","QuizAudioComponent","audioUrl","UnsupportedMediaComponent","Tooltip","placement","arrow","QuizMediaComponent","uploadFileRegexPattern","exec","urlImageName","pop","includes","fileExtension","getMediaType","SaveordiscardComponent","isSaveDisabled","handleSave","handleDiscard","activeSaveStyle","paddingBottom","inactiveSaveStyle","opacity","discardStyle","DiscardSlideComponent","handleDiscardSlide","CircularProgressWithLabel","secondsLeft","minutesLeft","displayValue","maxTime","timePassed","dialColor","dialSize","bottom","right","textSize","MobileTimerComponent","maximumTime","progress","isNaN","MiniOptions","correctOption","option","MiniSlideComponent","questionData","isImage","handleDeleteClick","activeSlides","setActiveSlides","setQuestionData","dragFlag","indexOf","questionId","onMouseDown","questionTitle","Provider","quizId","s3ImageName","QuantityIncrementButtons","setValue","incrementByValue","decrementByValue","prevValue","QuestionDetailsComponent","handleAddQuestion","editQuestonFlag","time","setTime","points","setPoints","dropdownIconStyle","ExitIcon","LogoutIcon","ShareIcon","EditIcon","RearrangeIcon","DashboardDrawerComponent","selectedView","minWidth","flexShrink","boxSizing","gap","anchor","idx","disablePadding","selected","replace","disableTypography","CreateNonQuestionComponent","questionImageURL","info","quizid","setComponentInFocus","handleSubmitAnswer","answerContent","setAnswerContent","media_upload_placeholder_image","setTitle","setIsSaveDisabled","openDiscardConfirmation","setOpenDiscardConfirmation","Object","keys","answerChoices","eval","setEditQuestionsList","saveQuestion","isEdit","editQuestion","addQuestion","JSON","stringify","editedQuestions","question","questionType","answerBlanks","correctAnswer","editedQuestion","find","status","alert","questionImage","timer","maxPoints","LinearProgressWithLabel","leaderBoardOpen","colorPrimary","barColorPrimary","getReadyRoom","mr","TimerComponent","AnsweredCountComponent","playerAnswerCount","leaderboardData","noOfActivePlayers","WarningComponent","modalOpen","setModalOpen","buttonText","QuizMTFComponent","questionCount","noOfQuestions","handleAnswerSubmit","selectedAnswer","sendTimeUp","quizType","imageName","host","answerChoicesList","mtfQuestions","setMtfQuestions","mtfAnswers","setMtfAnswers","mtfOptions","setMtfOptions","handleDragEnd","itemCopy","destination","source","droppableId","parseInt","prev","handleSubmit","hostModeFlag","pointerEvents","onDragEnd","toString","provided","ref","innerRef","droppableProps","draggableId","draggableProps","dragHandleProps","QuizAnswerMTF","correctAnswerList","element","QuizArrangeDragArrange","QuizMCQOptionsComponent","choice","fromCharCode","QuizDragArrangeComponent","items","setState","splice","el","QtestMobileFixedHeader","timerProgress","QtestQuestionTypeSelectComponent","setSelectedAnswer","submitAnswer","submittedAnswer","qtestType","playerAnswer","scrollTo","QtestFooterComponent","showTimer","mins","secs","timerToDisplay","QtestAnswerSubComponent","s3AnswerImageName","playerScore","playerRunningScore","QtestResultSubComponent","rank","totalScore","showResultFlag","QtestAnswerComponent","showResult","displayAnswer","same","answers","ans","QuizBlanksComponent","setAnswerBlanks","answerSubmitted","setAllowSubmission","wordIndexes","uneditableIndices","setUneditableIndices","indices","first_blank_index","i","push","focus","handleOnChange","existingItems","Number","substring","blank_index","nextElement","shiftFocusForward","handleOnKeyDown","prevElement","shiftFocusBackward","startingIdx","endingIdx","QuizFIBComponent","handleFIBAnswer","setAnswer","setAnswerSubmitted","allowSubmission","setWordIndexes","wordIdxs","firstIdx","lastIdx","preventDefault","flexWrap","MiniMCQComponent","Options","AccessPromptComponent","QuizAnswerComponent","podiumPage","mobileLeaderBoardOpen","setNoOfCorrectAns","goToPodium","QuizBasicComponent","socket","between","isDesktop","up","currentTarget","send","action","playerId","sessionStorage","getItem","timeTaken","QuizInfoComponent","handleNextQuestion","questionNumber","QtestQuestionBasicComponent","handleMCQAnswer","handleNQSProceed","handleNext","displayNote","endQuizFlag","infoDuration","timeToAnswer","QtestQuestionInfoComponent","duration","drawerWidth","QuizDrawerComponent","componentInFocus","setDragFlag","editQuizDetails","setEditQuizDetails","editQuestionsList","deleteQuestionModalOpen","setDeleteQuestionModalOpen","deleteQuestionId","setDeleteQuestionId","deleteQuestionQuizId","setDeleteQuestionQuizId","quizSettingsOpen","setQuizSettingsOpen","removeDeleteQuestionInView","removedQuestionIndex","findIndex","handleDeleteQuestion","deleteQuestion","handleQuestionDrop","from","reorderedItems","filter","remainingItems","handleEditQuizQuestionOrder","newQuestionIds","questionIds","prevDetails","handleQuestionDragStart","handleQuestionDragUpdate","maxWidth","quizName","editedOn","onDragStart","onDragUpdate","isOpen","handleCloseModel","fontStyle","MiniNonQuestionComponent","MiniMTFComponent","MiniFIBComponent","QuizSettingsComponent","setQuizName","quizDescription","setQuizDescription","quizImage","setQuizImage","MCQAnswer","prevAnswer","updatedAnswer","CreateMCQComponent","setQuestion","setCorrectOption","setQuestionImageURL","openQuestionDetails","setOpenQuestionDetails","showAnswerSlide","setShowAnswerSlide","answerImageURL","setAnswerImageURL","A","B","C","D","newQuestionIdList","prevQuiz","updatedQuiz","handleSaveQuestion","answerImage","values","GreenTick","viewBox","xmlns","cx","cy","r","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createStyles","smallRadioButton","RadioBtnTicked","disableRipple","checkedIcon","MTFAnswer","optionNum","setOption","prevOption","updatedOption","CreateMTFComponent","1","2","3","4","shuffleArray","array","j","answerNum","optionData","answerData","opt","DNDAnswer","CreateDNDComponent","reduce","totalNoOfBlanks","CreateFIBComponent","QuizPreviewComponent","questions","setQuestions","contextEditQuestionsList","questionsCount","totalNoOfQuestions","questionIndex","setQuestionIndex","showAnswerPage","setShowAnswerPage","questTimerProgress","setQuestTimerProgress","questiontimerInterval","setQuestionTimerInterval","setRank","setTotalScore","setShowResult","resetForNextQuestion","clearInterval","timerInterval","setInterval","prevProgress","dummySubmitAnswer","setCurrentQuestionScore","playerTimeTaken","questionMaxPoints","perfectScore","undefined","currentScore","oneAnswerTypes","timeFraction","round","tempRunningScore","getRandomNumber","handlePreviousView","handleNextView","setResultPage","ceil","finishStatus","setfinishStatus","onBackButtonEvent","window","confirm","history","pushState","location","pathname","onReloadButtonEvent","returnValue","addEventListener","removeEventListener","ExitWarning","Button","InviteModalComponent","displayURL","copyURL","qtestId","ClipboardJS","on","range","createRange","selection","getSelection","selectNodeContents","removeAllRanges","addRange","selectInviteLink","data-clipboard-text","WhatsappShareButton","configData","shareInviteText_WA","separator","WhatsappIcon","FacebookShareButton","quote","shareInviteText_FB","FacebookIcon","TwitterShareButton","shareInviteText_TWTR","TwitterIcon","Member","removeQuizEditor","SaveQuizComponent","setOpenSaveModal","openSaveModal","useLocation","openShareQuiz","setOpenShareQuiz","openAssignQuiz","setOpenAssignQuiz","editAccessList","setEditAccessList","assignedTeamsList","setAssignedTeamsList","organizationTeamsList","setOrganizationTeamsList","publicCheckFlag","setPublicCheckFlag","getAssignedTeams","teamNames","parse","teams","teamName","quizAccessStatus","getOrganizationTeams","getQuizEditors","addEmail","addQuizEditor","handleOpenAssignQuiz","email_input","handleMakeQuizPublic","teamIds","assignTeamToQuiz","changeQuizStatus","saveQuiz","CreateQuizHeaderButtons","handleSaveQuiz","enablePreview","PreviewQuizHeaderButtons","editQuizId","DefaultHeaderButtons","handleLogout","handleLogin","userType","HeaderComponent","setOpen","exitModalOpen","setExitModalOpen","inviteModalOpen","setInviteModalOpen","Cookies","remove","isExitWarningPath","ClickAwayListener","onClickAway","startsWith","Collapse","in","HomeQTImage","preserveAspectRatio","rx","ry","fillRule","x","y","NavMenuComponent","divider","flex","HomeComponent","setHost","setSocket","setRoomId","setLeaderboardData","setAnswerData","setPodiumPage","setDisconnect","setContinueQuizzing","openLogin","setOpenLogin","openQuizModal","setOpenQuizModal","submitFlag","setSubmitFlag","close","removeItem","clear","styleBg","textAlign","paddingRight","spacing","setItem","age","avatar","Divider","root","spellCheck","inputRoomId","roomIdExistsFlag","ws_socket","WebSocket","NameAgeComponent","proceedCallback","setName","setEmail","setAge","setAvatar","avatarPrevId","setAvatarPrevId","nameReadOnlyFlag","setNameReadOnlyFlag","emailReadOnlyFlag","setEmailReadOnlyFlag","buttonEnableFlag","setButtonEnableFlag","styledButton","classList","add","handleSelectAvatar","prevId","readOnly","event","num","PlayerDetailsComponent","urlRoomId","playerName","setPlayerName","playerEmail","setPlayerEmail","sessionId","setSessionId","setUserName","InviteModalWrapper","waitingRoom","handleOpen","styleIconButton","IconButton","SliderComponent","images","currentIndex","setCurrentIndex","image","dangerouslySetInnerHTML","__html","prevIndex","button","disableButton","WaitingRoomComponent","userName","questionsList","backToPath","openSoloConfirm","setOpenSoloConfirm","handleCloseSoloConfirm","howToJoinOpen","setHowToJoinOpen","handleCloseHowToJoin","startQuiz","constructor","playerStats","margin","minHeight","backgroundClip","player","playerAvatar","hostId","icon","faSpinner","GetReadyRoomComponent","quizPage","counter","setCounter","initialRender","useRef","goToQuiz","prevState","clearTimeout","current","CircularProgress","QuizFooterComponent","setLeaderBoardOpen","LeaderboardList","displayRank","currPlayer","o","hasAnsweredCurrentQuestion","getCurrentPlayer","sort","sortedPlayerNameAndScoreList","Fragment","isActive","LeaderboardComponent","quiz","playerCorrectAnswerCount","noOfCorrectAns","Drawer","QuizDragArrangeCompWrapper","finalAnswer","QuizMTFCompWrapper","QuestionTypeComponent","setTimerProgress","lockedModalOpen","setLockedModalOpen","QuizNavBar","pageName","setMobileLeaderBoardOpen","navBarButton","flexGrow","flexBasis","component","maxHeight","QuizMobileFixedHeader","BarChartComponent","barChartData","Chart","register","CategoryScale","LinearScale","BarElement","Title","Legend","ChartDataLabels","correctAnswerIndex","barColors","_","labels","datasets","borderWidth","minBarLength","maintainAspectRatio","scales","beginAtZero","grid","ticks","font","weight","plugins","legend","datalabels","formatter","tooltip","callbacks","tooltipItem","toolTipMessages","dataIndex","animation","delay","context","mode","dropped","datasetIndex","elements","bar","QuestionStatsComponent","setQuizPage","correctAnswerPercentage","resultMessage","indexToRemove","QuizComponent","timerText","hostModeData","Main","styled","shouldForwardProp","prop","transition","transitions","create","easing","sharp","leavingScreen","easeOut","enteringScreen","PodiumComponent","setQuizType","continueQuizzing","trigger","shareScoreText1","getScore","shareScoreText2_WA","getRank","myPlayer","method","responseType","URL","createObjectURL","Blob","link","createElement","href","setAttribute","body","appendChild","removeChild","shareScoreText2_FB","shareScoreText2_TWTR","QuizTile","backgroundImage","selectedCategories","tooltipText","isLocked","isPremium","backgroundSize","backgroundBlendMode","PricingPromptComponent","DisplayQuizzesComponent","quiztype","setSelectedCategories","searchTermTofilter","categoriesToFilter","filteredReadymadeQuizzes","setFilteredReadymadeQuizzes","allowedIds","setAllowedIds","allowedCategories","setAllowedCategories","lockedCategories","setLockedCategories","allCategories","setAllCategories","openLoginPrompt","setOpenLoginPrompt","openPricingPrompt","setOpenPremiumPrompt","loadingDisplayFlag","disabledTooltipText","endpoint","all","allowed","Set","id_attr","locked","has","handleReadymadeQuizFilter","handleLockedOnClick","tempReadymadeQuizzes","categoryIdList","some","categoryId","cat","direction","category","categoryName","temp","handleCategorySelection","SearchFilterComponent","searchTerm","setSearchTerm","filteredCategories","setFilteredCategories","dbCategories","setDbCategories","getOptionLabel","multiple","limitTags","renderTags","tagValue","getTagProps","Chip","ScheduleQtestComponent","showAdditionalFieldsInput","btnText","initStartDate","initEndDate","dayjs","extend","utc","startDate","setStartDate","endDate","setEndDate","fieldNames","setFieldNames","disableCreateButton","setdisableCreateButton","endDateError","setEndDateError","showAnswer","setShowAnswer","dateStyle","checkDates","diff","LocalizationProvider","dateAdapter","AdapterDayjs","DateTimePicker","InputProps","inputFormat","newDateTime","minDateTime","Switch","fieldNamesArray","strItem","uniqueFieldNames","format","ChoicePopupComponent","showPopup","handleClosePopup","popupTitle","popupDescription","handleChoiceOne","handleChoiceTwo","choiceOneText","choiceTwoText","choiceOneDescription","choiceTwoDescription","PlayQuizModalComponent","readyMadeQuizFlag","randomizeQuestion","setRandomizeQuestion","hostMode","setHostMode","updateQuiz","sQuizType","waitForConnection","interval","readyState","QuizSelectionComponent","readyMade","setReadyMade","playQuizModalOpen","setPlayQuizModalOpen","interestBased","setInterestBased","scheduleQtestModalOpen","setScheduleQtestModalOpen","showPlayQuizPopup","setShowPlayQuizPopup","localStorage","handleBackArrowClick","handleReadyMadeClick","handleInterestBasedClick","additionalFields","createQtest","ProfileComponent","hostedcount","setHostedcount","wonCount","setWonCount","playedCount","setPlayedCount","role","setRole","openCancelConfirmationModal","setOpenCancelConfirmationModal","url_profile","url_stats","cancelSubscription","RedirectComponent","setIsLoggedIn","useParams","setMessage","useSearchParams","searchParams","authorization_code","code","qqIdToken","decodedToken","jwt","decode","UserAuthComponent","SignInComponent","inputType","setInputType","password","setPassword","email_usrnm","setEmail_usrnm","setUserType","handleOnPasswordRevealClick","avtr","set","SignUpComponent","usrnmChecked","setUsrnmChecked","usrnm","setUsrnm","agegrp","setAgegrp","ForgotPasswordComponent","setCode","re_password","setRe_password","reset_emailId","setReset_emailId","inputType_1","setInputType_1","inputType_2","setInputType_2","pwd_id","ConfirmEmailComponent","cnfFlag","setCnfFlag","replaceState","StaticComponent","setResponse","loadScript","resolve","script","onload","onerror","FreeTierCopy","price","features","PremiumTierCopy","EnterpriseTierCopy","PremiumModalCopy","yearly","details","monthly","PremiumModalComponent","handleOnClickBuy","plan","setPlan","column","detail","PricingTile","copy","feature","PricingComponent","openPremiumModal","setOpenPremiumModal","getRazorpayOrderOptions","phone_number","orderId","amount","receiptId","REACT_APP_RAZORPAY_API_ID","getRazorpaySubscriptionOptions","subscription_id","profile","paymentObject","Razorpay","description","subscription","NameEmailSubComponent","qtestName","qtestImage","qtestDescription","additionalFieldsArray","setAdditionalFields","buttonDisableFlag","setButtonDisableFlag","isLoggedInUser","setIsLoggedInUser","tempFieldsObj","additionalFieldsView","QtestNotActiveComponent","NameEmailComponent","setAdditionalFieldsArray","setQtestName","setQtestImage","setQtestDescription","setDisplay","checkQtest","ShareQtestComponent","qrCodeSVGRef","svgElement","svgString","XMLSerializer","serializeToString","svgBlob","svgUrl","canvas","ctx","getContext","img","Image","fillStyle","fillRect","drawImage","pngFile","toDataURL","downloadLink","download","revokeObjectURL","downloadQRCodeAsPng","QtestComponent","showScoreFlag","setShowScoreFlag","fetchNextQuestion","attendQtest","isLoginUser","results","playerTotalScore","submitQtestAnswer","showAnswerFlag","answercontent","EmbedComponent","embedType","setPreview","codes","preview","frameBorder","allowFullScreen","ReactDOMServer","renderToStaticMarkup","WelcomeBannerComponent","whiteSpace","HorizonatalTileComponent","subtitle1","subtitle2","subtitle3","isMenuAvailable","menuItems","menuRef","menuAnchorEl","setMenuAnchorEl","menuOpen","Boolean","Menu","paper","list","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","menuItem","MenuItem","SearchComponent","handleSearchTermChange","onInput","endAdornment","InputAdornment","borderBottomColor","dateOptions","year","month","day","dateTimeOptions","hour","minute","transformQuizData","quizData","tileImage","tileName","date1","Date","createdOn","toLocaleDateString","date2","tileStatus","tileDescription","tileType","statusCode","TilesCarouselComponent","tilesData","splitData","enableMenuOptions","handleOnClickViewAll","addQuizToList","addToList","tiles","setTiles","visibleTiles","setVisibleTiles","tilesDiv","rescheduleQtestModalOpen","setRescheduleQtestModalOpen","deleteQuizModalOpen","setDeleteQuizModalOpen","curTileId","setCurTileId","changedTileIndex","tile","removedQuizList","changeQuizStatusInView","getMenuItems","menuType","tileId","menuitems","debouncedHandleResize","fn","ms","apply","arguments","debounce","tileCount","clientWidth","reportList","prevTiles","scroll","scrollLeft","behavior","rescheduleQtest","startOn","endOn","changeCurTileDatesInView","removedTileIndex","removeCurTileInView","DisplayGridComponent","childComponentList","Box","ViewAllTilesComponent","subtitle","handleOnClickBack","allTilesView","DashboardComponent","myQuizzes","dashboardData","setDashboardData","openCreateNewQuiz","setOpenCreateNewQuiz","openQuizDetails","setOpenQuizDetails","openAttachTags","setOpenAttachTags","setDescription","activePage","setActivePage","handleOnClickViewChange","viewName","goToQuizDetails","overflow","createQuiz","TitleCardComponent","SelectSlideComponent","questionTypes","selectedQuestionType","setSelectedQuestionType","selectedQuestionMethod","setSelectedQuestionMethod","slideInFocus","setSlideInFocus","handleQuestionTypeSelection","afterSelectQuestionTypeSlide","innerText","questionTypeOption","handleAddQuestionMethod","afterAddQuestionSlide","slideOption","addQuestionMethod","CreateQuizComponent","hasEditAccess","setHasEditAccess","getQuizDetails","curQuizDetails","prepareEditQuestionsList","activeSlideList","getElementsByClassName","lastActiveSlide","scrollIntoView","block","MyLibraryComponent","drafts","published","qtests","libraryData","setLibaryData","viewAllData","setViewAllData","viewAllTitle","setViewAllTitle","viewAllSubtitle","setViewAllSubtitle","qtestStatus","quizList","listName","unshift","ReportGeneratedPopUp","reload","ReportsComponent","shortReportQuizList","setShortReportQuizList","selectedQuizId","setSelectedQuizId","selectedQuizVariant","setSelectedQuizVariant","selectedReportTypes","setSelectedReportTypes","goBack","setGoBack","reportDownloaded","setReportDownloaded","handleOnClickQuiz","handleReportTypeSelection","toggle","toolTipText","handleQuizVariantSelection","quizVariant","resObj","quizDesc","roomCreatedAt","qtestDesc","alignContent","reportTypes","DisplayCardComponent","cardItemsList","entries","textToCopy","CreateUserComponent","emailId","setEmailId","inputUserType","setInputUserType","usernameChecked","setUsernameChecked","userDetails","setUserDetails","resetCreateUser","createUser","WithRoomId","posthog","init","api_host","to","SignInWrapperComponent","JoinRoom","MainComponent","exact","path","setPlayerAnswerCount","setPlayerCorrectAnswerCount","setTimer","setNoOfQuestions","setMaxTime","notificationType","notificationMessage","notificationDisplayFlag","notificationDuration","setNotificationDuration","connectQuiz","socketClosed","setSocketClosed","networkStatus","setNetworkStatus","disconnect","handleStorageChange","chanageNetworkStatus","hostExitAlertMessage","onopen","onmessage","isHost","onHostExit","payload","currentQuestion","onSendQuestion","onSendAnswer","playerAnsweredCount","onSendLeaderboard","onTimerUpdate","errorText","onclose","Alert","elevation","SlideTransition","Slide","AlertComponent","reason","Snackbar","zIndex","autoHideDuration","TransitionComponent","severity","AlertTitle","LoadingComponent","loadingText","Backdrop","drawer","defaults","withCredentials","axiosRetry","retries","retryDelay","retryCount","retryCondition","interceptors","use","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.c8326f55.chunk.js","sourcesContent":["export const BEURL = process.env.REACT_APP_BEURL; //back-end URL\nexport const WSURL = process.env.REACT_APP_WSURL; //web-scoket URL\nexport const FEURL = process.env.REACT_APP_FEURL; //front-end URL\nexport const S3URL = process.env.REACT_APP_S3URL; //S3 bucket URL\nexport const EnterpriseContactUsFormURL = \"https://forms.zohopublic.in/walnutsknowledgesolutions/form/ContactUsForLandingPageInternalstakeholdersNewwebs/formperma/5cZhqY6JVbGUUJum1FXhDqD1fGa50DGG5iHccrtQtgg\";","import React from 'react';\n\nconst Context = React.createContext();\n\nexport default Context;","const apiEndpoints = {\n createInvite: \"qq/v1/createinvite/\",\n categories: \"qq/v1/getcategories/\",\n readymade: \"qq/v1/getreadymadequizzes/\",\n checkRoomId: \"qq/v1/checkroomid/\",\n getToken: \"qq/v1/gettoken\",\n updateProfile: \"qq/v1/updateprofile/\",\n getProfile: \"qq/v1/getprofile/\",\n getDashboard: \"qq/v1/getdashboard/\",\n getMyLibrary: \"qq/v1/getmylibrary/\",\n getShortReport:\"qq/v1/getshortreport/\",\n getQuizExcelReportSummary:\"qq/v1/getquizexcelreportsummary/\",\n signUp: \"qq/v1/signup/\",\n confirmSignUp: \"qq/v1/confirmsignup/\",\n checkUsername: \"qq/v1/checkusername/\",\n resendConfirmationCode: \"qq/v1/resendconfirmationcode/\",\n signOut: \"qq/v1/signout/\",\n signIn: \"qq/v1/signin/\",\n getUserStats: \"qq/v1/getuserstats\",\n updateUserStats: \"qq/v1/updateuserstat\",\n forgotPassword: \"qq/v1/forgotpassword/\",\n confirmForgotPassword: \"qq/v1/confirmforgotpassword/\",\n termsAndConditions:\"qq/v1/termsandconditions/\",\n createOrder:\"qq/v1/createorder/\",\n confirmPayment:\"qq/v1/confirmpayment/\",\n getExcelSummary:\"qq/v1/getexcelsummary/\",\n createSubscription:\"qq/v1/createsubscription/\",\n confirmPayment:\"qq/v1/confirmpayment/\",\n cancelSubscription:\"qq/v1/cancelsubscription/\",\n createQtest:\"qq/v1/qtest/createqtest/\",\n submitQtestAnswer:\"qq/v1/qtest/submitanswer/\",\n attendQtest:\"qq/v1/qtest/attendqtest/\",\n checkQtest:\"qq/v1/qtest/checkqtest/\",\n rescheduleQtest:\"qq/v1/qtest/rescheduleqtest/\",\n createQuiz: \"qq/v1/createquiz/createquiz/\",\n addQuestion: \"qq/v1/createquiz/addquestion/\",\n deleteQuestion: \"qq/v1/createquiz/deletequestion/\",\n editQuestion: \"qq/v1/createquiz/editquestion/\",\n getQuizDetails : \"qq/v1/createquiz/getquiz/\",\n deleteQuiz : \"qq/v1/createquiz/deletequiz/\",\n editQuizDetails : \"qq/v1/createquiz/editquiz/\",\n changeQuizStatus: \"qq/v1/createquiz/changequizstatus/\",\n addQuizEditor: \"qq/v1/createquiz/addquizeditor/\",\n getQuizEditors: \"qq/v1/createquiz/getuserswitheditaccess/\",\n removeQuizEditor: \"qq/v1/createquiz/removequizeditor/\",\n getOrganizationTeams: \"qq/v1/createquiz/getorgteams/\",\n getAssignedTeams: \"qq/v1/createquiz/getquizteams/\",\n assignTeamToQuiz: \"qq/v1/createquiz/assignquiztoteams/\",\n createUser: \"qq/v1/createuser/\"\n};\n\nexport default apiEndpoints;\n","import React, { useEffect, useState } from \"react\";\nimport { Button } from \"@mui/material\";\nimport \"./FillButtonComponent.scss\"\n\nconst FillButtonComponent = ({ displayText, isDisabled, bgColor=\"#FDB913\", bgHoverColor = \"#DB9B00\", handleClick, style }) => {\n return (\n\n \n {displayText}\n \n );\n}\n\nexport default FillButtonComponent;","export const QUIZ_MODE = {\n QUIZ: \"QZ\",\n QTEST: \"QT\",\n};\n\nexport const getQtestTypeCode = (readbleQtestType) => {\n if (readbleQtestType == \"Ready Made\") {\n return \"RM\";\n } else if (readbleQtestType == \"Private\") {\n return \"PV\";\n } else if (readbleQtestType == \"Interest Based\") {\n return \"IB\";\n }\n};\n\nexport const validateEmail = (email) => {\n return email.match(\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n};\n\nexport const generateRandom = (min, max) => Math.floor(Math.random() * (max - min)) + min; // Include min and exclude max value\n\nexport const checkArrayEqual = (a, b) => {\n return Array.isArray(a) &&\n Array.isArray(b) &&\n a.length === b.length &&\n a.every((val, index) => val === b[index]);\n}\n\nexport const get_answer_blanks_with_hint_letter = (answer) => {\n let blanks = Array(answer.length).fill(\"\");\n let letter_position = 0;\n let letter = ' ';\n while(letter == ' '){ // Get hint letter that is not a \"space\"\n letter_position = generateRandom(0,answer.length);\n letter = answer[letter_position]\n }\n blanks[letter_position] = letter;\n \n // Add spaces to blanks as per answer\n let answerCharArray = [...answer];\n answerCharArray.forEach((letter, ind)=>{\n (letter == ' ') && (blanks[ind] = ' ');\n })\n\n return blanks;\n}\n\nexport const copyToClipboardAsync = str => {\n if (navigator && navigator.clipboard && navigator.clipboard.writeText)\n return navigator.clipboard.writeText(str);\n return Promise.reject('Copy Failed! Clipboard API is not available.');\n};\n\nexport const shortenText = ({charCount, stringElement}) => {\n if(stringElement.length<=charCount){\n return stringElement\n }\n else{\n return stringElement.slice(0,charCount)+\"...\"\n }\n}\n\nexport const isStateValid = (state) => {\n if (!state) return false; // Makes sure it's not null\n if (typeof state !== \"object\") return false;\n return true;\n}\n\nexport const capitalizeString = (str) => {\n return str?str.charAt(0).toUpperCase() + str.slice(1):\"\";\n}\n\nexport const capitalizeSentence = (sentence) => {\n // Split the sentence into words\n const words = sentence.split(' ');\n // Capitalize the first letter of each word\n const capitalizedWords = words.map(word => {\n return word.charAt(0).toUpperCase() + word.slice(1);\n });\n // Join the words back into a sentence\n const capitalizedSentence = capitalizedWords.join(' ');\n return capitalizedSentence;\n}\n\nexport const isAtleastOneKeyEmpty = (obj) => {\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const value = obj[key];\n if(typeof value === 'string' && value.trim() === '')\n {\n return true;\n }\n }\n }\n return false;\n}\n\n// Split the string before first occurence of '/', trim and lowercase for media type\nexport const mediaTypeFromMime = (mimeString) => {\n return mimeString.split(/\\/(.*)/s)[0].trim().toLowerCase()\n}\n\n// Compare function for array sort\nexport const compareForArraySortWrapper = (fieldName, order) => (a, b) => {\n if(order==\"decend\"){\n if ( b[fieldName] < a[fieldName] ){\n return -1;\n }\n if ( b[fieldName] > a[fieldName] ){\n return 1;\n }\n return 0; \n }\n else{ // Code for ascend\n if ( a[fieldName] < b[fieldName] ){\n return -1;\n }\n if ( a[fieldName] > b[fieldName] ){\n return 1;\n }\n return 0;\n }\n}\n\nexport const getSlideInfoFromRoomId = (roomId) => [\n {\n src: \"/images/howToJoin1.png\",\n label: \"Step 1\",\n text: \"Step 1: Go to quiz.qshala.com and click on play quiz\",\n },\n {\n src: \"/images/howToJoin2.png\",\n label: \"Step 2\",\n text: `Step 2: Enter the room code - ${roomId} and click on join quiz`,\n },\n {\n src: \"/images/howToJoin3.png\",\n label: \"Step 3\",\n text: \"Step 3: Enter you name, email, age, select an avatar and click on proceed\",\n },\n {\n src: \"/images/howToJoin4.png\",\n label: \"Step 4\",\n text: \"Step 4: Wait in the waiting room for your host to start the quiz\",\n },\n];","import \"./InputComponent.scss\"\nimport React from 'react'\n\nconst InputComponent = ({Type, Label, Value, OnChange, OnBlur, \n OnKeyDown, Disabled, Maxlength, Placeholder, ClassName, Checked, \n InputId, children\n}) => {\n return (\n
\n {Label && }\n \n {children}\n
\n )\n}\n\nexport default InputComponent","export const checkTypes = {\n NOTEMPTY: {errorType:\"NOTEMPTY\", errorMessage: \": Field cannot be empty\"},\n EMAIL: {errorType:\"EMAIL\", errorMessage: \": Enter a valid email\"},\n NOOFCHARS: {errorType:\"NOOFCHARS\"},\n NAME: {errorType:\"NAME\", errorMessage: \": Field cannot contain numbers and special characters\"}\n}\n\nconst validateEmail = (email) => {\n return String(email)\n .toLowerCase()\n .match(\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n );\n}\n\nconst validateName = (name) => {\n return /^[a-zA-Z]+$/.test(name);\n}\n\n//Returns error string on error or empty string\nexport const checkValidation = (validateFields)=>{\n for (let field of validateFields){\n for(let checkFor of field.checksFor){\n if( (checkFor.errorType===checkTypes.NOTEMPTY.errorType && !field.value) ||\n (checkFor.errorType===checkTypes.EMAIL.errorType && !validateEmail(field.value)) ||\n (checkFor.errorType === checkTypes.NAME.errorType && !validateName(field.value))) {\n return field.fieldName + checkFor.errorMessage\n }\n else if(checkFor.errorType===checkTypes.NOOFCHARS.errorType && (field.charLengthCheckType===\"LESSER\") && (field.value.length>field.charLength)){\n return `${field.fieldName}: Must contain atmost ${field.charLength} characters`\n }\n else if(checkFor.errorType===checkTypes.NOOFCHARS.errorType && (field.charLengthCheckType===\"EQUAL\") && (field.value.length!=field.charLength)){\n return `${field.fieldName}: Must contain only ${field.charLength} characters`\n }\n else if(checkFor.errorType===checkTypes.NOOFCHARS.errorType && (field.charLengthCheckType===\"GREATER\") && (field.value.length img\": {\n cursor: \"pointer\",\n // height: isMobile ? \"1.125rem\" : \"2rem\",\n // width: isMobile ? \"1.125rem\" : \"2rem\",\n height: isMobile ? \"1.125rem\" : isTablet? \"1.5rem\" : \"2rem\",\n width: isMobile ? \"1.125rem\" : isTablet? \"1.5rem\" : \"2rem\",\n marginLeft: \"auto\",\n },\n };\n return (\n \n \n \n {children}\n \n \n );\n}\n\nexport default CustomModalComponent;\n","import { Typography } from \"@mui/material\";\nimport React from \"react\";\nimport \"./TitleComponent.scss\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { MdOutlineEdit } from \"react-icons/md\";\nimport { useTheme } from \"@mui/material/styles\";\n\nconst TitleComponent = ({ title, handleOnClick, isBackReqd = true, isIcon, onIconClick, ...props }) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n return (\n
\n {isBackReqd && }\n \n {title}\n \n { isIcon && (
\n \n

Edit Profile

\n
)} \n
\n );\n};\n\nexport default TitleComponent;\n","import React from 'react'\nimport Box from \"@mui/material/Box\";\nimport Modal from \"@mui/material/Modal\";\nimport { useMediaQuery, useTheme } from \"@mui/material\";\nimport {MdArrowBackIosNew} from \"react-icons/md\";\n\n\nfunction CustomModalWithTitleComponent({ open, handleClose, title, handleBackButton, bgColor, children, width=\"60%\", customStyles={} }) {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\n const isTablet = useMediaQuery(theme.breakpoints.down('md'));\n\n const style = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: isTablet ? \"90%\" : width,\n bgcolor: bgColor|| \"#FDB913\",\n color: \"white\",\n borderRadius: \"1rem\",\n boxShadow: 24,\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n p: 4, \n outline: \"none\",\n ...customStyles,\n \"& > .outer\":{\n width: \"100%\", \n \"& > .heading\": { \n display:\"flex\",\n flexDirection: \"row\",\n justifyContent:\"space-between\",\n alignItems: \"center\",\n width:\"100%\",\n height: isMobile ? \"1.125rem\" : \"2rem\",\n \"& > .clickable\": {\n cursor: \"pointer\",\n height: isMobile ? \"1.125rem\" : \"2rem\",\n width: isMobile ? \"1.125rem\" : \"2rem\",\n },\n \"& > img\": {\n cursor: \"pointer\",\n height: \"80%\",\n width: \"auto\",\n },\n },\n },\n };\n return (\n \n \n
\n
\n \n

{title}

\n \n
\n {children} \n
\n
\n \n );\n}\n\nexport default CustomModalWithTitleComponent;\n","import { Button } from '@mui/material'\nimport React from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport CustomModalComponent from '../customModalComponent/CustomModalComponent'\n\nconst LoginPromptComponent = ({open, handleClose, redirectFlag=false}) => {\n const navigate = useNavigate()\n return (\n \n
\n

Hi There!

\n

\n Please login/signup to access this!\n

\n
\n {\n redirectFlag?\n navigate('/signin', {state:{redirectFlag: redirectFlag}}):\n navigate('/signin')\n }}\n >\n Login\n \n
\n
\n
\n )\n}\n\nexport default LoginPromptComponent\n","export const cities = [\"Adoni\",\"Agartala\",\"Agra\",\"Ahmedabad\",\"Ahmednagar\",\"Aizawl\",\"Ajmer\",\"Akola\",\"Alappuzha\",\"Aligarh\",\"Allahabad\",\"Alwar\",\"Amaravati\",\"Ambala\",\"Ambarnath\",\"Ambattur\",\"Amravati\",\"Amritsar\",\"Amroha\",\"Anand\",\"Anantapur\",\"Anantapuram\",\"Anantnag\",\"Arrah\",\"Asansol\",\"Aurangabad\",\"Aurangabad\",\"Avadi\",\"Bahraich\",\"Ballia\",\"Bally\",\"Bangalore\",\"Baranagar\",\"Barasat\",\"Bardhaman\",\"Bareilly\",\"Bathinda\",\"Begusarai\",\"Belgaum\",\"Bellary\",\"Berhampore\",\"Berhampur\",\"Bettiah\",\"Bhagalpur\",\"Bhalswa Jahangir Pur\",\"Bharatpur\",\"Bhatpara\",\"Bhavnagar\",\"Bhilai\",\"Bhilwara\",\"Bhimavaram\",\"Bhind\",\"Bhiwandi\",\"Bhiwani\",\"Bhopal\",\"Bhubaneswar\",\"Bhusawal\",\"Bidar\",\"Bidhannagar\",\"Bihar Sharif\",\"Bijapur\",\"Bikaner\",\"Bilaspur\",\"Bokaro\",\"Bongaigaon\",\"Budaun\",\"Bulandshahr\",\"Burhanpur\",\"Buxar\",\"Chandigarh\",\"Chandrapur\",\"Chennai\",\"Chhapra\",\"Chinsurah\",\"Chittoor\",\"Coimbatore\",\"Cuttack\",\"Danapur\",\"Darbhanga\",\"Davanagere\",\"Dehradun\",\"Dehri\",\"Delhi\",\"Deoghar\",\"Dewas\",\"Dhanbad\",\"Dharmavaram\",\"Dhule\",\"Dibrugarh\",\"Dindigul\",\"Durg\",\"Durgapur\",\"Eluru\",\"Erode\",\"Etawah\",\"Faridabad\",\"Farrukhabad\",\"Fatehpur\",\"Firozabad\",\"Gandhidham\",\"Gandhinagar\",\"Gangavathi\",\"Gangtok\",\"Gaya\",\"Ghaziabad\",\"Giridih\",\"Gopalpur\",\"Gorakhpur\",\"Gudivada\",\"Gulbarga\",\"Guna\",\"Guntakal\",\"Guntur\",\"Gurgaon\",\"Guwahati\",\"Gwalior\",\"Hajipur\",\"Haldia\",\"Hapur\",\"Haridwar\",\"Hazaribagh\",\"Hindupur\",\"Hospet\",\"Hosur\",\"Howrah\",\"Hubli–Dharwad\",\"Hyderabad\",\"Ichalkaranji\",\"Imphal\",\"Indore\",\"Jabalpur\",\"Jaipur\",\"Jalandhar\",\"Jalgaon\",\"Jalna\",\"Jamalpur\",\"Jammu\",\"Jamnagar\",\"Jamshedpur\",\"Jaunpur\",\"Jehanabad\",\"Jhansi\",\"Jodhpur\",\"Jorhat\",\"Junagadh\",\"Kadapa\",\"Kakinada\",\"Kalyan-Dombivli\",\"Kamarhati\",\"Kanpur\",\"Karaikudi\",\"Karawal Nagar\",\"Karimnagar\",\"Karnal\",\"Karur\",\"Katihar\",\"Katni\",\"Kavali\",\"Khammam\",\"Khandwa\",\"Kharagpur\",\"Khora, Ghaziabad\",\"Kirari Suleman Nagar\",\"Kishanganj\",\"Kochi\",\"Kolhapur\",\"Kolkata\",\"Kollam\",\"Korba\",\"Kota\",\"Kottayam\",\"Kozhikode\",\"Kulti\",\"Kumbakonam\",\"Kurnool\",\"Latur\",\"Loni\",\"Lucknow\",\"Ludhiana\",\"Machilipatnam\",\"Madanapalle\",\"Madhyamgram\",\"Madurai\",\"Mahbubnagar\",\"Maheshtala\",\"Malda\",\"Malegaon\",\"Mangalore\",\"Mango\",\"Mathura\",\"Mau\",\"Medininagar\",\"Meerut\",\"Mehsana\",\"Midnapore\",\"Mira-Bhayandar\",\"Miryalaguda\",\"Mirzapur\",\"Moradabad\",\"Morbi\",\"Morena\",\"Motihari\",\"Mumbai\",\"Munger\",\"Muzaffarnagar\",\"Muzaffarpur\",\"Mysore\",\"Nadiad\",\"Nagaon\",\"Nagercoil\",\"Nagpur\",\"Naihati\",\"Nanded\",\"Nandyal\",\"Nangloi Jat\",\"Narasaraopet\",\"Nashik\",\"Navi Mumbai\",\"Nellore\",\"New Delhi\",\"Nizamabad\",\"Noida\",\"North Dumdum\",\"Ongole\",\"Orai\",\"Pali\",\"Pallavaram\",\"Panchkula\",\"Panihati\",\"Panipat\",\"Panvel\",\"Parbhani\",\"Patiala\",\"Patna\",\"Phagwara\",\"Phusro\",\"Pimpri-Chinchwad\",\"Pondicherry\",\"Port Blair\",\"Proddatur\",\"Pudukkottai\",\"Pune\",\"Puri\",\"Purnia\",\"Raebareli\",\"Raichur\",\"Raiganj\",\"Raipur\",\"Rajahmundry\",\"Rajkot\",\"Rajpur Sonarpur\",\"Ramagundam\",\"Ramgarh\",\"Rampur\",\"Ranchi\",\"Ratlam\",\"Rewa\",\"Rohtak\",\"Rourkela\",\"Sagar\",\"Saharanpur\",\"Saharsa\",\"Salem\",\"Sambalpur\",\"Sambhal\",\"Sangli-Miraj & Kupwad\",\"Sasaram\",\"Satara\",\"Satna\",\"Secunderabad\",\"Serampore\",\"Shahjahanpur\",\"Shimla\",\"Shimoga\",\"Shivpuri\",\"Sikar\",\"Silchar\",\"Siliguri\",\"Singrauli\",\"Sirsa\",\"Siwan\",\"Solapur\",\"Sonipat\",\"South Dumdum\",\"Sri Ganganagar\",\"Srikakulam\",\"Srinagar\",\"Sultan Pur Majra\",\"Surat\",\"Surendranagar Dudhrej\",\"Suryapet\",\"Tadepalligudem\",\"Tadipatri\",\"Tenali\",\"Tezpur\",\"Thane\",\"Thanjavur\",\"Thiruvananthapuram\",\"Thoothukudi\",\"Thrissur\",\"Tinsukia\",\"Tiruchirappalli\",\"Tirunelveli\",\"Tiruppur\",\"Tiruvottiyur\",\"Tumkur\",\"Udaipur\",\"Udupi\",\"Ujjain\",\"Ulhasnagar\",\"Uluberia\",\"Unnao\",\"Uzhavarkarai\",\"Vadodara\",\"Varanasi\",\"Vasai-Virar\",\"Vasco Da Gama\",\"Vellore\",\"Vijayanagaram\",\"Vijayawada\",\"Visakhapatnam\",\"Warangal\",\"Yamunanagar\"]","import \"./EditProfileComponent.scss\"\nimport React, { useContext, useEffect, useState } from 'react'\nimport TitleComponent from '../../shared/titleComponent/TitleComponent';\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\";\nimport Context from \"../../context/Context\"\nimport { useNavigate } from \"react-router-dom\";\nimport { Autocomplete, Button, FormControlLabel, Grid, Paper, Radio, RadioGroup, TextField } from \"@mui/material\";\nimport { cities } from \"../../utils\";\nimport { makeStyles } from \"@mui/styles\";\nimport CustomModalComponent from \"../../shared/customModalComponent/CustomModalComponent\";\nimport axios from \"axios\";\nimport { BEURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport InputComponent from \"../../shared/inputComponent/InputComponent\";\nimport { checkTypes, checkValidation } from \"../../utils/inputCheckValidation\";\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\";\n\nconst useStyles = makeStyles((theme) => ({\n inputRoot: {\n color: \"white\",\n fontFamily: \"CaustenM\",\n fontSize: \"1.375rem\",\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderRadius: \"10px\",\n border: \"1px solid #FFF\",\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderRadius: \"10px\",\n border: \"1px solid #FFF\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderRadius: \"10px\",\n border: \"1px solid #FFF\",\n }\n }\n}));\n\nconst RadioBtn = ({value, label}) => (\n } \n label={label} />\n)\n\nconst EditProfileComponent = () => {\n const navigate = useNavigate()\n const [city, setCity] = useState(\"\");\n const [firstName, setFirstName] = useState(\"\")\n const [lastName, setLastName] = useState(\"\")\n const [phoneNumber, setPhoneNumber] = useState(\"\")\n const [intro, setIntro] = useState(\"\")\n const [username, setUsername] = useState(\"\")\n const [ageGroup, setAgeGroup] = useState(\"\")\n const [isDisabled, setIsDisabled] = useState(false)\n const [imageURL, setImageURL] = useState(\"\")\n const [isImageUploaded, setIsImageUploaded] = useState(false)\n const {isLoggedIn, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag} = useContext(Context)\n const classes = useStyles();\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n useEffect(() => {\n if (!isLoggedIn)\n return //do not proceed if not logged in\n const url = BEURL + apiEndpoints.getProfile\n setLoadingDisplayFlag(true)\n axios.get(url).then((res) => {\n setFirstName(res.data['given_name'] || \"\")\n setLastName(res.data['family_name'] || \"\")\n setUsername(res.data['username'] || \"\")\n setIsDisabled(!!res.data['username'])\n setAgeGroup(res.data['custom:age_group'] || \"\")\n setCity(res.data['locale'] || \"\")\n setPhoneNumber(res.data['phone_number']?.slice(3) || \"\") \n setIntro(res.data['profile'] || \"\")\n setImageURL(res.data['picture'] || \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/no-image.jpg\") \n setLoadingDisplayFlag(false)\n }).catch((err) => console.log(err))\n }, []) \n\n const handleSave = () => {\n var errorMessage = checkValidation([\n {value: username, fieldName:\"Username\", checksFor: [checkTypes.NOTEMPTY, checkTypes.NOOFCHARS], charLength: 5, charLengthCheckType:\"GREATER\"}, \n {value: ageGroup, fieldName:\"Age\", checksFor: [checkTypes.NOTEMPTY]},\n {value: phoneNumber, fieldName:\"Mobile Number\", checksFor: [checkTypes.NOOFCHARS], charLength: 10, charLengthCheckType:\"EQUAL\"},\n {value: firstName, fieldName:\"First Name\", checksFor: [checkTypes.NOTEMPTY, checkTypes.NAME]},\n {value: lastName, fieldName:\"Last Name\", checksFor: [checkTypes.NOTEMPTY, checkTypes.NAME]},\n ])\n if(errorMessage){\n return setAlert(\"error\", errorMessage)\n }else{\n const url = BEURL + apiEndpoints.updateProfile\n const data = {\n 'given_name':firstName.trim(),\n 'family_name':lastName.trim(),\n 'locale':city,\n 'profile':intro.trim(),\n 'phone_number':phoneNumber,\n 'custom:age_group': ageGroup,\n 'preferred_username':username.trim().toLowerCase()\n }\n if (isImageUploaded){\n data['image'] = imageURL\n }\n axios.post(url,data).then(() => {\n setAlert('success', 'Profile successfully updated!')\n setTimeout(() => {\n navigate(\"/profile\")\n }, 2000); \n })\n } \n };\n\n const handleUsernameChange = (e) => {\n if(username.length>=5){\n const url = BEURL + apiEndpoints.checkUsername\n const data = {\n \"username\": e.target.value\n }\n setLoadingDisplayFlag(true)\n axios.post(\n url,\n data\n ).then((res) => {\n setAlert(\"info\", res.data)\n setUsername(e.target.value)\n }\n ).catch((error) => {\n setAlert(\"error\", error.response.data)\n setUsername(\"\")\n }\n ).finally(() => setLoadingDisplayFlag(false))\n }\n }\n\n const handleImageClick = () => {\n document.getElementById(\"imgupload\").click()\n }\n\n const handleFileChange = (e) => {\n let reader = new FileReader();\n let file = e.target.files[0];\n \n if (file.size> 2000000){\n setAlert(\"error\",\"Image too big, max image size is 2MB\")\n return\n }\n\n reader.readAsDataURL(file)\n\n reader.onloadend = () => {\n setImageURL(reader.result)\n setIsImageUploaded(true)\n }\n }\n \n \n if (!isLoggedIn){\n return(\n navigate('/')} />\n )\n }\n return (\n
\n navigate(\"/profile\")}\n align=\"left\" style={{marginRight: \"auto\", marginLeft:'14%'}}\n /> \n
\n \n \n
\n
\n \n \n setUsername(e.target.value)} OnBlur={handleUsernameChange}\n />\n \n \n
\n \n setAgeGroup(e.target.value)}\n row\n sx = {{rowGap: \"0.5rem\", columnGap: \"%\"}}\n > \n \n \n \n \n
\n
\n \n setFirstName(e.target.value)}\n />\n \n \n setLastName(e.target.value)}\n />\n \n \n setPhoneNumber(e.target.value)}\n />\n \n \n
\n \n {setCity(newValue)}}\n PaperComponent={({ children }) => (\n {children}\n )}\n renderInput={(params) => (\n \n )}\n />\n
\n
\n \n setIntro(e.target.value)}\n />\n \n
\n
\n
\n \n
\n
\n )\n}\n\nexport {EditProfileComponent as default, RadioBtn}","import \"./BlueInputComponent.scss\"\nimport React from 'react'\n\nconst BlueInputComponent = ({Type=\"text\", Value, OnChange, Maxlength, id, disabled=false}) => {\n return (\n \n )\n}\n\nconst BlueTextAreaComponent = ({Value, OnChange, Maxlength, Rows=\"4\"}) => {\n return (\n \n )\n}\n\nexport {BlueInputComponent as default, BlueTextAreaComponent }","import { Button } from '@mui/material'\nimport React, { useContext, useState } from 'react'\nimport Context from '../../../context/Context'\nimport QuizMediaComponent from '../../quizComponent/quizMediaComponent/quizMediaComponent/QuizMediaComponent'\nimport { mediaTypeFromMime } from \"./../../../shared/constants\"\n\nconst MediaUploadComponent = ({placeholderimage, imageURL, setImageURL}) => {\n const [isMediaUploaded, setIsMediaUploaded] = useState(false)\n const [mediaFileName, setMediaFileName] = useState(\"\")\n const [mediaType, setMediaType] = useState(null)\n\n const {setNotificationType, setNotificationMessage, setNotificationDisplayFlag} = useContext(Context)\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n const handleMediaClick = () => {\n document.getElementById(\"media_upload\").click()\n }\n\n const handleFileChange = (e) => {\n let reader = new FileReader();\n let file = e.target.files[0];\n \n if (file.size> 20000000){\n setAlert(\"error\",\"File too big, max file size is 20MB\")\n return\n }\n setMediaType(mediaTypeFromMime(file.type))\n setMediaFileName(file.name)\n reader.readAsDataURL(file)\n\n reader.onloadend = () => {\n console.log(reader.result)\n setImageURL(reader.result)\n setIsMediaUploaded(true)\n }\n }\n return (\n <>\n \n \n {imageURL===\"\"?:}\n \n )\n}\n\nexport default MediaUploadComponent","import React from \"react\";\nconst QuizImageComponent = ({ imageUrl, width, height, onMediaClick=()=>{} }) => {\n const handlefallbackImage = (e) => {\n e.target.src = \"/images/QT-Question-Flip.png\"\n };\n return (\n \n );\n};\n\nexport default QuizImageComponent;\n","import React from \"react\";\n// import { PiFilmSlate } from \"react-icons/pi\";\nimport { MdOndemandVideo } from \"react-icons/md\";\n\nconst QuizVideoComponent = ({ videoUrl, width, height, slideType=\"normal\", onMediaClick=()=>{} }) => {\n return (\n <>\n {slideType==\"normal\" && (\n \n )}\n {slideType==\"mini\" && (\n
\n \n
\n )}\n \n );\n};\n\nexport default QuizVideoComponent;\n","import React from \"react\";\nimport \"./QuizAudioComponent.scss\";\nimport { FaMusic } from \"react-icons/fa\";\n\nconst QuizAudioComponent = ({ audioUrl, width, height, slideType=\"normal\", onMediaClick=()=>{} }) => {\n return (\n
\n {slideType==\"normal\" && (<>\n \n \n )}\n {slideType==\"mini\" && ()}\n
\n );\n};\n\nexport default QuizAudioComponent;\n","import React, { useState, useEffect } from \"react\";\nimport QuizImageComponent from './../quizImageComponent/QuizImageComponent'\nimport QuizVideoComponent from './../quizVideoComponent/QuizVideoComponent'\nimport QuizAudioComponent from './../quizAudioComponent/QuizAudioComponent'\nimport { BsExclamationTriangle } from \"react-icons/bs\";\nimport { Tooltip } from \"@mui/material\";\n\n// Determine the media type based on the file extension\nconst getMediaType = (url) => {\n // For media just uploaded and result read as url\n var uploadFileRegexPattern = /^data:(video|audio|image)\\//;\n if(uploadFileRegexPattern.test(url)){\n // Extract the media type from the url using regex exec function\n return uploadFileRegexPattern.exec(url)[1];\n }\n else{\n if(!url){\n return 'noMedia';\n }\n // Find imagename from url\n const urlImageName = url?.split('/').pop()\n if(!urlImageName.includes(\".\")){\n return 'noMedia';\n }\n // Find extension from urlImageName \n const fileExtension = urlImageName?.split('.').pop().toLowerCase();\n if (['mp4', 'webm', 'ogg', 'avi', 'mov'].includes(fileExtension)) {\n return 'video';\n } else if (['mp3', 'wav', 'ogg', 'flac', 'mpeg'].includes(fileExtension)) {\n return 'audio';\n } else if (['jpg', 'jpeg', 'png', 'gif', 'bmp'].includes(fileExtension)) {\n return 'image';\n } else {\n return 'unsupported';\n }\n }\n};\n\nconst UnsupportedMediaComponent = ({slideType=\"normal\"}) => {\n return (\n
\n {slideType==\"normal\" && (\n \n
\n \n
\n
\n )}\n {slideType==\"mini\" && ()}\n
\n );\n}\n\nconst QuizMediaComponent = ({ mediaUrl, mediaTypeParam=null, width=\"auto\", height=\"auto\", slideType=\"normal\", onMediaClick=()=>{} }) => {\n const [mediaType, setMediaType] = useState(\"loading\");\n\n useEffect(() => {\n if(mediaTypeParam){\n setMediaType(mediaTypeParam)\n }\n else{\n setMediaType(getMediaType(mediaUrl))\n }\n }, [mediaUrl, mediaTypeParam])\n \n return (\n <>\n { (mediaType==='image') && }\n { (mediaType==='video') && }\n { (mediaType==='audio') && }\n { (mediaType==='noMedia') && }\n { (mediaType==='unsupported') && }\n { (mediaType==='loading') && \"Loading...\" }\n \n );\n};\n\nexport default QuizMediaComponent;","import \"./SaveordiscardComponent.scss\"\nimport React from 'react'\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\"\n\nconst SaveordiscardComponent = ({isSaveDisabled, handleSave, handleDiscard}) => {\n const style ={\n activeSaveStyle:{\n width: \"220px\",\n fontSize:\"22px\",\n paddingTop:\"8px\",\n paddingBottom:\"8px\"\n },\n inactiveSaveStyle:{\n width: \"220px\",\n background: \"#222222\",\n opacity: \"0.2\",\n color:\"white\",\n fontSize:\"22px\",\n paddingTop:\"8px\",\n paddingBottom:\"8px\"\n },\n discardStyle:{\n width: \"220px\",\n border:\"2px solid #FFFFFF\",\n background: \"transparent\",\n fontSize:\"22px\",\n paddingTop:\"8px\",\n paddingBottom:\"8px\"\n\n }\n }\n return (\n
\n \n \n
\n )\n}\n\nexport default SaveordiscardComponent","import \"./DiscardSlideComponent.scss\"\nimport React from 'react'\nimport CustomModalWithTitleComponent from '../../../shared/customModalComponent/CustomModalWithTitleComponent'\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\"\n\nconst DiscardSlideComponent = ({open, handleClose, handleDiscardSlide}) => {\n return (\n \n
\n

\n Are you sure you want to discard this slide? This action cannot be undone.\n

\n \n
\n
\n )\n}\n\nexport default DiscardSlideComponent","import React, { useContext } from 'react';\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\nimport './MobileTimerComponent';\nimport Context from '../../../context/Context';\n\nfunction CircularProgressWithLabel(props) {\n let secondsLeft, minutesLeft, fontTextSize\n if(!props.displayValue){\n secondsLeft = props.maxTime - props.timePassed \n minutesLeft = ~~(secondsLeft / 60) //bitwise operation to get whole number\n secondsLeft = (\"0\" + secondsLeft % 60).slice(-2) //prepend 0 if single digit\n }\n \n return (\n \n
\n
\n \n

\n {/* {`${Math.round(props.maxTime - props.value / (100 / props.maxTime))}`} */}\n {props.displayValue? props.displayValue:`${minutesLeft}:${secondsLeft}`}\n

\n
\n \n );\n}\n\n//Added displayValue prop and default is null\nconst MobileTimerComponent = ({maximumTime, progress, displayValue=null, dialSize=\"3rem\", textSize=\"1rem\", dialColor=\"#FDB913\"}) => {\n const maxTime = isNaN(maximumTime) ? 30: maximumTime; //if max time is not passed default to 30s\n const normalize = (value) => (value * 100) / maxTime;\n\n return (\n maxTime?maxTime:progress)} maxTime={maxTime} timePassed= {progress>maxTime?maxTime:progress} /> //prevent timer from running past maxTime\n );\n}\n\nexport default MobileTimerComponent","import \"./MiniSlideComponent.scss\";\n\nimport React, { useContext } from \"react\";\nimport Context from \"../../../../context/Context\";\nimport { S3URL } from \"../../../../api/BaseUrl\";\nimport { MdClose } from \"react-icons/md\";\nimport { IconContext } from \"react-icons\";\nimport { Tooltip } from \"@mui/material\";\nimport { RearrangeIcon } from \"../../../../shared/Icons\";\nimport { shortenText } from \"../../../../shared/constants\";\nimport QuizMediaComponent from \"../../../quizComponent/quizMediaComponent/quizMediaComponent/QuizMediaComponent\";\n\nconst MiniOptions = ({ correctOption, option }) => {\n return (\n
\n {correctOption === option && (\n \n )}\n
\n );\n};\n\nconst MiniSlideComponent = ({\n questionData,\n isImage = true,\n handleDeleteClick,\n children,\n}) => {\n const { activeSlides, setActiveSlides, setQuestionData, dragFlag } =\n useContext(Context);\n\n const handleSlideMouseDown = (e) => {\n // Code with control key for multiple slide selection and drag\n // if (!e.ctrlKey && !e.metaKey) {\n // //if ctrl or cmd key is not pressed set the active slide to the clicked slide\n // setActiveSlides([questionData.questionId]);\n // } else {\n // //if ctrl or cmd key is pressed\n\n // //if the clicked slide is not already active add it to the active slides\n // if (activeSlides.indexOf(questionData.questionId) === -1) {\n // setActiveSlides([...activeSlides, questionData.questionId]);\n // }\n // //if the clicked slide is already active remove it from the active slides\n // else {\n // setActiveSlides(\n // activeSlides.filter((slide) => slide !== questionData.questionId)\n // );\n // }\n // }\n\n setActiveSlides([questionData.questionId]);\n\n // setQuestionData for mouse downed slide\n setQuestionData(questionData);\n };\n\n return (\n -1\n ? \"miniSlide miniSlide__active\"\n : \"miniSlide\"\n }\n id={questionData.questionId}\n onMouseDown={handleSlideMouseDown}\n >\n {dragFlag &&\n activeSlides.length != 1 &&\n activeSlides.includes(questionData.questionId) ? ( // During drag and more than 1 active slide exists and current question id is in active slides\n activeSlides[0] === questionData.questionId && ( // Display slide count view for the first question in active slides. Dont display the rest of the active slides except for the first one\n
\n {\" \"}\n {activeSlides.length} slides selected\n
\n ) // Default miniSlide view\n ) : (\n
\n {questionData.questionId && (\n \n )}\n\n
\n
\n

\n {(questionData.questionTitle &&\n shortenText({\n stringElement: questionData.questionTitle,\n charCount: 25,\n }))}\n

\n \n
\n \n {\n handleDeleteClick(\n questionData.quizId,\n questionData.questionId\n );\n }}\n />\n \n
\n
\n
\n \n {isImage && }\n
\n {children}\n
\n \n )}\n \n );\n};\n\nexport { MiniSlideComponent as default, MiniOptions };\n","import \"./QuestionDetailsComponent.scss\"\n\nimport React, { useState } from 'react'\nimport CustomModalWithTitleComponent from \"../../../shared/customModalComponent/CustomModalWithTitleComponent\"\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\"\nimport {BsPlusLg} from 'react-icons/bs'\nimport {FiMinus} from 'react-icons/fi'\n\nconst QuantityIncrementButtons = ({value, setValue, incrementByValue=10, decrementByValue=10}) => {\n const decrementValue = () => {\n if (value >= decrementByValue) {\n setValue((prevValue) => prevValue - decrementByValue);\n }\n };\n const incrementValue = () => { setValue((prevValue) => (prevValue + incrementByValue)) }\n return(\n
\n \n

{value}

\n \n
\n )\n}\n\nconst QuestionDetailsComponent = ({open, handleClose, handleAddQuestion, editQuestonFlag=false, time, setTime, points, setPoints}) => {\n return (\n \n
\n
\n

\n Points earned if answered correctly\n

\n \n
\n
\n

\n Time limit for question in seconds\n

\n \n
\n \n
\n \n )\n}\n\nexport default QuestionDetailsComponent","import React from 'react'\n\nconst dropdownIconStyle = {\n width: \"1.5rem\",\n height: \"1.5rem\",\n}\n\nexport const HelpIcon = (props) => (\n \n)\n\nexport const ExitIcon = (props) => (\n \n)\n\nexport const LogoutIcon = (props) => (\n \n)\n\nexport const SettingsIcon = (props) => (\n \n)\nexport const ShareIcon = (props) => (\n \n)\n\nexport const EditIcon = (props) => (\n \n)\n\nexport const RearrangeIcon = (props) => (\n \n)","import \"./DashboardDrawerComponent.scss\"\nimport React from 'react';\nimport Drawer from '@mui/material/Drawer';\nimport { List, ListItem, ListItemButton, ListItemText } from '@mui/material';\nimport { useNavigate } from \"react-router-dom\";\n\nconst drawerWidth = \"20%\";\n\nconst DashboardDrawerComponent = ({selectedView}) => {\n const drawerItems = [\"dashboard\", \"library\", \"reports\"]\n // const drawerItems = [\"reports\"]\n const navigate = useNavigate()\n return (\n
\n \n\n \n {drawerItems.map((item, idx) => (\n \n navigate(\"/\"+item.replace(/\\s/g,''))}\n >\n \n {item}\n \n \n \n ))}\n \n\n \n
\n )\n}\n\nexport default DashboardDrawerComponent","import \"../createMCQComponent/CreateMCQComponent.scss\";\n\nimport React, { useContext, useEffect, useState } from \"react\";\nimport BlueInputComponent, {\n BlueTextAreaComponent,\n} from \"../blueInputComponent/BlueInputComponent\";\nimport MediaUploadComponent from \"../mediaUploadComponent/MediaUploadComponent\";\nimport SaveordiscardComponent from \"../saveordiscardComponent/SaveordiscardComponent\";\nimport DiscardSlideComponent from \"../discardSlideComponent/DiscardSlideComponent\";\nimport { BEURL, S3URL } from \"../../../api/BaseUrl\";\nimport Context from \"../../../context/Context\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport axios from \"axios\";\nimport { get_answer_blanks_with_hint_letter } from \"../../../shared/constants\";\n\nconst CreateNonQuestionComponent = ({\n questionData = \"\",\n questionTitle = \"\",\n questionImageURL = \"\",\n info = \"\",\n quizid = \"\",\n setComponentInFocus = \"\",\n handleSubmitAnswer = false,\n}) => {\n const [answerContent, setAnswerContent] = useState(info);\n const media_upload_placeholder_image =\n \"/images/upload_media_placeholder_image.png\";\n const [imageURL, setImageURL] = useState(questionImageURL);\n const [title, setTitle] = useState(questionTitle);\n const [isSaveDisabled, setIsSaveDisabled] = useState(true);\n const [openDiscardConfirmation, setOpenDiscardConfirmation] = useState(false);\n useEffect(() => {\n setIsSaveDisabled(title === \"\");\n }, [title, answerContent]);\n\n //when navigated after clicking on the miniSlides\n useEffect(() => {\n if (Object.keys(questionData).length === 0) return; //dont execute if questionData is empty\n questionData.questionTitle && setTitle(questionData.questionTitle);\n questionData.answerChoices &&\n setAnswerContent(eval(questionData.answerChoices)[0]);\n questionData.s3ImageName &&\n setImageURL(S3URL + \"readymade/\" + questionData.s3ImageName);\n }, [questionData]);\n\n const { setLoadingDisplayFlag, setEditQuestionsList, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setQuestionData } = useContext(Context);\n \n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n }\n\n //Add question\n const saveQuestion = (data, isEdit) => {\n const url = isEdit\n ? BEURL + apiEndpoints.editQuestion\n : BEURL + apiEndpoints.addQuestion;\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n let editedQuestions = res.data;\n editedQuestions = editedQuestions.map(question => {\n if (question.questionType === \"CNT\" || question.questionType === \"FIB\") {\n question.answerBlanks = get_answer_blanks_with_hint_letter(eval(question.correctAnswer)[0]);\n }\n return question;\n });\n setEditQuestionsList(editedQuestions);\n if (isEdit) {\n let editedQuestion = editedQuestions.find((question) => {\n return data.questionId === question.questionId;\n });\n setQuestionData(editedQuestion); \n }\n if (res.status === 200) {\n if (isEdit) {\n setAlert(\"success\", \"Slide Edited Successfully\");\n }\n else {\n setAlert(\"success\", \"Slide Added Successfully\");\n }\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n setLoadingDisplayFlag(false);\n if (!isEdit)\n //if question was not edited i.e added then go to new slide\n setComponentInFocus(\"SelectSlideComponent\"); //show new slide\n });\n };\n\n const handleSave = () => {\n if (handleSubmitAnswer === false) {\n //add non question slide\n setLoadingDisplayFlag(true);\n const data = {\n quizId: quizid,\n questionType: \"NQS\",\n questionTitle: title,\n questionImage: imageURL,\n answerChoices: [answerContent],\n timer: 5, //default\n maxPoints: 0, //default\n };\n //Add questionId for edited question\n if (!!questionData.questionId) data.questionId = questionData.questionId;\n //If the question was already present send a edit request\n //Else add new question\n saveQuestion(data, !!questionData.questionId);\n } else {\n handleSubmitAnswer(imageURL, answerContent);\n }\n };\n\n return (\n <>\n setOpenDiscardConfirmation(false)}\n handleDiscardSlide={() => setComponentInFocus(\"SelectSlideComponent\")}\n />\n\n
\n
\n

Title({title.length}/300 characters)

\n setTitle(e.target.value)}\n Maxlength=\"300\"\n disabled={!!questionTitle}\n />\n
\n \n
\n

\n Explanation({answerContent.length}/300 characters)\n

\n setAnswerContent(e.target.value)}\n Maxlength=\"300\"\n />\n
\n setOpenDiscardConfirmation(true)}\n />\n
\n \n );\n};\n\nexport default CreateNonQuestionComponent;\n","import React, { useContext } from 'react'\nimport \"./TimerComponent.scss\"\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport Box from \"@mui/material/Box\";\nimport { makeStyles } from '@mui/styles'\nimport Context from '../../../context/Context';\n\nconst LinearProgressWithLabel = (props) => {\n\n const { leaderBoardOpen } = useContext(Context);\n\n const useStyles = makeStyles(theme => ({\n colorPrimary: {\n backgroundColor: '#FDB913',\n borderRadius: '5px',\n height: \"10px\"\n\n },\n barColorPrimary: {\n backgroundColor: '#0097D4',\n height: \"10px\"\n }\n }));\n\n const classes = useStyles();\n\n return (\n \n
\n \n
\n {/* \n

{`${Math.round(props.maxTime -(props.value/(100/props.maxTime)))}`}

\n
*/}\n
\n );\n}\n\nconst TimerComponent = ({ maximumTime, progress, getReadyRoom=false }) => {\n const maxTime = isNaN(maximumTime) ? 30 : maximumTime; //if max time is not passed default to 30s\n const normalize = (value) => ((value) * 100) / (maxTime);\n return (\n \n maxTime?maxTime:progress)} maxTime={maxTime} /> \n \n );\n}\n\nexport default TimerComponent\n","import React, { useContext } from 'react'\nimport Context from '../../context/Context';\n\nimport \"./AnsweredCountComponent.scss\"\n\nconst AnsweredCountComponent = () => {\n\n const { playerAnswerCount, leaderboardData } = useContext(Context);\n\n return (\n
\n
\n {playerAnswerCount}/{leaderboardData?.noOfActivePlayers}\n
\n
Answered
\n
\n )\n}\n\nexport default AnsweredCountComponent","import React, { useEffect } from \"react\";\nimport CustomModalComponent from \"../customModalComponent/CustomModalComponent\";\nimport { Button } from \"@mui/material\";\nimport \"./WarningComponent.scss\"\nimport { useNavigate } from \"react-router-dom\";\n\n\nconst WarningComponent = ({modalOpen, setModalOpen, handleClick, buttonText, children}) => {\n\n const handleBtnClick = () => {\n handleClick()\n setModalOpen(false)\n }\n\n return (\n setModalOpen(false)}\n >\n
\n {children}\n \n {buttonText}\n \n
\n \n );\n}\n\nexport default WarningComponent;\n\n","import React, { useContext, useState } from \"react\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\"\nimport { CgArrowLongRight } from \"react-icons/cg\";\nimport FillButtonComponent from \"../../../../shared/fillButtonComponent/FillButtonComponent\";\nimport AnsweredCountComponent from \"../../../../shared/answeredCountComponent/AnsweredCountComponent\";\nimport Context from \"../../../../context/Context\";\n\nimport \"./quizMTFComponent.scss\"\n\nconst QuizMTFComponent = ({ question, questionCount, noOfQuestions, handleAnswerSubmit, leaderBoardOpen, selectedAnswer, sendTimeUp }) => {\n\n const { questionId, questionTitle, quizType, imageName, answerChoices, quizId } = question || {};\n\n const { host } = useContext(Context);\n\n const answerChoicesList = eval(answerChoices);\n\n const [mtfQuestions, setMtfQuestions] = useState([...answerChoicesList[0]]);\n const [mtfAnswers, setMtfAnswers] = useState([]);\n const [mtfOptions, setMtfOptions] = useState([...answerChoicesList[1]]);\n\n const handleDragEnd = ({ destination, source }) => {\n // console.log(\"to \", destination);\n // console.log(\"from \", source);\n if (!destination) {\n console.log(\"not valid drop location\");\n return;\n }\n\n if (destination.index === source.index && destination.droppableId === source.droppableId) {\n console.log(\"Dropped in same position\");\n return;\n }\n\n // Note: The react-beautiful-dnd seems to be unstable, and to overcome some issues, \n // have added some workaround.\n // When an element is dragged/moved out of mtfQuestions, mtfAnswers or mtfOptions, generally it should be\n // enough to remove it from the list. However, removing it breaks the DnD. So we are replacing it with\n // a dummy element called magicWordFFF.\n\n let itemCopy;\n if (destination.droppableId === \"options\") {\n if (source.droppableId != \"options\") {\n itemCopy = mtfAnswers[parseInt(source.droppableId)]\n setMtfOptions(prev => [...prev, itemCopy])\n setMtfAnswers(prev => {\n prev[parseInt(source.droppableId)] = \"magicWordFFF\"\n return prev;\n })\n }\n\n } else {\n\n //dropped in one of the answer column\n\n if (source.droppableId === \"options\") { //picked up from options\n itemCopy = mtfAnswers[parseInt(destination.droppableId)]\n setMtfAnswers(prev => {\n prev[parseInt(destination.droppableId)] = mtfOptions[source.index]\n return prev\n })\n setMtfOptions(prev => {\n prev[source.index] = \"magicWordFFF\";\n if (itemCopy) {\n prev = [...prev, itemCopy]\n }\n return prev\n })\n } else { //picked up from answers\n itemCopy = mtfAnswers[parseInt(destination.droppableId)]\n setMtfAnswers(prev => {\n prev[parseInt(destination.droppableId)] = prev[parseInt(source.droppableId)]\n prev[parseInt(source.droppableId)] = \"magicWordFFF\"\n return prev\n })\n if (itemCopy) {\n setMtfOptions(prev => [...prev, itemCopy])\n }\n }\n }\n\n }\n\n\n const handleSubmit = () => {\n handleAnswerSubmit(mtfAnswers);\n }\n\n return (\n
\n\n
\n

{questionTitle}

\n

\n {questionCount} / {noOfQuestions}\n

\n
\n\n
\n {host && question?.hostModeFlag && (\n
\n \n
\n )}\n
\n \n
\n {mtfQuestions.map((question, index) => (\n
\n\n

{question}

\n\n \n\n \n {provided => {\n return (\n
\n \n {(provided) => {\n return (\n \n {\n (mtfAnswers[index] &&\n mtfAnswers[index] !== \"magicWordFFF\") ?\n (

\n {mtfAnswers[index]}\n

)\n : \"\"\n }\n
\n )\n }}\n \n {provided.placeholder}\n
\n )\n }}\n \n
\n ))}\n
\n
\n {/*
*/}\n
\n\n\n \n {provided => {\n return (\n
\n {mtfOptions?.map((option, index) => {\n return (\n \n {(provided) => {\n return (\n \n {\n option == \"magicWordFFF\" ||\n\n

\n {option}\n

\n }\n
\n )\n }}\n \n )\n })}\n {provided.placeholder}\n
\n )\n }}\n \n\n
\n \n \n {host && question?.hostModeFlag && (\n
\n \n
\n )}\n \n {(!host || !question?.hostModeFlag) && (\n
\n \n
\n )}\n \n );\n}\n\nexport default QuizMTFComponent;","import React from \"react\";\nimport { CgArrowLongRight } from \"react-icons/cg\";\n\nconst QuizAnswerMTF = ({ correctAnswer }) => {\n const correctAnswerList = eval(correctAnswer);\n // console.log(correctAnswerList);\n\n return (\n
\n {correctAnswerList[0].map((element, index) => (\n
\n\n

{element}

\n\n \n
\n

{correctAnswerList[1][index]}

\n
\n
\n\n ))}\n
\n );\n}\n\nexport default QuizAnswerMTF;","import React from \"react\";\n\nconst QuizArrangeDragArrange = ({ correctAnswer }) => {\n\n const correctAnswerList = eval(correctAnswer);\n // console.log(correctAnswerList);\n\n return (\n
\n {\n correctAnswerList.map((element, index) => (\n
\n {index + 1}\n
\n {element}\n
\n
\n ))\n }\n
\n );\n}\n\nexport default QuizArrangeDragArrange;","import React, { useContext } from 'react'\nimport \"./QuizMCQOptionsComponent.scss\"\nimport Box from \"@mui/material/Box\"\nimport Grid from \"@mui/material/Grid\"\nimport Context from '../../../context/Context'\n\nconst QuizMCQOptionsComponent = ({ answerChoicesList, handleSubmitAnswer, selectedAnswer, hostModeFlag }) => {\n const { host } = useContext(Context);\n\n return (\n \n \n { \n answerChoicesList?.map((choice, index) => (\n \n \n \n ))\n } \n \n \n )\n} \n\nexport default QuizMCQOptionsComponent","\nimport FillButtonComponent from \"../../../../shared/fillButtonComponent/FillButtonComponent\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\"\nimport React, { useContext, useEffect, useState } from \"react\";\nimport AnsweredCountComponent from \"../../../../shared/answeredCountComponent/AnsweredCountComponent\";\nimport Context from \"../../../../context/Context\";\n\nconst QuizDragArrangeComponent = ({ question, questionCount, noOfQuestions, handleAnswerSubmit, leaderBoardOpen, selectedAnswer, sendTimeUp }) => {\n\n const { questionId, questionTitle, quizType, imageName, answerChoices, quizId } = question || {};\n\n const { host } = useContext(Context);\n\n const answerChoicesList = eval(answerChoices);\n\n const [state, setState] = useState([\n // {\n // title: \"index\",\n // items: [\"1\", \"2\", \"3\", \"4\"]\n\n // },\n {\n title: \"Answer\",\n items: []\n },\n {\n title: \"Choices\",\n items: [...answerChoicesList]\n }\n ]);\n\n // useEffect(() => {\n // console.log(state);\n // if (state) {\n // // let data1 = Array.from(state);\n // // console.log(data1);\n // state.map((data, index) => {\n // console.log(data, index);\n // })\n // }\n // }, [])\n\n const handleSubmit = () => {\n handleAnswerSubmit(state[0].items);\n }\n\n const handleDragEnd = ({ destination, source }) => {\n // console.log(\"to \", destination);\n // console.log(\"from \", source);\n if (!destination) {\n console.log(\"not valid drop location\");\n return;\n }\n\n if (destination.index === source.index && destination.droppableId === source.droppableId) {\n console.log(\"Dropped in same position\");\n return;\n }\n\n const itemCopy = state.find(element => element.title === source.droppableId).items[source.index];\n // console.log(itemCopy);\n\n setState(prev => {\n // prev = {...prev};\n prev.find(element => element.title === source.droppableId).items.splice(source.index, 1);\n\n prev.find(element => element.title === destination.droppableId).items.splice(destination.index, 0, itemCopy);\n\n return prev;\n })\n }\n\n return (\n
\n {/*
\n

{questionTitle}

\n\n
*/}\n
\n

{questionTitle}

\n

\n {questionCount} / {noOfQuestions}\n

\n
\n
\n {host && question?.hostModeFlag && (\n
\n \n
\n )}\n
\n \n {state.map((data, index) => {\n return (\n
\n

{data.title}

\n \n {(provided) => {\n return (\n \n {\n data.title == \"Answer\" ?\n ( !data.items.length ?\n

Drag and Drop here

: \"\") : \"\"\n }\n\n {data.items.map((el, index) => {\n return (\n \n {(provided) => {\n return (\n
\n {data.title == \"Answer\" ? index + 1 : \"\"}\n
\n {el}\n
\n
\n )\n }}\n
\n )\n })}\n {provided.placeholder}\n
\n )\n\n }}\n \n
\n )\n })}\n {/*
Answer
\n
\n Options\n\n {answerChoicesList.map((choice, index) => (\n
\n {choice}\n
\n ))}\n
*/}\n \n
\n {host && question?.hostModeFlag && (\n
\n \n
\n )}\n
\n {(!host || !question?.hostModeFlag) && (\n
\n \n
\n )}\n {/*
Submit
*/}\n \n );\n\n}\n\nexport default QuizDragArrangeComponent;","import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport React from \"react\";\nimport MobileTimerComponent from \"../../quizComponent/mobileTimerComponent/MobileTimerComponent\";\nimport \"./QtestMobileFixedHeader.scss\"\n\nconst QtestMobileFixedHeader = ({ questionCount, noOfQuestions, timerProgress, maxTime }) => {\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n return (\n
\n {isTablet && (\n
\n
\n

\n {`Question ${questionCount} / ${noOfQuestions}`}\n

\n \n {\" \"}\n
\n
\n
\n )}\n \n );\n}\nexport default QtestMobileFixedHeader;","import React from \"react\";\nimport \"./QtestQuestionTypeSelectComponent.scss\";\nimport { useEffect } from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport QuizDragArrangeComponent from \"../../quizComponent/quizTypeComponent/quizDragArrangeComponent/QuizDragArrangeComponent\";\nimport QuizMTFComponent from \"../../quizComponent/quizTypeComponent/quizMTFComponent/QuizMTFComponent\";\nimport QtestQuestionBasicComponent from \"../qtestQuestionBasicComponent/QtestQuestionBasicComponent\";\n\nconst QtestQuestionTypeSelectComponent = ({\n question,\n setSelectedAnswer,\n selectedAnswer,\n questionCount,\n noOfQuestions,\n submitAnswer\n}) => {\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const handleAnswerSubmit = (submittedAnswer=null) => {\n submittedAnswer && setSelectedAnswer(submittedAnswer);\n submitAnswer({\n qtestType: question.qtestType,\n questionId: question.questionId,\n playerAnswer: submittedAnswer,\n questionType: question.questionType,\n });\n };\n\n useEffect(() => {\n document.getElementById(\"main\").scrollTo(0, 0);\n }, []);\n\n return (\n
\n {question?.questionType === \"DND\" ? (\n \n ) : question?.questionType === \"MTF\" ? (\n \n ) : (\n \n )}\n
\n );\n};\n\nexport default QtestQuestionTypeSelectComponent;\n","import React from \"react\";\nimport \"./QtestFooterComponent.scss\";\nimport TimerComponent from \"../../quizComponent/timerComponent/TimerComponent\";\n\nconst QtestFooterComponent = ({maxTime=30, timerProgress, showTimer=true}) => {\n \n const timerToDisplay = () => {\n const displayValue = maxTime - timerProgress < 0 ? 0 : maxTime - timerProgress;\n\n //Spliting time to be displayed in minutes and seconds\n const mins = Math.floor(displayValue / 60);\n const secs = displayValue % 60;\n\n //Adding 0 to all values below 10. Ex: 07, 02 etc..\n if (secs >= 10) {\n return (\n mins + \":\" + secs\n );\n } else {\n return (\n mins + \":0\" + secs\n );\n }\n };\n\n return (\n
\n {showTimer && \n <>\n \n
\n

{timerToDisplay()}

\n
\n \n }\n
\n );\n};\n\nexport default QtestFooterComponent;\n","import React, { useEffect } from \"react\";\nimport \"./QtestAnswerComponent.scss\";\nimport { S3URL } from \"../../../api/BaseUrl\";\nimport QuizMediaComponent from \"../../quizComponent/quizMediaComponent/quizMediaComponent/QuizMediaComponent\";\nimport QuizAnswerMTF from \"../../quizComponent/quizAnswerComponent/QuizAnswerMTF\";\nimport QuizArrangeDragArrange from \"../../quizComponent/quizAnswerComponent/QuizAnswerDragArrange\";\n\nconst QtestAnswerSubComponent = ({ answer, title }) => {\n const { correctAnswer, imageName, s3AnswerImageName, answerContent, qtestType, questionType, playerScore, playerRunningScore } =\n answer || {};\n return (\n
\n
\n

{title}

\n
\n

You got {playerScore} points

\n
\n TOTAL POINTS : {playerRunningScore}\n
\n \n {questionType != \"MTF\" && questionType != \"DND\" && (\n \n \n
\n )}\n \n {questionType == \"MTF\" && }\n {questionType == \"DND\" && (\n \n )}\n\n {answerContent != \"None\" && (\n \n

{answerContent}

\n \n )}\n \n );\n};\n\nconst QtestResultSubComponent = ({ rank, totalScore, showResultFlag }) => {\n return (\n
\n \"qTFriends\"\n
\n

\n Thank You. You have successfully completed your QTest!\n

\n
\n {showResultFlag ? \n (
\n

Your Total Score: {totalScore}

\n

Your Rank: {rank}

\n
) : \"\"\n }\n {/* \"qTStranger\" */}\n
\n );\n};\n\nconst QtestAnswerComponent = ({\n answer,\n selectedAnswer,\n showResult,\n rank,\n totalScore,\n showResultFlag,\n}) => {\n const { correctAnswer, questionType } = answer || {};\n let title;\n let displayAnswer = \"'\";\n let same = false;\n\n // Check the answer and form title and displayAnswer only if correctAnswer exists\n if (correctAnswer) {\n if (questionType == \"DND\" || questionType == \"MTF\") {\n const correctAnswerList = eval(correctAnswer);\n if (questionType == \"MTF\") {\n if (\n JSON.stringify(correctAnswerList[1]) == JSON.stringify(selectedAnswer)\n ) {\n same = true;\n }\n } else {\n if (\n JSON.stringify(correctAnswerList) == JSON.stringify(selectedAnswer)\n ) {\n same = true;\n }\n }\n if (same) {\n title = `Good Job! the Correct Answer is`;\n } else {\n title = `Uh-Oh. the Correct Answer is`;\n }\n } else {\n const answers = eval(correctAnswer).map((ans) => ans.toLowerCase());\n displayAnswer = eval(correctAnswer);\n same = answers.includes(selectedAnswer.toLowerCase()) ? true : false;\n if (same) {\n title = `Good Job! '${displayAnswer}' is the Correct Answer!`;\n } else {\n title = `Uh-Oh. '${displayAnswer}' is the Correct Answer!`;\n }\n }\n }\n\n useEffect(() => {\n document.getElementById(\"main\").scrollTo(0, 0);\n }, []);\n\n return (\n <>\n {showResult ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default QtestAnswerComponent;\n","import React, { useEffect, useState } from 'react';\nimport \"./QuizBlanksComponent.scss\";\n\nconst QuizBlanksComponent = ({answerBlanks, setAnswerBlanks, answerSubmitted, setAllowSubmission, wordIndexes}) => {\n \n const [uneditableIndices, setUneditableIndices] = useState([])\n useEffect(() => {\n let indices = [];\n let first_blank_index = 0\n for(let i=0; i {\n if (answerBlanks.includes(\"\")){\n setAllowSubmission(false) \n }else{\n setAllowSubmission(true) // Allow submission only if all the blanks are filled\n }\n }, [answerBlanks])\n \n\n const shiftFocusForward = (e) => { \n let blank_index =Number(e.target.name)\n \n while (blank_index < answerBlanks.length-1){\n let nextElement = document.getElementById(`Blank_${blank_index+1}`)\n if (!nextElement.disabled) { //focus on next element if it is not disabled \n nextElement.focus()\n break\n }\n else blank_index += 1\n } \n }\n\n const shiftFocusBackward = (e) => { \n let blank_index =Number(e.target.name)\n\n while (blank_index > 0){\n let prevElement = document.getElementById(`Blank_${blank_index-1}`)\n if (!prevElement.disabled) { //focus on next element if it is not disabled\n prevElement.focus()\n break\n }\n else blank_index -= 1\n } \n }\n \n const handleOnChange = (e) => {\n const {name, value} = e.target\n setAnswerBlanks(existingItems => existingItems.map((letter, idx) => Number(name) === idx ? value.substring(value.length - 1) : letter)) \n if (value.substring(value.length - 1) !== \"\"){ //dont shift focus forward on deletion \n shiftFocusForward(e)\n }\n }\n\n const handleOnKeyDown = (e) => {\n if ((e.key === \"Delete\") && (e.target.value != \"\")){ // wehn you press delete button on a blank with text\n e.target.value = \"\" // delete the text\n const {name, value} = e.target\n setAnswerBlanks(existingItems => existingItems.map((letter, idx) => Number(name) === idx ? value.substring(value.length - 1) : letter)) \n }\n else if ((e.key === \"Delete\" || e.key === \"Backspace\" ) && (e.target.value == \"\")) { //shift focus back if deleted on empty textbox\n shiftFocusBackward(e) \n }\n }\n\n const createWordBlanks = ([startingIdx, endingIdx]) => ( \n
\n {answerBlanks?.map((letter, index) => {\n if (index >= startingIdx && index <= endingIdx)\n return(\n \n )\n else \n return undefined\n })}\n
\n )\n\n return ( \n wordIndexes.map(createWordBlanks)\n )\n}\n\nexport default QuizBlanksComponent","import React, { useContext, useEffect } from 'react'\nimport \"./QuizFIBComponent.scss\"\nimport { useState } from \"react\"\nimport FillButtonComponent from '../../../shared/fillButtonComponent/FillButtonComponent'\nimport QuizBlanksComponent from '../quizBlanksComponent/QuizBlanksComponent'\nimport Context from '../../../context/Context'\n\nconst QuizFIBComponent = ({ handleFIBAnswer, answerBlanks, hostModeFlag }) => {\n const { host } = useContext(Context);\n\n const [answer, setAnswer] = useState(answerBlanks)\n const [answerSubmitted, setAnswerSubmitted ] = useState(false)\n const [allowSubmission, setAllowSubmission ] = useState(false)\n const [wordIndexes, setWordIndexes] = useState([])\n\n const handleClick = () => {\n setAllowSubmission(false)\n setAnswerSubmitted(true)\n handleFIBAnswer(answer.join(\"\")) //convert array of characters to string\n } \n \n const handleKeyDown = (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n if (allowSubmission) {\n handleClick();\n }\n }\n };\n\n useEffect(() => {\n setAnswer(answerBlanks)\n }, [answerBlanks])\n \n\n useEffect(() => { \n // Find first and last index of all words in the answer (using answerBlanks) and store it in wordIndexes\n let wordIdxs = []\n let firstIdx = 0\n let lastIdx = answerBlanks.indexOf(\" \") // Get end index of first word\n while(lastIdx !== -1){\n wordIdxs.push([firstIdx, lastIdx])\n firstIdx = lastIdx+1\n lastIdx = answerBlanks.indexOf(\" \", firstIdx)\n }\n wordIdxs.push([firstIdx, answerBlanks.length-1])\n setWordIndexes(wordIdxs)\n }, [answerBlanks])\n\n return(\n
\n
\n \n
\n {(!host || !hostModeFlag) && ( \n
\n \n
\n )}\n
\n )\n}\n\nexport default QuizFIBComponent","import \"./MiniMCQComponent.scss\";\nimport MiniSlideComponent, {\n MiniOptions,\n} from \"../miniSlideComponent/MiniSlideComponent\";\n\nimport React from \"react\";\n\nconst MiniMCQComponent = ({\n questionData = {},\n correctOption = \"\",\n questionType,\n handleDeleteClick,\n}) => {\n const Options = questionType === \"MCQ\" ? [\"A\", \"B\", \"C\", \"D\"] : [\"A\", \"B\"];\n return (\n \n
\n {Options.map((option) => (\n \n ))}\n
\n \n );\n};\n\nexport default MiniMCQComponent;\n","import { Button } from '@mui/material'\nimport React from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport CustomModalComponent from '../../../shared/customModalComponent/CustomModalComponent'\n\nconst AccessPromptComponent = ({open}) => {\n const navigate = useNavigate() \n return (\n navigate(\"/\")}>\n
\n

Hi There!

\n

\n You don't have access to edit this quiz!\n

\n
\n navigate('/')}\n >\n OK\n \n
\n
\n
\n \n )\n}\n\nexport default AccessPromptComponent\n","import React from \"react\";\nimport \"./QuizAnswerComponent.scss\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useContext, useEffect } from \"react\";\nimport { S3URL } from \"./../../../api/BaseUrl\";\nimport Context from \"./../../../context/Context\";\nimport QuizMediaComponent from \"./../quizMediaComponent/quizMediaComponent/QuizMediaComponent\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport QuizAnswerMTF from \"./QuizAnswerMTF\";\nimport QuizArrangeDragArrange from \"./QuizAnswerDragArrange\";\n\nconst QuizAnswerComponent = ({\n answer,\n selectedAnswer,\n hostModeFlag\n}) => {\n const navigate = useNavigate();\n const { podiumPage, mobileLeaderBoardOpen, setNoOfCorrectAns, host } = useContext(Context);\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const { correctAnswer, imageName, answerContent, quizType, questionType } = answer || {};\n\n let title;\n let displayAnswer = \"'\";\n let same = false;\n // ***patch code to allow open ended MCQ answers ***\n // if correct answer is null say thank you for your response\n if (eval(correctAnswer)[0] === \"\"){\n console.log(\"in if\");\n if (selectedAnswer){\n same = true\n title = `Thank you for your response!`\n }else{\n same = false\n title = `Uh-Oh. You didn't choose any option`\n }\n \n }\n //elif rest\n // *** the above code is a patch to remove the patch DELETE the above if block and change the below else if block into an if block ***\n else if ((questionType == \"DND\") || (questionType == \"MTF\")) {\n const correctAnswerList = eval(correctAnswer);\n\n if (questionType == \"MTF\") { //MTF\n if (JSON.stringify(correctAnswerList[1]) == JSON.stringify(selectedAnswer)) {\n same = true\n }\n } else { //DND\n if (JSON.stringify(correctAnswerList) == JSON.stringify(selectedAnswer)) {\n same = true\n }\n }\n if (host && hostModeFlag) {\n title = `The correct answer is`;\n } else {\n if (same) { //MTF and DND\n title = `Good Job! the Correct Answer is`;\n } else {\n title = `Uh-Oh. the Correct Answer is`\n }\n }\n\n } else { // The rest\n const answers = eval(correctAnswer).map(ans => ans.toLowerCase())\n displayAnswer = eval(correctAnswer)\n same = answers.includes(selectedAnswer.toLowerCase()) ? true : false\n if (host && hostModeFlag) {\n title = `The correct answer is '${displayAnswer}'`;\n } else {\n if (same) {\n title = `Good Job! '${displayAnswer}' is the Correct Answer!`;\n } else {\n title = `Uh-Oh. '${displayAnswer}' is the Correct Answer!`\n }\n }\n }\n\n\n useEffect(() => {\n if (same) {\n setNoOfCorrectAns(prev => prev + 1);\n }\n }, []);\n\n const goToPodium = () => {\n if (podiumPage) {\n navigate(\"/podium\");\n }\n }\n\n useEffect(() => {\n goToPodium()\n }, [podiumPage]);\n\n useEffect(() => {\n document.getElementById(\"main\").scrollTo(0, 0)\n }, [])\n\n return (\n
\n {isMobile && mobileLeaderBoardOpen || (\n <>\n
\n

{title}

\n
\n\n {questionType != \"MTF\" && questionType != \"DND\" && imageName &&\n
\n \n
}\n\n {questionType == \"MTF\" && }\n {questionType == \"DND\" && }\n\n {(answerContent != \"None\") &&
\n

{answerContent}

\n
}\n \n )}\n
\n );\n};\n\nexport default QuizAnswerComponent;\n","import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport React, { useContext } from \"react\";\nimport QuizMediaComponent from \"../quizMediaComponent/quizMediaComponent/QuizMediaComponent\";\nimport \"./QuizBasicComponent.scss\";\nimport { S3URL } from \"../../../api/BaseUrl\";\nimport Context from \"../../../context/Context\";\nimport QuizFIBComponent from \"../quizFIBComponent/QuizFIBComponent\";\nimport QuizMCQOptionsComponent from \"../quizMCQOptionsComponent/QuizMCQOptionsComponent\"\nimport QuizInfoComponent from \"../quizInfoComponent/QuizInfoComponent\";\nimport AnsweredCountComponent from \"../../../shared/answeredCountComponent/AnsweredCountComponent\";\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\";\n\nfunction QuizBasicComponent({\n question,\n selectedAnswer,\n setSelectedAnswer,\n questionCount,\n noOfQuestions,\n sendTimeUp\n}) {\n const { socket, roomId, leaderBoardOpen, mobileLeaderBoardOpen, timerProgress, host } = useContext(Context);\n const { questionId, questionTitle, quizType, questionType, imageName, answerChoices, answerBlanks, quizId } = question || {};\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isTablet = useMediaQuery(theme.breakpoints.between(\"sm\", \"lg\"));\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"lg\"));\n\n\n const handleSubmitAnswer = (e) => {\n setSelectedAnswer(e.currentTarget.value);\n socket.send(\n JSON.stringify({\n action: \"submitAnswer\",\n playerId: sessionStorage.getItem(\"sessionId\"), //take from local storage later; it's static now\n questionId: questionId,\n quizId: quizId,\n roomId: roomId, //roomId, // take from context\n timeTaken: timerProgress,\n playerAnswer: e.currentTarget.value,\n questionType:questionType\n })\n );\n };\n\n const handleFIBAnswer = (answer) => {\n setSelectedAnswer(answer);\n socket.send(\n JSON.stringify({\n action: \"submitAnswer\",\n playerId: sessionStorage.getItem(\"sessionId\"), //take from local storage later; it's static now\n questionId: questionId,\n quizId: quizId,\n roomId: roomId, //roomId, // take from context\n timeTaken: timerProgress,\n playerAnswer: answer,\n questionType:questionType\n })\n );\n };\n\n const answerChoicesList = eval(answerChoices);\n\n return (\n
\n\n {isMobile && mobileLeaderBoardOpen || (\n <>\n
\n

{questionTitle}

\n

{questionCount} / {noOfQuestions}

\n
\n \n
\n {host && question?.hostModeFlag && (\n
\n \n
\n )}\n
\n \n
\n {host && question?.hostModeFlag && (\n
\n \n
\n )}\n
\n \n {\n [\"FIB\", \"CNT\"].includes(questionType) ?\n
\n \n
\n : questionType ==\"NQS\" ?\n \n :\n \n } \n \n )}\n
\n );\n}\n\nexport default QuizBasicComponent;\n","import React, { useContext, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom';\nimport Context from '../../../context/Context';\nimport FillButtonComponent from '../../../shared/fillButtonComponent/FillButtonComponent';\n\nconst QuizInfoComponent = () => {\n\n const {\n questionData,\n noOfQuestions,\n podiumPage,\n leaderboardData,\n socket,\n host\n } = useContext(Context);\n\n const navigate = useNavigate()\n\n const goToPodium = () => {\n if (podiumPage) {\n navigate(\"/podium\");\n }\n }\n\n useEffect(() => {\n goToPodium()\n }, [podiumPage]);\n\n const handleNextQuestion = () => {\n if (questionData?.questionNumber === noOfQuestions) {\n socket &&\n socket.send(\n JSON.stringify({\n action: \"goToPodium\",\n })\n );\n } else if (questionData?.questionNumber !== noOfQuestions) {\n socket &&\n socket.send(\n JSON.stringify({\n action: \"sendNextQuestion\",\n })\n );\n }\n };\n return (\n <> \n {eval(questionData.answerChoices)[0] && (
\n

{eval(questionData.answerChoices)[0]}

\n
)}\n {(host && (\n
\n \n
\n ))}\n \n )\n}\n\nexport default QuizInfoComponent","import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport React from \"react\";\nimport QuizMediaComponent from \"../../quizComponent/quizMediaComponent/quizMediaComponent/QuizMediaComponent\";\nimport \"./QtestQuestionBasicComponent.scss\";\nimport { S3URL } from \"../../../api/BaseUrl\";\nimport QuizFIBComponent from \"../../quizComponent/quizFIBComponent/QuizFIBComponent\";\nimport QuizMCQOptionsComponent from \"../../quizComponent/quizMCQOptionsComponent/QuizMCQOptionsComponent\";\nimport QtestQuestionInfoComponent from \"../qtestQuestionInfoComponent/QtestQuestionInfoComponent\";\n\nfunction QtestQuestionBasicComponent({\n question,\n selectedAnswer,\n setSelectedAnswer,\n questionCount,\n noOfQuestions,\n handleAnswerSubmit\n}) {\n\n const {\n questionTitle,\n qtestType,\n questionType,\n imageName,\n answerChoices,\n answerBlanks,\n } = question || {};\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isTablet = useMediaQuery(theme.breakpoints.between(\"sm\", \"lg\"));\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"lg\"));\n\n const handleMCQAnswer = (e) => {\n handleAnswerSubmit(e.currentTarget.value)\n };\n\n const handleFIBAnswer = (answer) => {\n handleAnswerSubmit(answer)\n };\n\n const handleNQSProceed = () => {\n handleAnswerSubmit()\n };\n\n const answerChoicesList = eval(answerChoices);\n\n return (\n
\n
\n

{questionTitle}

\n

\n {questionCount} / {noOfQuestions}\n

\n
\n\n
\n \n
\n \n {[\"FIB\", \"CNT\"].includes(questionType) ? (\n
\n \n
\n ) : questionType ==\"NQS\" ?\n \n : (\n \n )}\n
\n );\n}\n\nexport default QtestQuestionBasicComponent;\n","import React from 'react'\nimport \"./QtestQuestionInfoComponent.scss\"\nimport FillButtonComponent from '../../../shared/fillButtonComponent/FillButtonComponent';\n\nconst QtestQuestionInfoComponent = ({handleNext, displayNote, endQuizFlag=false, infoDuration=5}) => {\n return (\n <> \n {displayNote && (
\n

{displayNote}

\n
)}\n
\n \n
\n \n )\n}\n\nexport default QtestQuestionInfoComponent","import React, { useContext, useState, useEffect } from \"react\";\nimport Drawer from \"@mui/material/Drawer\";\nimport { Tooltip } from \"@mui/material\";\nimport MiniMCQComponent from \"../miniSlideComponents/miniMCQComponent/MiniMCQComponent\";\nimport MiniNonQuestionComponent from \"../miniSlideComponents/miniNonQuestionComponent/MiniNonQuestionComponent\";\nimport MiniMTFComponent from \"../miniSlideComponents/miniMTFComponent/MiniMTFComponent\";\nimport MiniFIBComponent from \"../miniSlideComponents/miniFIBComponent/MiniFIBComponent\";\nimport Context from \"../../../context/Context\";\nimport WarningComponent from \"../../../shared/warningComponent/WarningComponent\";\nimport { BEURL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport axios from \"axios\";\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\";\nimport \"./QuizDrawerComponent.scss\";\nimport { EditIcon } from \"../../../shared/Icons\";\nimport { shortenText } from \"../../../shared/constants\";\nimport QuizSettingsComponent from \"../quizSettingsComponent/quizSettingsComponent\";\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\";\n\nconst drawerWidth = \"25%\";\n\nconst QuizDrawerComponent = ({setComponentInFocus, componentInFocus}) => {\n const {\n dragFlag,\n setDragFlag,\n activeSlides,\n setActiveSlides,\n setQuestionData,\n editQuizDetails,\n setEditQuizDetails,\n editQuestionsList,\n setEditQuestionsList,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n } = useContext(Context);\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n const [deleteQuestionModalOpen, setDeleteQuestionModalOpen] = useState(false);\n const [deleteQuestionId, setDeleteQuestionId] = useState(null);\n const [deleteQuestionQuizId, setDeleteQuestionQuizId] = useState(null);\n const [quizSettingsOpen, setQuizSettingsOpen] = useState(false);\n\n const handleDeleteClick = (quizId, questionId) => {\n setDeleteQuestionQuizId(quizId);\n setDeleteQuestionId(questionId);\n setDeleteQuestionModalOpen(true);\n };\n\n const removeDeleteQuestionInView = () => {\n const removedQuestionIndex = editQuestionsList.findIndex(\n (question) => question.questionId == deleteQuestionId\n );\n editQuestionsList.splice(removedQuestionIndex, 1);\n setQuestionData({})\n setComponentInFocus(\"SelectSlideComponent\")\n };\n\n const handleDeleteQuestion = () => {\n setLoadingDisplayFlag(true);\n const url = BEURL + apiEndpoints.deleteQuestion;\n const data = {\n quizId: deleteQuestionQuizId,\n questionId: deleteQuestionId,\n };\n axios\n .post(url, data)\n .then((res) => {\n if (res.status == 200) {\n setLoadingDisplayFlag(false);\n setAlert(\"success\", res.data);\n removeDeleteQuestionInView();\n } else {\n setLoadingDisplayFlag(false);\n setAlert(\"error\", res.data);\n }\n })\n .catch((error) => {\n setLoadingDisplayFlag(false);\n setAlert(\"error\", error.response.data);\n });\n };\n\n const handleQuestionDrop = (result) => {\n setDragFlag(false);\n // Sanity check\n if (result.destination &&\n activeSlides.length > 0 &&\n activeSlides.indexOf(result.draggableId) > -1\n ) {\n const items = Array.from(editQuestionsList);\n const reorderedItems = items.filter((item) => activeSlides.indexOf(item.questionId) > -1); // Question items from the active slide\n const remainingItems = items.filter((item) => activeSlides.indexOf(item.questionId) === -1); // Rest of the question items\n // Drop the items in the destination index\n remainingItems.splice(\n result.destination.index,\n 0,\n ...reorderedItems\n );\n setEditQuestionsList(remainingItems);\n }\n };\n\n const handleEditQuizQuestionOrder = () => {\n setLoadingDisplayFlag(true);\n const url = BEURL + apiEndpoints.editQuizDetails;\n const newQuestionIds = editQuestionsList.map(\n (question) => question.questionId,\n );\n let data = {\n quizId: editQuizDetails.quizId,\n questionIds: newQuestionIds,\n };\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n if (res.status == 200) {\n setAlert(\"success\", res.data);\n setEditQuizDetails((prevDetails) => ({\n ...prevDetails,\n questionIds: newQuestionIds,\n }));\n // Edit Quiz Details in View\n } else {\n setAlert(\"error\", res.data);\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n setLoadingDisplayFlag(false);\n });\n };\n\n const handleQuestionDragStart = (result) => {\n setDragFlag(true);\n };\n const handleQuestionDragUpdate = (result) => {\n // For future animations to correct multiple slide select\n };\n\n return (\n <>\n \n
\n
\n \n
\n {editQuizDetails.quizName && shortenText({stringElement: editQuizDetails.quizName, charCount: 20})}\n
\n
\n { \n setQuizSettingsOpen(true)\n }}\n />\n
\n
\n
\n {editQuizDetails.editedOn &&\n \"last saved on: \" + editQuizDetails.editedOn}\n
\n {editQuestionsList.length > 0 && JSON.stringify(editQuestionsList.map(question => question.questionId)) !== JSON.stringify(editQuizDetails.questionIds) && (\n \n Save Order\n \n )}\n
\n
\n
\n \n \n {(provided) => {\n return (\n
\n {editQuestionsList.map(\n (question, index) =>\n // During drag and more than 1 active slide exists and current question id is in active slides, display only first slide in active slide\n (!dragFlag ||\n activeSlides.length == 1 ||\n !activeSlides.includes(question.questionId) ||\n activeSlides[0] == question.questionId) && ( // Applied Demorgan's law for a \"Display On Condition\"\n \n {(provided) => {\n return (\n \n
\n {index + 1}\n
\n {question.questionType === \"MCQ\" ? (\n \n ) : question.questionType === \"TRF\" ? (\n \n ) : question.questionType === \"MTF\" ||\n question.questionType === \"DND\" ? (\n \n ) : question.questionType === \"CNT\" ||\n question.questionType === \"FIB\" ? (\n \n ) : question.questionType === \"NQS\" ? (\n \n ) : (\n \n )}\n
\n );\n }}\n \n )\n )}\n
\n );\n }}\n \n \n \n {\n setActiveSlides([])\n setQuestionData({})\n }}\n style={{\n height: \"3rem\",\n marginBottom: \"1rem\",\n paddingTop: \"0.2rem\",\n fontSize: \"x-large\",\n backgroundColor: (!editQuestionsList.length || componentInFocus === \"SelectSlideComponent\") ? \"#C1C1C1\" : \"#FDB913\"\n }}\n />\n \n { \n setQuizSettingsOpen(false)\n }}\n />\n \n

\n Are you sure you want to\n
\n Delete this Slide?\n

\n

\n \n This action is irreversible.\n {\" \"}\n Click on the button below if you wish to proceed.\n

\n \n \n );\n};\n\nexport default QuizDrawerComponent;\n","import React from 'react'\nimport MiniSlideComponent from '../miniSlideComponent/MiniSlideComponent'\n\nconst MiniNonQuestionComponent = ({questionData, handleDeleteClick}) => {\n return (\n \n
\n \n )\n}\n\nexport default MiniNonQuestionComponent","import React from 'react'\nimport MiniSlideComponent from '../miniSlideComponent/MiniSlideComponent'\n\nconst MiniMTFComponent = ({questionData, handleDeleteClick}) => {\n let options = []\n for (let i=0; i< 8; i++)\n options.push(
)\n return (\n \n
\n {options}\n
\n
\n )\n}\n\nexport default MiniMTFComponent","import React from \"react\";\nimport MiniSlideComponent from \"../miniSlideComponent/MiniSlideComponent\";\n\nconst MiniFIBComponent = ({ questionData, handleDeleteClick }) => {\n return (\n \n
\n \n );\n};\n\nexport default MiniFIBComponent;","import { RadioGroup } from \"@mui/material\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Context from \"../../../context/Context\";\nimport CustomModalWithTitleComponent from \"../../../shared/customModalComponent/CustomModalWithTitleComponent\";\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\";\nimport InputComponent from \"../../../shared/inputComponent/InputComponent\";\nimport MediaUploadComponent from \"../mediaUploadComponent/MediaUploadComponent\";\nimport DashboardDrawerComponent from \"../../dashboardDrawerComponent/DashboardDrawerComponent\";\nimport { RadioBtn } from \"../../editProfileComponent/EditProfileComponent\";\nimport { BEURL, S3URL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\n\nconst QuizSettingsComponent = ({\n isOpen,\n handleCloseModel,\n}) => {\n const {\n editQuizDetails,\n setEditQuizDetails,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n } = useContext(Context);\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n const [quizName, setQuizName] = useState(\"\");\n const [quizDescription, setQuizDescription] = useState(\"\");\n const [ageGroup, setAgeGroup] = useState(\"\");\n const [quizImage, setQuizImage] = useState(\"\");\n\n useEffect(() => {\n if (editQuizDetails) {\n editQuizDetails.quizName && setQuizName(editQuizDetails.quizName);\n editQuizDetails.quizDescription &&\n setQuizDescription(editQuizDetails.quizDescription);\n editQuizDetails.ageGroup && setAgeGroup(editQuizDetails.ageGroup);\n editQuizDetails.quizImage &&\n setQuizImage(S3URL + \"readymade_banner/\" + editQuizDetails.quizImage);\n }\n }, [editQuizDetails]);\n\n const handleEditQuiz = () => {\n setLoadingDisplayFlag(true);\n const url = BEURL + apiEndpoints.editQuizDetails;\n let data = {\n \"quizId\": editQuizDetails.quizId,\n quizName,\n quizDescription,\n ageGroup,\n quizImage,\n }\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n if (res.status == 200) {\n setAlert(\"success\", res.data);\n // Edit Quiz Details in View\n setEditQuizDetails((prevValue)=>{\n prevValue[\"quizName\"] = quizName\n prevValue[\"quizDescription\"] = quizDescription\n prevValue[\"ageGroup\"] = ageGroup\n return prevValue\n })\n } else {\n setAlert(\"error\", res.data);\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n handleCloseModel()\n setLoadingDisplayFlag(false);\n });\n }\n\n return (\n
\n {\n handleCloseModel();\n }}\n bgColor=\"#4B9710\"\n >\n
\n
\n setQuizName(e.target.value)}\n />\n setQuizDescription(e.target.value)}\n />\n
\n
\n \n
\n
\n
\n \n setAgeGroup(e.target.value)}\n row\n sx={{ rowGap: \"0.5rem\", columnGap: \"%\" }}\n >\n \n \n \n \n
\n \n
\n
\n \n
\n );\n};\n\nexport default QuizSettingsComponent;\n","import \"./CreateMCQComponent.scss\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport SaveordiscardComponent from \"../saveordiscardComponent/SaveordiscardComponent\";\nimport BlueInputComponent from \"../blueInputComponent/BlueInputComponent\";\nimport MediaUploadComponent from \"../mediaUploadComponent/MediaUploadComponent\";\nimport { RadioGroup } from \"@mui/material\";\nimport RadioBtnTicked from \"../radioBtnTicked/RadioBtnTicked\";\nimport { BEURL, S3URL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport axios from \"axios\";\nimport Context from \"../../../context/Context\";\nimport QuestionDetailsComponent from \"../questionDetailsComponent/QuestionDetailsComponent\";\nimport DiscardSlideComponent from \"../discardSlideComponent/DiscardSlideComponent\";\nimport CreateNonQuestionComponent from \"../createNonQuestionComponent/CreateNonQuestionComponent\";\nimport { get_answer_blanks_with_hint_letter } from \"../../../shared/constants\";\n\n//MCQ Blue answer component with options and tick radio button\nconst MCQAnswer = ({ option, answer, setAnswer, questionType }) => {\n const onChangeAnswer = (e) => {\n setAnswer((prevAnswer) => {\n let updatedAnswer = { ...prevAnswer };\n updatedAnswer[e.target.id] = e.target.value;\n return updatedAnswer;\n });\n };\n return (\n
\n

{option}

\n \n \n
\n );\n};\n\nconst CreateMCQComponent = ({\n questionData,\n quizid,\n setComponentInFocus,\n questionType,\n}) => {\n const media_upload_placeholder_image =\n \"/images/upload_media_placeholder_image.png\";\n //states\n const [question, setQuestion] = useState(\"\");\n const [correctOption, setCorrectOption] = useState(\"\");\n const [questionImageURL, setQuestionImageURL] = useState(\"\");\n const [isSaveDisabled, setIsSaveDisabled] = useState(true);\n const [openQuestionDetails, setOpenQuestionDetails] = useState(false);\n const [time, setTime] = useState(30);\n const [points, setPoints] = useState(100);\n const [openDiscardConfirmation, setOpenDiscardConfirmation] = useState(false);\n const [showAnswerSlide, setShowAnswerSlide] = useState(false);\n const [answerImageURL, setAnswerImageURL] = useState(\"\");\n const [answerContent, setAnswerContent] = useState(\"\");\n const [answer, setAnswer] = useState(\n questionType === \"MCQ\"\n ? { A: \"\", B: \"\", C: \"\", D: \"\" }\n : { A: \"True\", B: \"False\" }\n );\n //when navigated after clicking on the miniSlides\n useEffect(() => {\n if (Object.keys(questionData).length === 0) return; //dont execute if questionData is empty\n questionData.questionTitle && setQuestion(questionData.questionTitle);\n questionData.correctAnswer &&\n setCorrectOption(eval(questionData.correctAnswer)[0]);\n questionData.timeToAnswer && setTime(questionData.timeToAnswer);\n setPoints(questionData.maxPoints??100);\n questionData.answerContent ? setAnswerContent(questionData.answerContent) : setAnswerContent(\"\");\n if (questionData.answerChoices) {\n const answers = eval(questionData.answerChoices);\n const options = [\"A\", \"B\", \"C\", \"D\"];\n const data = {};\n answers.forEach((answer, idx) => {\n data[options[idx]] = answer;\n });\n setAnswer(data);\n //if answer choices are present then so is the correct answer; so no check reqd\n setCorrectOption(\n options[\n eval(questionData.answerChoices).indexOf(\n eval(questionData.correctAnswer)[0]\n )\n ]\n );\n }\n \n // Set question and answer image properly\n if(questionData.s3ImageName){\n setQuestionImageURL(S3URL + \"readymade/\" + questionData.s3ImageName);\n }else{\n setQuestionImageURL(\"\")\n }\n if(questionData.s3AnswerImageName){\n setAnswerImageURL(S3URL + \"readymade/\" + questionData.s3AnswerImageName);\n }else{\n setAnswerImageURL(\"\")\n }\n\n //show question slide\n setShowAnswerSlide(false);\n }, [questionData]);\n\n const { setLoadingDisplayFlag, setEditQuestionsList, setEditQuizDetails, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setQuestionData } = useContext(Context);\n \n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n }\n \n //Add question\n const saveQuestion = (data, isEdit) => {\n const url = isEdit\n ? BEURL + apiEndpoints.editQuestion\n : BEURL + apiEndpoints.addQuestion;\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n let editedQuestions = res.data;\n editedQuestions = editedQuestions.map(question => {\n if (question.questionType === \"CNT\" || question.questionType === \"FIB\") {\n question.answerBlanks = get_answer_blanks_with_hint_letter(eval(question.correctAnswer)[0]);\n }\n return question;\n });\n setEditQuestionsList(editedQuestions);\n if (isEdit) {\n let editedQuestion = editedQuestions.find((question) => {\n return data.questionId === question.questionId;\n });\n setQuestionData(editedQuestion); \n }\n let newQuestionIdList = editedQuestions.map(question=>question.questionId)\n setEditQuizDetails((prevQuiz) => {\n let updatedQuiz = { ...prevQuiz };\n updatedQuiz.questionIds = newQuestionIdList\n return updatedQuiz\n })\n if (res.status === 200) {\n if (isEdit) {\n setAlert(\"success\", \"Question Edited Successfully\");\n }\n else {\n setAlert(\"success\", \"Question Added Successfully\");\n }\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n setLoadingDisplayFlag(false);\n if (isEdit) {\n //if question was edited dont go to new slide\n setShowAnswerSlide(false); //show the question slide\n setOpenQuestionDetails(false); //close the question details pop up\n } //if new question was added\n else setComponentInFocus(\"SelectSlideComponent\"); //show new slide\n });\n };\n\n //Save question\n const handleSaveQuestion = () => {\n setLoadingDisplayFlag(true);\n const data = {\n quizId: quizid,\n questionType: questionType,\n questionTitle: question,\n timer: time,\n questionImage: questionImageURL,\n answerImage: answerImageURL,\n correctAnswer: answer[correctOption],\n answerChoices: Object.values(answer),\n maxPoints: points,\n answerContent: answerContent,\n };\n //Add questionId for edited question\n if (!!questionData.questionId) data.questionId = questionData.questionId;\n //If the question was already present send a edit request\n //Else add new question\n saveQuestion(data, !!questionData.questionId);\n };\n //Add answer content to states\n const handleSubmitAnswer = (imageURL, answerContent) => {\n setAnswerImageURL(imageURL);\n setAnswerContent(answerContent);\n setOpenQuestionDetails(true);\n };\n //Prevent premature form submissions\n useEffect(\n () =>\n setIsSaveDisabled(\n Object.values(answer).indexOf(\"\") !== -1 ||\n correctOption === \"\" ||\n question === \"\"\n ),\n [correctOption, answer, question]\n );\n\n return (\n <>\n setOpenQuestionDetails(false)}\n handleAddQuestion={handleSaveQuestion}\n editQuestonFlag={!!questionData.questionId} // True if questionId exists\n time={time}\n setTime={setTime}\n points={points}\n setPoints={setPoints}\n />\n setOpenDiscardConfirmation(false)}\n handleDiscardSlide={() => setComponentInFocus(\"SelectSlideComponent\")}\n />\n {showAnswerSlide ? (\n \n ) : (\n
\n
\n

\n Question({question.length}/300 characters)\n

\n setQuestion(e.target.value)}\n Maxlength=\"300\"\n />\n
\n \n
\n

\n Answers (After filling in the options, select the correct one)\n

\n setCorrectOption(e.target.value)}\n className=\"createMCQ__inner__radioGroup\"\n >\n
\n {Object.keys(answer).map((option) => (\n \n ))}\n
\n \n
\n setShowAnswerSlide(true)}\n handleDiscard={() => setOpenDiscardConfirmation(true)}\n />\n
\n )}\n \n );\n};\n\nexport default CreateMCQComponent;\n","import { createStyles, FormControlLabel, Radio } from '@mui/material'\nimport {makeStyles} from '@mui/styles'\nimport React from 'react'\n\nconst GreenTick = () => (\n \n \n \n \n)\n\nconst useStyles = makeStyles(theme =>\n createStyles({\n smallRadioButton: {\n \"& svg\": {\n width: \"1rem\",\n height: \"1rem\"\n }\n }\n })\n);\n\nconst RadioBtnTicked = ({value, isDisabled}) => {\n const classes = useStyles();\n return(\n }\n />} \n />\n )}\n\nexport default RadioBtnTicked","import \"./CreateMTFComponent.scss\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport BlueInputComponent from \"../blueInputComponent/BlueInputComponent\";\nimport { MdOutlineArrowBackIosNew } from \"react-icons/md\";\nimport QuestionDetailsComponent from \"../questionDetailsComponent/QuestionDetailsComponent\";\nimport DiscardSlideComponent from \"../discardSlideComponent/DiscardSlideComponent\";\nimport CreateNonQuestionComponent from \"../createNonQuestionComponent/CreateNonQuestionComponent\";\nimport SaveordiscardComponent from \"../saveordiscardComponent/SaveordiscardComponent\";\nimport Context from \"../../../context/Context\";\nimport { BEURL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport axios from \"axios\";\nimport { get_answer_blanks_with_hint_letter } from \"../../../shared/constants\";\n\nconst MTFAnswer = ({ optionNum, option, setOption, answer, setAnswer }) => {\n const onChangeAnswer = (e) => {\n setAnswer((prevAnswer) => {\n let updatedAnswer = { ...prevAnswer };\n updatedAnswer[e.target.id.split(\"_\")[1]] = e.target.value;\n return updatedAnswer;\n });\n };\n\n const onChangeOption = (e) => {\n setOption((prevOption) => {\n let updatedOption = { ...prevOption };\n updatedOption[e.target.id.split(\"_\")[1]] = e.target.value;\n return updatedOption;\n });\n };\n\n return (\n
\n

{optionNum}

\n \n \n \n
\n );\n};\n\nconst CreateMTFComponent = ({ questionData, quizid, setComponentInFocus }) => {\n const [question, setQuestion] = useState(\"\");\n const [option, setOption] = useState({ 1: \"\", 2: \"\", 3: \"\", 4: \"\" });\n const [answer, setAnswer] = useState({ 1: \"\", 2: \"\", 3: \"\", 4: \"\" });\n const [openQuestionDetails, setOpenQuestionDetails] = useState(false);\n const [time, setTime] = useState(30);\n const [points, setPoints] = useState(100);\n const [openDiscardConfirmation, setOpenDiscardConfirmation] = useState(false);\n const [showAnswerSlide, setShowAnswerSlide] = useState(false);\n const [answerContent, setAnswerContent] = useState(\"\");\n const [isSaveDisabled, setIsSaveDisabled] = useState(true);\n\n const { setLoadingDisplayFlag, setEditQuestionsList, setEditQuizDetails, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setQuestionData } = useContext(Context);\n \n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n }\n \n //Add question\n const saveQuestion = (data, isEdit) => {\n const url = isEdit\n ? BEURL + apiEndpoints.editQuestion\n : BEURL + apiEndpoints.addQuestion;\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n let editedQuestions = res.data;\n if (isEdit) {\n editedQuestions = editedQuestions.map(question => {\n if (question.questionType === \"CNT\" || question.questionType === \"FIB\") {\n question.answerBlanks = get_answer_blanks_with_hint_letter(eval(question.correctAnswer)[0]);\n }\n return question;\n });\n }\n setEditQuestionsList(editedQuestions);\n if (isEdit) {\n let editedQuestion = editedQuestions.find((question) => {\n return data.questionId === question.questionId;\n });\n setQuestionData(editedQuestion); \n }\n let newQuestionIdList = editedQuestions.map(question=>question.questionId)\n setEditQuizDetails((prevQuiz) => {\n let updatedQuiz = { ...prevQuiz };\n updatedQuiz.questionIds = newQuestionIdList\n return updatedQuiz\n })\n if (res.status === 200) {\n if (isEdit) {\n setAlert(\"success\", \"Question Edited Successfully\");\n }\n else {\n setAlert(\"success\", \"Question Added Successfully\");\n }\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n setLoadingDisplayFlag(false);\n if (isEdit) {\n //if question was edited dont go to new slide\n setShowAnswerSlide(false); //show the question slide\n setOpenQuestionDetails(false); //close the question details pop up\n } //if new question was added\n else setComponentInFocus(\"SelectSlideComponent\"); //show new slide\n });\n };\n\n //Shuffle array algo\n const shuffleArray = (array) => {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n return array;\n };\n\n //Save question\n const handleSaveQuestion = () => {\n setLoadingDisplayFlag(true);\n const data = {\n quizId: quizid,\n questionType: \"MTF\",\n questionTitle: question,\n timer: time,\n maxPoints: points,\n answerContent: answerContent,\n };\n //Add left hand side options\n Object.keys(option).forEach((optionNum) => {\n data[\"leftoption\" + optionNum] = option[optionNum];\n });\n //Add right hand side answers\n Object.keys(answer).forEach((answerNum) => {\n data[\"answer\" + answerNum] = answer[answerNum];\n });\n //Jumble right hand side answers\n shuffleArray(Object.keys(answer)).forEach((answerNum, idx) => {\n data[\"option\" + (idx + 1)] = answer[answerNum];\n });\n //Add questionId for edited question\n if (!!questionData.questionId) data.questionId = questionData.questionId;\n //If the question was already present send a edit request\n //Else add new question\n saveQuestion(data, !!questionData.questionId);\n };\n //Prevent premature form submissions\n useEffect(\n () =>\n setIsSaveDisabled(\n Object.values(answer).indexOf(\"\") !== -1 ||\n Object.values(answer).indexOf(\"\") !== -1 ||\n question === \"\"\n ),\n [answer, question, option]\n );\n\n //when navigated after clicking on the miniSlides\n useEffect(() => {\n if (\n Object.keys(questionData).length === 0 ||\n questionData.questionType !== \"MTF\"\n )\n return; //dont execute if questionData is empty\n questionData.questionTitle && setQuestion(questionData.questionTitle);\n questionData.timeToAnswer && setTime(questionData.timeToAnswer);\n setPoints(questionData.maxPoints??100);\n if (questionData.correctAnswer) {\n const [option, answer] = eval(questionData.correctAnswer);\n const optionData = {};\n const answerData = {};\n option.map((opt, idx) => (optionData[idx + 1] = opt));\n answer.map((ans, idx) => (answerData[idx + 1] = ans));\n setAnswer(answerData);\n setOption(optionData);\n }\n //show question slide\n setShowAnswerSlide(false);\n }, [questionData]);\n\n return (\n <>\n setOpenQuestionDetails(false)}\n handleAddQuestion={handleSaveQuestion}\n editQuestonFlag={!!questionData.questionId} // True if questionId exists\n time={time}\n setTime={setTime}\n points={points}\n setPoints={setPoints}\n />\n setOpenDiscardConfirmation(false)}\n handleDiscardSlide={() => setComponentInFocus(\"SelectSlideComponent\")}\n />\n
\n
\n

\n Match the Following Question({question.length}/300 characters)\n

\n setQuestion(e.target.value)}\n Maxlength=\"300\"\n />\n

\n Answers (Fill in the answers in the correct order)\n

\n {Object.keys(answer).map((optionNum) => (\n \n ))}\n
\n setOpenQuestionDetails(true)}\n handleDiscard={() => setOpenDiscardConfirmation(true)}\n />\n
\n \n );\n};\n\nexport default CreateMTFComponent;\n","import \"./CreateDNDComponent.scss\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport BlueInputComponent from \"../blueInputComponent/BlueInputComponent\";\nimport QuestionDetailsComponent from \"../questionDetailsComponent/QuestionDetailsComponent\";\nimport DiscardSlideComponent from \"../discardSlideComponent/DiscardSlideComponent\";\nimport SaveordiscardComponent from \"../saveordiscardComponent/SaveordiscardComponent\";\nimport Context from \"../../../context/Context\";\nimport { BEURL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport axios from \"axios\";\nimport { get_answer_blanks_with_hint_letter } from \"../../../shared/constants\";\n\nconst DNDAnswer = ({ optionNum, answer, setAnswer }) => {\n const onChangeAnswer = (e) => {\n setAnswer((prevAnswer) => {\n let updatedAnswer = { ...prevAnswer };\n updatedAnswer[e.target.id.split(\"_\")[1]] = e.target.value;\n return updatedAnswer;\n });\n };\n\n return (\n
\n

{optionNum}

\n \n
\n );\n};\n\nconst CreateDNDComponent = ({ questionData, quizid, setComponentInFocus }) => {\n const [question, setQuestion] = useState(\"\");\n // const [answer, setAnswer] = useState({\"1\":\"\",\"2\":\"\",\"3\":\"\",\"4\":\"\",\"5\":\"\",\"6\":\"\"}) // we dont have 6 options yet, but code will support if backend and front end does\n const [answer, setAnswer] = useState({ 1: \"\", 2: \"\", 3: \"\", 4: \"\" });\n const [openQuestionDetails, setOpenQuestionDetails] = useState(false);\n const [time, setTime] = useState(30);\n const [points, setPoints] = useState(100);\n const [openDiscardConfirmation, setOpenDiscardConfirmation] = useState(false);\n const [showAnswerSlide, setShowAnswerSlide] = useState(false);\n const [answerContent, setAnswerContent] = useState(\"\");\n const [isSaveDisabled, setIsSaveDisabled] = useState(true);\n\n const { setLoadingDisplayFlag, setEditQuestionsList, setEditQuizDetails, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setQuestionData } = useContext(Context);\n \n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n }\n \n //Add question\n const saveQuestion = (data, isEdit) => {\n const url = isEdit\n ? BEURL + apiEndpoints.editQuestion\n : BEURL + apiEndpoints.addQuestion;\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n let editedQuestions = res.data;\n editedQuestions = editedQuestions.map(question => {\n if (question.questionType === \"CNT\" || question.questionType === \"FIB\") {\n question.answerBlanks = get_answer_blanks_with_hint_letter(eval(question.correctAnswer)[0]);\n }\n return question;\n });\n setEditQuestionsList(editedQuestions);\n if (isEdit) {\n let editedQuestion = editedQuestions.find((question) => {\n return data.questionId === question.questionId;\n });\n setQuestionData(editedQuestion); \n }\n let newQuestionIdList = editedQuestions.map(question=>question.questionId)\n setEditQuizDetails((prevQuiz) => {\n let updatedQuiz = { ...prevQuiz };\n updatedQuiz.questionIds = newQuestionIdList\n return updatedQuiz\n })\n if (res.status === 200) {\n if (isEdit) {\n setAlert(\"success\", \"Question Edited Successfully\");\n }\n else {\n setAlert(\"success\", \"Question Added Successfully\");\n }\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n setLoadingDisplayFlag(false);\n if (isEdit) {\n //if question was edited dont go to new slide\n setShowAnswerSlide(false); //show the question slide\n setOpenQuestionDetails(false); //close the question details pop up\n } //if new question was added\n else setComponentInFocus(\"SelectSlideComponent\"); //show new slide\n });\n };\n\n //Shuffle array algo\n const shuffleArray = (array) => {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n return array;\n };\n\n //Save question\n const handleSaveQuestion = () => {\n setLoadingDisplayFlag(true);\n const data = {\n quizId: quizid,\n questionType: \"DND\",\n questionTitle: question,\n timer: time,\n maxPoints: points,\n answerContent: answerContent,\n };\n //Add answers\n let index = 0;\n Object.keys(answer).forEach((answerNum) => {\n if (answer[answerNum] == \"\") return;\n index += 1;\n data[\"answer\" + index] = answer[answerNum];\n });\n //Jumble right hand side answers\n let answerChoices = [];\n shuffleArray(Object.values(answer)).forEach((answer) => {\n if (answer === \"\")\n // Ignore blanks\n return;\n answerChoices.push(answer);\n });\n data[\"answerChoices\"] = answerChoices;\n //Add questionId for edited question\n if (!!questionData.questionId) data.questionId = questionData.questionId;\n //If the question was already present send a edit request\n //Else add new question\n saveQuestion(data, !!questionData.questionId);\n };\n //Prevent premature form submissions\n useEffect(\n () =>\n setIsSaveDisabled(\n Object.values(answer).reduce(\n (totalNoOfBlanks, ans) => totalNoOfBlanks + (ans === \"\"),\n 0\n ) > 2 || question === \"\"\n ),\n [answer, question]\n );\n\n //when navigated after clicking on the miniSlides\n useEffect(() => {\n if (Object.keys(questionData).length === 0) return; //dont execute if questionData is empty\n questionData.questionTitle && setQuestion(questionData.questionTitle);\n questionData.timeToAnswer && setTime(questionData.timeToAnswer);\n setPoints(questionData.maxPoints??100);\n if (questionData.correctAnswer) {\n const correctAnswer = eval(questionData.correctAnswer);\n const answerData = {};\n correctAnswer.map((ans, idx) => (answerData[idx + 1] = ans));\n setAnswer(answerData);\n }\n //show question slide\n setShowAnswerSlide(false);\n }, [questionData]);\n\n return (\n <>\n setOpenQuestionDetails(false)}\n handleAddQuestion={handleSaveQuestion}\n editQuestonFlag={!!questionData.questionId} // True if questionId exists\n time={time}\n setTime={setTime}\n points={points}\n setPoints={setPoints}\n />\n setOpenDiscardConfirmation(false)}\n handleDiscardSlide={() => setComponentInFocus(\"SelectSlideComponent\")}\n />\n
\n
\n

\n Arrange in Order Question({question.length}/300 characters)\n

\n setQuestion(e.target.value)}\n Maxlength=\"300\"\n />\n

\n Answers (Fill in the answers in the correct order)\n

\n
\n {Object.keys(answer).map((answerNum) => (\n \n ))}\n
\n
\n setOpenQuestionDetails(true)}\n handleDiscard={() => setOpenDiscardConfirmation(true)}\n />\n
\n \n );\n};\n\nexport default CreateDNDComponent;\n","import \"./CreateFIBComponent.scss\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { BEURL, S3URL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport Context from \"../../../context/Context\";\nimport BlueInputComponent from \"../blueInputComponent/BlueInputComponent\";\nimport CreateNonQuestionComponent from \"../createNonQuestionComponent/CreateNonQuestionComponent\";\nimport DiscardSlideComponent from \"../discardSlideComponent/DiscardSlideComponent\";\nimport MediaUploadComponent from \"../mediaUploadComponent/MediaUploadComponent\";\nimport QuestionDetailsComponent from \"../questionDetailsComponent/QuestionDetailsComponent\";\nimport SaveordiscardComponent from \"../saveordiscardComponent/SaveordiscardComponent\";\nimport { get_answer_blanks_with_hint_letter } from \"../../../shared/constants\";\n\nconst CreateFIBComponent = ({\n questionData,\n quizid,\n setComponentInFocus,\n questionType,\n}) => {\n const media_upload_placeholder_image =\n \"/images/upload_media_placeholder_image.png\";\n //states\n const [question, setQuestion] = useState(\"\");\n const [questionImageURL, setQuestionImageURL] = useState(\"\");\n const [isSaveDisabled, setIsSaveDisabled] = useState(true);\n const [openQuestionDetails, setOpenQuestionDetails] = useState(false);\n const [time, setTime] = useState(30);\n const [points, setPoints] = useState(100);\n const [openDiscardConfirmation, setOpenDiscardConfirmation] = useState(false);\n const [showAnswerSlide, setShowAnswerSlide] = useState(false);\n const [answerImageURL, setAnswerImageURL] = useState(\"\");\n const [answerContent, setAnswerContent] = useState(\"\");\n const [answer, setAnswer] = useState(\"\");\n //when navigated after clicking on the miniSlides\n useEffect(() => {\n if (Object.keys(questionData).length === 0) return; //dont execute if questionData is empty\n questionData.questionTitle && setQuestion(questionData.questionTitle);\n questionData.correctAnswer &&\n setAnswer(eval(questionData.correctAnswer)[0]);\n questionData.s3ImageName &&\n setQuestionImageURL(S3URL + \"readymade/\" + questionData.s3ImageName);\n questionData.timeToAnswer && setTime(questionData.timeToAnswer);\n setPoints(questionData.maxPoints??100);\n questionData.s3AnswerImageName &&\n setAnswerImageURL(S3URL + \"readymade/\" + questionData.s3AnswerImageName);\n questionData.answerContent ? setAnswerContent(questionData.answerContent) : setAnswerContent(\"\");\n //show question slide\n setShowAnswerSlide(false);\n }, [questionData]);\n\n const { setLoadingDisplayFlag, editQuestionsList, editQuizDetails, setEditQuestionsList, setEditQuizDetails, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setQuestionData } = useContext(Context);\n \n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n }\n \n //Add question\n const saveQuestion = (data, isEdit) => {\n const url = isEdit\n ? BEURL + apiEndpoints.editQuestion\n : BEURL + apiEndpoints.addQuestion;\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n let editedQuestions = res.data;\n editedQuestions = editedQuestions.map(question => {\n if (question.questionType === \"CNT\" || question.questionType === \"FIB\") {\n question.answerBlanks = get_answer_blanks_with_hint_letter(eval(question.correctAnswer)[0]);\n }\n return question;\n });\n setEditQuestionsList(editedQuestions);\n if (isEdit) {\n let editedQuestion = editedQuestions.find((question) => {\n return data.questionId === question.questionId;\n });\n setQuestionData(editedQuestion); \n }\n let newQuestionIdList = editedQuestions.map(question=>question.questionId)\n setEditQuizDetails((prevQuiz) => {\n let updatedQuiz = { ...prevQuiz };\n updatedQuiz.questionIds = newQuestionIdList\n return updatedQuiz\n })\n if (res.status === 200) {\n if (isEdit) {\n setAlert(\"success\", \"Question Edited Successfully\");\n }\n else {\n setAlert(\"success\", \"Question Added Successfully\");\n }\n }\n })\n .catch((error) => alert(error.response.data))\n .finally(() => {\n setLoadingDisplayFlag(false);\n if (isEdit) {\n //if question was edited dont go to new slide\n setShowAnswerSlide(false); //show the question slide\n setOpenQuestionDetails(false); //close the question details pop up\n } //if new question was added\n else setComponentInFocus(\"SelectSlideComponent\"); //show new slide\n });\n };\n\n //Save question\n const handleSaveQuestion = () => {\n setLoadingDisplayFlag(true);\n const data = {\n quizId: quizid,\n questionType: questionType,\n questionTitle: question,\n timer: time,\n questionImage: questionImageURL,\n answerImage: answerImageURL,\n correctAnswer: [answer],\n maxPoints: points,\n answerContent: answerContent,\n };\n //Add questionId for edited question\n if (!!questionData.questionId) data.questionId = questionData.questionId;\n //If the question was already present send a edit request\n //Else add new question\n saveQuestion(data, !!questionData.questionId);\n };\n //Add answer content to states\n const handleSubmitAnswer = (imageURL, answerContent) => {\n setAnswerImageURL(imageURL);\n setAnswerContent(answerContent);\n setOpenQuestionDetails(true);\n };\n //Prevent premature form submissions\n useEffect(\n () =>\n setIsSaveDisabled(\n answer === \"\" || question === \"\"\n ),\n [answer, question]\n );\n\n return (\n <>\n setOpenQuestionDetails(false)}\n handleAddQuestion={handleSaveQuestion}\n editQuestonFlag={!!questionData.questionId} // True if questionId exists\n time={time}\n setTime={setTime}\n points={points}\n setPoints={setPoints}\n />\n setOpenDiscardConfirmation(false)}\n handleDiscardSlide={() => setComponentInFocus(\"SelectSlideComponent\")}\n />\n {showAnswerSlide ? (\n \n ) : (\n
\n
\n {questionType === \"CNT\" && (\n

\n Connect Question({question.length}/300 characters)\n

\n )}\n {questionType === \"FIB\" && (\n

\n Fill in the blanks Question({question.length}/300 characters)\n

\n )}\n setQuestion(e.target.value)}\n Maxlength=\"300\"\n />\n
\n \n
\n

\n Answer({answer.length}/25 characters)\n

\n
\n setAnswer(e.target.value)}\n Maxlength=\"25\"\n />\n
\n
\n setShowAnswerSlide(true)}\n handleDiscard={() => setOpenDiscardConfirmation(true)}\n />\n
\n )}\n \n );\n};\n\nexport default CreateFIBComponent;\n","import React, { useContext, useEffect, useState } from \"react\";\nimport Context from \"../../context/Context\"\nimport { useNavigate } from \"react-router-dom\";\nimport \"./QuizPreviewComponent.scss\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport QtestQuestionTypeSelectComponent from \"../qtestComponent/qtestQuestionTypeSelectComponent/QtestQuestionTypeSelectComponent\";\nimport QtestFooterComponent from \"../qtestComponent/qtestFooterComponent/QtestFooterComponent\";\nimport QtestAnswerComponent from \"../qtestComponent/qtestAnswerComponent/QtestAnswerComponent\";\nimport QtestMobileFixedHeader from \"../qtestComponent/qtestMobileFixedHeader/QtestMobileFixedHeader\";\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\";\nimport {checkArrayEqual} from \"../../shared/constants\";\nimport testQuestions from \"../../utils/testQuestions\";\nimport AccessPromptComponent from \"../createQuizComponents/accessPromptComponent/AccessPromptComponent\";\n\nconst QuizPreviewComponent = () => {\n const navigate = useNavigate();\n\n // If redirecting from a component, Add the below line in the calling component and uncomment the linew below it\n // navigate('/previewquiz', {state:{questions: questions}})\n // Uncomment the below lines\n // const { state } = useLocation();\n // if(!state){\n // return \n // }\n // const { questions } = state;\n\n // Load test questions\n // const questions = testQuestions;\n\n const {editQuestionsList} = useContext(Context)\n const [questions, setQuestions] = useState([]);\n\n useEffect(()=>{\n if(editQuestionsList.length==0){ // Redirect to home if editQuestionsList context is empty\n navigate(\"/home\")\n }\n else {\n // Prep and save questions from global context\n let contextEditQuestionsList = editQuestionsList\n let questionsCount = contextEditQuestionsList.length\n // Add totalNoOfQuestions, playerScore and playerRunningScore for all questions\n contextEditQuestionsList = contextEditQuestionsList.map((question, index)=>{\n question.questionNumber = index+1\n question.playerScore = 0\n question.playerRunningScore = 0\n question.totalNoOfQuestions = questionsCount\n // question imageName field change for qtest preview\n question.s3ImageName && (question.imageName = question.s3ImageName)\n \n return question\n })\n setQuestions(contextEditQuestionsList)\n }\n },[])\n\n const [questionIndex, setQuestionIndex] = useState(0);\n const [selectedAnswer, setSelectedAnswer] = useState(\"\");\n const [showAnswerPage, setShowAnswerPage] = useState(false);\n const [questTimerProgress, setQuestTimerProgress] = useState(0);\n const [questiontimerInterval, setQuestionTimerInterval] = useState(null);\n\n // For results\n const [rank, setRank] = useState(0);\n const [totalScore, setTotalScore] = useState(0);\n const [showResult, setShowResult] = useState(false);\n\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const resetForNextQuestion = () => {\n setSelectedAnswer(\"\");\n setShowAnswerPage(false);\n setShowResult(false);\n setQuestTimerProgress(0);\n questiontimerInterval && clearInterval(questiontimerInterval);\n setQuestionTimerInterval(null);\n };\n\n // Run timer after questionData is set\n useEffect(() => {\n if(questions.length!=0){\n if ((questionIndex < questions.length)&&(questions[questionIndex].questionType != \"NQS\")) {\n const timerInterval = setInterval(() => {\n setQuestTimerProgress((prevProgress) => {\n if (prevProgress >= questions[questionIndex].timeToAnswer) {\n clearInterval(timerInterval);\n dummySubmitAnswer({\n qtestType: questions[questionIndex].qtestType,\n questionId: questions[questionIndex].questionId,\n questionType: questions[questionIndex].questionType,\n playerAnswer: \"\",\n timeTaken: prevProgress,\n });\n }\n return prevProgress + 1;\n });\n }, 1000);\n setQuestionTimerInterval(timerInterval);\n }\n }\n return () => {\n clearInterval(questiontimerInterval);\n setQuestTimerProgress(0);\n };\n }, [questionIndex, questions]);\n\n const setCurrentQuestionScore = (playerAnswer, playerTimeTaken, questionType, questionMaxPoints) => {\n const perfectScore = questionMaxPoints !== undefined ? questionMaxPoints : 100;\n let correctAnswerList, currentScore;\n const oneAnswerTypes = [\"MCQ\", \"TRF\", \"CNT\", \"FIB\"];\n if(oneAnswerTypes.includes(questionType)){\n correctAnswerList = eval(questions[questionIndex].correctAnswer).map(element => {\n return element.toLowerCase();\n });\n }\n \n if ((questionType == \"MTF\" && checkArrayEqual(playerAnswer, questions[questionIndex].correctAnswer[1]) ) || // For MTF comparng answer list in the correct answer\n (questionType == \"DND\" && checkArrayEqual(playerAnswer, questions[questionIndex].correctAnswer) ) || // For DND\n (oneAnswerTypes.includes(questionType) && correctAnswerList.includes(playerAnswer.toLowerCase()) )){ // for MCQ, TRF, CNT, FIB\n let timeFraction = playerTimeTaken / questions[questionIndex].timeToAnswer;\n currentScore = perfectScore === 0 ? 0 : Math.max(1, Math.round(perfectScore * (1 - timeFraction))); \n } \n else{\n currentScore = 0\n }\n // For this question subtract previous score and add new score\n let tempRunningScore = questions[questionIndex].playerRunningScore\n tempRunningScore -= questions[questionIndex].playerScore\n tempRunningScore += currentScore\n // Update running score in all questions\n questions.forEach((question)=>{\n question.playerRunningScore = tempRunningScore;\n })\n // Update old score\n questions[questionIndex].playerScore = currentScore \n }\n\n // Dummy submit answer\n const dummySubmitAnswer = ({\n qtestType,\n questionId,\n playerAnswer,\n questionType,\n playerTimeTaken = (questTimerProgress>questions[questionIndex].timeToAnswer?questions[questionIndex].timeToAnswer:questTimerProgress),\n }) => {\n if(questionType==\"NQS\"){\n handleNextQuestion();\n }\n else{\n const questionMaxPoints = questions[questionIndex].maxPoints ?? 100;\n questiontimerInterval && clearInterval(questiontimerInterval);\n setQuestionTimerInterval(null);\n setCurrentQuestionScore(playerAnswer, playerTimeTaken, questionType, questionMaxPoints)\n setShowAnswerPage(true);\n }\n };\n\n // Returns a random number between min (inclusive) and max (exclusive)\n function getRandomNumber(min, max) {\n return Math.random() * (max - min) + min;\n }\n\n const handlePreviousView = () => {\n if (questionIndex > 0) {\n // Decrement index only for the second element\n resetForNextQuestion(); // Reset before next question\n setQuestionIndex((prevValue) => {\n return prevValue - 1;\n });\n }\n };\n\n const handleNextView = () => {\n if (questionIndex < questions.length - 1) {\n // Increment index only for the last but one element\n resetForNextQuestion(); // Reset before next question\n setQuestionIndex((prevValue) => {\n return prevValue + 1;\n });\n }\n };\n\n const handleNextQuestion = () => {\n if (questionIndex < questions.length - 1) {\n // Increment index only for the last but one element\n resetForNextQuestion(); // Reset before next question\n setQuestionIndex((prevValue) => {\n return prevValue + 1;\n });\n }\n // else if (questionIndex == questions.length - 1) {\n // setResultPage();\n // }\n };\n\n const setResultPage = () => {\n setRank(Math.ceil(getRandomNumber(1, 11)));\n // Set totalscore as the playerRunningScore of the last question\n setTotalScore(questions[questions.length-1].playerRunningScore);\n setShowAnswerPage(true);\n setShowResult(true);\n };\n\n useEffect(() => {\n if(document.getElementById(\"quizPreviewComp_content\")){\n document.getElementById(\"quizPreviewComp_content\").scrollTo(0, 0);\n }\n }, [showAnswerPage]);\n\n // Block back and reload button in browser\n const [finishStatus, setfinishStatus] = useState(false);\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true);\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false);\n }\n }\n };\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return (e.returnValue =\n \"Data will be lost if you leave the page, are you sure?\");\n };\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener(\"popstate\", onBackButtonEvent);\n window.addEventListener(\"beforeunload\", onReloadButtonEvent);\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonEvent);\n window.removeEventListener(\"beforeunload\", onReloadButtonEvent);\n };\n }, []);\n\n return (\n <>\n {(questions.length!=0) && (
\n
\n \n \n \n \n
\n \n {!showAnswerPage && isTablet && questions[questionIndex] && (\n \n )}\n\n {showAnswerPage ? (\n \n ) : (\n questions[questionIndex] && (\n \n )\n )}\n\n {showAnswerPage && !showResult && (\n
\n \n
\n )}\n
\n \n \n = questions.length - 1 ? \"#888888\" : \"white\"\n }\n strokeWidth=\"5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n \n
\n
\n {questions[questionIndex] &&\n (isTablet || showAnswerPage || (\n \n ))}\n
)}\n \n );\n};\n\nexport default QuizPreviewComponent;\n","import React, { useEffect } from \"react\";\nimport CustomModalComponent from \"../customModalComponent/CustomModalComponent\";\nimport { Button } from \"@mui/material\";\nimport \"./exitWarning.scss\"\nimport { useNavigate } from \"react-router-dom\";\n\n\nconst ExitWarning = ({modalOpen, setModalOpen}) => {\n const navigate = useNavigate();\n\n const handleExitButton = () => {\n navigate(\"/\");\n setModalOpen(false);\n }\n\n return (\n setModalOpen(false)}\n >\n
\n

\n Do You Want to\n
\n Exit the Quiz?\n

\n

\n This action will lead to you leaving the quiz.\n
\n Click on the button below if you wish to proceed.\n

\n \n EXIT QUIZ\n \n
\n \n );\n}\n\nexport default ExitWarning;\n\n","import React from \"react\";\nimport \"./InviteModalComponent.scss\";\nimport CustomModalComponent from \"../customModalComponent/CustomModalComponent\";\nimport { useContext, useState } from \"react\";\nimport Context from \"./../../context/Context\";\nimport { Button } from \"@mui/material\";\nimport configData from \"../../config.json\";\nimport {ImEmbed2} from \"react-icons/im\"\n\nimport {\n WhatsappShareButton,\n FacebookShareButton,\n TwitterShareButton,\n WhatsappIcon,\n TwitterIcon,\n FacebookIcon,\n} from \"react-share\";\nimport { FEURL } from \"../../api/BaseUrl\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useNavigate } from \"react-router-dom\";\n\nfunction InviteModalComponent({\n open,\n handleClose,\n displayText = \"Share Link Via\",\n qtestId=null\n}) {\n const {\n roomId,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n } = useContext(Context);\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n var displayURL, copyURL;\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n // Select the Invite Link text\n const selectInviteLink = () => {\n var range = document.createRange();\n var selection = window.getSelection();\n range.selectNodeContents(document.getElementById(\"inviteLinkModal\"));\n selection.removeAllRanges();\n selection.addRange(range);\n };\n\n if(qtestId){\n displayURL=`${qtestId}`\n copyURL=`${FEURL}/qtest/${qtestId}`\n }\n else{\n displayURL=`${FEURL.split(/\\/\\/(.+)/)[1]}/${roomId}`\n copyURL=`${FEURL}/${roomId}?utm_source=share`\n }\n\n // Clipboard code\n var inviteLinkClipboard = new window.ClipboardJS(\".copyBtnModal\");\n inviteLinkClipboard.on(\"success\", function (e) {\n setTimeout(() => {\n setAlert(\"info\", \"Link copied to clipboard\");\n selectInviteLink();\n }, 100);\n });\n\n const navigate = useNavigate()\n\n return (\n <>\n \n
\n

{displayText}

\n
\n

{displayURL}

\n \n \n copy\n \n \n
\n
\n \"}\n >\n
\n \n

Whatsapp

\n
\n \n \n
\n \n

Facebook

\n
\n \n \n
\n \n

Twitter

\n
\n \n {qtestId &&
\n navigate(`/embed/popupButton/${qtestId}`)}\n style={{border:\"3px solid #FFF\", borderRadius:\"10px\", background:\"#30B2E7\", cursor:\"pointer\"}}\n />\n

Embed

\n
}\n
\n
\n \n \n );\n}\n\nexport default InviteModalComponent;\n","import \"./SaveQuizComponent.scss\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport CustomModalWithTitleComponent from \"../../../shared/customModalComponent/CustomModalWithTitleComponent\";\nimport InputComponent from \"../../../shared/inputComponent/InputComponent\";\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\";\nimport axios from \"axios\";\nimport { BEURL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport Context from \"../../../context/Context\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport MultiSelectChipComponent from \"../../../shared/multiSelectChipComponent/MultiSelectChipComponent\";\n\nconst Member = ({ email, removeQuizEditor }) => {\n return (\n
\n

{email}

\n

\n Remove\n

\n
\n );\n};\n\nconst SaveQuizComponent = ({ setOpenSaveModal, openSaveModal }) => {\n const location = useLocation();\n const navigate = useNavigate();\n const [openShareQuiz, setOpenShareQuiz] = useState(false);\n const [openAssignQuiz, setOpenAssignQuiz] = useState(false);\n const [editAccessList, setEditAccessList] = useState([]);\n const [assignedTeamsList, setAssignedTeamsList] = useState([]);\n const [organizationTeamsList, setOrganizationTeamsList] = useState([\n \"1\",\n \"2\",\n \"3\",\n ]);\n const [publicCheckFlag, setPublicCheckFlag] = useState(false);\n const {\n setLoadingDisplayFlag,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n } = useContext(Context);\n\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n useEffect(() => {\n if (assignedTeamsList.length > 0 && !!publicCheckFlag) {\n //if teams are assigned to a public quiz\n setAlert(\"info\", \"Quiz made private to assigned teams\");\n setPublicCheckFlag(false);\n }\n }, [assignedTeamsList]);\n\n useEffect(() => {\n if (openAssignQuiz) {\n setLoadingDisplayFlag(true);\n axios\n .post(BEURL + apiEndpoints.getAssignedTeams, {\n quizId: location.pathname.split(\"/\")[2],\n })\n .then((res) => {\n const teamNames = JSON.parse(res.data.teams).map(({ teamName }) => teamName);\n // if (teamNames.includes(\"Public Quizzes\")) {\n if (res.data.quizAccessStatus==\"Public\") {\n setPublicCheckFlag(true);\n setAssignedTeamsList([]);\n } else {\n setAssignedTeamsList(teamNames);\n }\n })\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => setLoadingDisplayFlag(false));\n axios\n .get(BEURL + apiEndpoints.getOrganizationTeams)\n .then((res) => setOrganizationTeamsList(res.data))\n .catch((error) => setAlert(\"error\", error.response.data));\n }\n }, [openAssignQuiz]);\n\n useEffect(() => {\n if (openShareQuiz) {\n setLoadingDisplayFlag(true);\n axios\n .post(BEURL + apiEndpoints.getQuizEditors, {\n quizId: location.pathname.split(\"/\")[2],\n })\n .then((res) => setEditAccessList(res.data))\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => setLoadingDisplayFlag(false));\n }\n }, [openShareQuiz]);\n\n const saveQuiz = () => {\n const url = BEURL + apiEndpoints.changeQuizStatus;\n let quizid = location.pathname.split(\"/\")[2];\n let data = {\n quizId: quizid,\n status: \"published\",\n };\n axios\n .post(url, JSON.stringify(data))\n .then((res) => {\n setAlert(\"success\", \"Quiz Published\");\n })\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => {\n setOpenAssignQuiz(false);\n setLoadingDisplayFlag(false);\n });\n };\n\n const addEmail = (e) => {\n if (e.key == \"Enter\") {\n console.log(\"Added\");\n const email = e.target.value.trim();\n if (editAccessList.includes(email)) {\n setAlert(\"info\", \"This email already has access to edit this quiz\");\n } else addQuizEditor(e, email);\n }\n };\n\n const addQuizEditor = (element, email) => {\n const url = BEURL + apiEndpoints.addQuizEditor;\n const data = {\n email: email,\n quizId: location.pathname.split(\"/\")[2],\n };\n setLoadingDisplayFlag(true);\n axios\n .post(url, data)\n .then((res) => {\n setAlert(\"success\", `Edit access has been provided to ${email}`);\n setEditAccessList(res.data);\n element.target.value = \"\";\n })\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => setLoadingDisplayFlag(false));\n };\n\n const removeQuizEditor = (e) => {\n const email = e.target.id;\n const url = BEURL + apiEndpoints.removeQuizEditor;\n const data = {\n email: email,\n quizId: location.pathname.split(\"/\")[2],\n };\n setLoadingDisplayFlag(true);\n axios\n .post(url, data)\n .then((res) => {\n setAlert(\"success\", `Edit access has been revoked for ${email}`);\n setEditAccessList(res.data);\n e.target.value = \"\";\n })\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => setLoadingDisplayFlag(false));\n };\n\n const handleOpenAssignQuiz = () => {\n const email_input = document.getElementById(\"ShareQuiz_emailInput\");\n if (!!email_input && email_input.value.trim() != \"\") {\n let e = { key: \"Enter\", target: { value: email_input.value.trim() } };\n addEmail(e);\n }\n setOpenSaveModal(false);\n setOpenShareQuiz(false);\n setOpenAssignQuiz(true);\n };\n\n const handleAssignQuiz = () => {\n setLoadingDisplayFlag(true);\n let data = {};\n if (publicCheckFlag) {\n data = {\n quizId: location.pathname.split(\"/\")[2],\n teamIds: [\"public\"],\n quizAccessStatus: \"public\",\n };\n } else {\n data = {\n quizId: location.pathname.split(\"/\")[2],\n teamIds: assignedTeamsList.map(\n (teamName) => organizationTeamsList[teamName]\n ),\n quizAccessStatus: \"private\",\n };\n }\n axios\n .post(BEURL + apiEndpoints.assignTeamToQuiz, data)\n .then(() => {\n setAlert(\"info\", \"Publishing the quiz, please wait\");\n saveQuiz();\n })\n .catch((error) => {\n setLoadingDisplayFlag(false);\n setAlert(\"error\", error.response.data);\n });\n };\n\n const handleMakeQuizPublic = (e) => {\n if (e.target.checked == true) {\n setPublicCheckFlag(true);\n setAlert(\"info\", \"Making a quiz public will allow everyone to play it!\");\n } else {\n setPublicCheckFlag(false);\n }\n };\n\n return (\n
\n {\n <>\n setOpenSaveModal(false)}\n bgColor=\"#0097D4\"\n title=\"Quiz Edit Access\"\n >\n
\n

\n Manage who can edit this quiz. Assign quiz for others to play.\n

\n
\n \n {\n setOpenSaveModal(false)\n navigate(\"/previewquiz\");\n }}\n />\n
\n {\n setOpenSaveModal(false);\n setOpenShareQuiz(true);\n }}\n >\n MANAGE EDIT ACCESS\n

\n
\n \n\n setOpenShareQuiz(false)}\n bgColor=\"#0097D4\"\n title=\"Share Quiz\"\n >\n
\n

\n By sharing this, members of your team can edit this quiz.\n

\n
\n
\n \n
\n
\n

\n Members who have access\n

\n
\n {editAccessList.map((email, idx) => (\n \n ))}\n
\n
\n
\n
\n \n
\n
\n \n\n setOpenAssignQuiz(false)}\n bgColor=\"#0097D4\"\n // title=\"Assign and Publish Quiz\"\n title=\"Publish Quiz\"\n >\n
\n

\n {/* You can chose to selectively assign this quiz or make it\n available to everyone */}\n Public quizzes can be accessed by anyone to play.\n

\n {/*
\n
\n teamName\n )}\n setSelectedOption={setAssignedTeamsList}\n />\n handleMakeQuizPublic(e)}\n Checked={publicCheckFlag}\n />\n
\n
*/}\n
\n
\n handleMakeQuizPublic(e)}\n Checked={publicCheckFlag}\n />\n
\n
\n
\n \n
\n
\n \n \n }\n
\n );\n};\n\nexport default SaveQuizComponent;\n","import React, { useContext } from \"react\";\nimport \"./HeaderComponent.scss\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { FiMenu } from \"react-icons/fi\";\nimport { CgClose } from \"react-icons/cg\";\nimport { useState } from \"react\";\nimport Collapse from \"@mui/material/Collapse\";\nimport ClickAwayListener from \"@mui/material/ClickAwayListener\";\nimport ExitWarning from \"../../shared/exitWarning/ExitWarning\";\nimport {\n ExitIcon,\n HelpIcon,\n LogoutIcon,\n SettingsIcon,\n ShareIcon,\n} from \"../../shared/Icons\";\nimport InviteModalComponent from \"../../shared/inviteModalComponent/InviteModalComponent\";\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Context from \"../../context/Context\";\nimport { BEURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport axios from \"axios\";\nimport SaveQuizComponent from \"../createQuizComponents/saveQuizComponent/SaveQuizComponent\";\nimport Cookies from \"js-cookie\";\n\nconst CreateQuizHeaderButtons = ({\n handleSaveQuiz,\n isLoggedIn,\n navigate,\n enablePreview,\n}) => {\n const {\n setEditQuestionsList,\n setEditQuizDetails,\n setQuestionData,\n } = useContext(Context);\n return (\n <>\n
\n {\n setEditQuestionsList([]);\n setEditQuizDetails({});\n setQuestionData({});\n navigate(\"/dashboard\");\n }}\n >\n BACK\n

\n \n {\n if (enablePreview) {\n navigate(\"/previewquiz\");\n }\n }}\n >\n PREVIEW QUIZ\n

\n \n \n PUBLISH QUIZ\n

\n
\n navigate(\"/\")}\n />\n \n)};\n\nconst PreviewQuizHeaderButtons = ({ editQuizId, isLoggedIn, navigate }) => (\n <>\n
\n navigate(\"/createquiz/\" + editQuizId)}\n >\n CLOSE PREVIEW\n

\n
\n navigate(\"/\")}\n />\n \n);\n\nconst DefaultHeaderButtons = ({\n handleLogout,\n handleLogin,\n navigate,\n isLoggedIn,\n}) => {\n const { userType } = useContext(Context);\n return (\n
\n {/*

HELP

*/}\n {isLoggedIn && (\n navigate(\"/dashboard\")}>\n DASHBOARD\n \n )}\n

navigate(\"/pricing\")}>\n PRICING\n

\n {userType === 'QShala_Admin' && (\n

navigate(\"/admin\")}>\n ADMIN\n

\n )}\n {isLoggedIn ? (\n

\n LOGOUT\n

\n ) : (\n

\n LOGIN\n

\n )}\n
\n );\n};\n\nfunction HeaderComponent() {\n const {\n isLoggedIn,\n editQuestionsList,\n setLoadingDisplayFlag,\n editQuizDetails,\n userType,\n } = useContext(Context);\n const [open, setOpen] = useState(false);\n const [exitModalOpen, setExitModalOpen] = useState(false);\n const [inviteModalOpen, setInviteModalOpen] = useState(false);\n const [openSaveModal, setOpenSaveModal] = useState(false);\n const navigate = useNavigate();\n const location = useLocation();\n const handleClickAway = () => {\n open && setOpen(false);\n };\n\n const handleLogin = () => navigate(\"/signin\");\n\n const handleLogout = () => {\n Cookies.remove(\"name\");\n Cookies.remove(\"email\");\n Cookies.remove(\"ageGroup\");\n Cookies.remove(\"avatar\");\n window.location = `https://${process.env.REACT_APP_COGNITO_DOMAIN}/logout?client_id=${process.env.REACT_APP_COGNITO_CLIENT_ID}&response_type=code&scope=${process.env.REACT_APP_COGNITO_SCOPE}&logout_uri=${process.env.REACT_APP_COGNITO_LOGOUT_URI}`;\n };\n\n const isExitWarningPath = () => {\n if (\n location.pathname === \"/quiz\" ||\n location.pathname === \"/waitingroom\" ||\n location.pathname === \"/quizselection\" ||\n location.pathname === \"/getreadyroom\" ||\n location.pathname === \"/podium\"\n ) {\n return true;\n } else {\n return false;\n }\n };\n\n const handleLogoClick = () => {\n if (isExitWarningPath()) {\n setExitModalOpen(true);\n } else {\n navigate(\"/\");\n }\n };\n\n const handleInviteClose = () => {\n setInviteModalOpen(false);\n };\n\n const handleSaveQuiz = () => {\n setOpenSaveModal(true);\n };\n\n return (\n <>\n \n
\n
\n \n
\n \n
\n
\n {location.pathname.startsWith(\"/createquiz\") ? (\n \n ) : location.pathname.startsWith(\"/previewquiz\") ? (\n \n ) : (\n \n )}\n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n\n \n
    \n {/*
  • \n HELP\n
  • \n
  • \n SETTINGS\n
  • */}\n
  • navigate(\"/pricing\")}>\n PRICING\n
  • \n {userType === \"QShala_Admin\" && (\n
  • navigate(\"/admin\")}>\n ADMIN\n
  • \n )}\n {isExitWarningPath() && (\n <>\n {/*
  • \n SHARE ROOM CODE\n
  • */}\n
  • setInviteModalOpen(true)}>\n SHARE ROOM CODE\n
  • \n
  • setExitModalOpen(true)}>\n EXIT QUIZ\n
  • \n \n )}\n {isLoggedIn ? (\n
  • \n LOGOUT\n
  • \n ) : (\n
  • \n LOGIN\n
  • \n )}\n
\n
\n \n \n
\n
\n \n \n );\n}\n\nexport default HeaderComponent;\n","import React from 'react';\n\nexport const HomeQTImage = () => {\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","import React from 'react';\nimport { Divider } from \"@mui/material\";\nimport { useState } from \"react\";\nimport {BsTrophy} from \"react-icons/bs\"\nimport {CgProfile} from \"react-icons/cg\"\nimport {MdOutlineQuiz} from \"react-icons/md\"\nimport \"./NavMenuComponent.scss\"\n\nfunction NavMenuComponent() {\n const [selectedTab, setSelectedTab] = useState(\"Quizzing\");\n \n return (\n
\n {/*
setSelectedTab(\"Quizzing\")} style={{backgroundColor: selectedTab === \"Quizzing\" ? \"#ECA904\" : \"transparent\"}}>\n \n {selectedTab === \"Quizzing\" &&

Quizzing

}\n
\n
setSelectedTab(\"Leaderboard\")} style={{backgroundColor: selectedTab === \"Leaderboard\" ? \"#ECA904\" : \"transparent\"}}>\n \n {selectedTab === \"Leaderboard\" &&

Leaderboard

}\n
\n
setSelectedTab(\"Profile\")} style={{backgroundColor: selectedTab === \"Profile\" ? \"#ECA904\" : \"transparent\"}}>\n \n {selectedTab === \"Profile\" &&

Profile

}\n
*/}\n
\n )\n}\n\nexport default NavMenuComponent\n","import React, { useContext, useEffect, useState } from \"react\";\nimport \"./HomeComponent.scss\";\nimport { useNavigate } from \"react-router-dom\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { HomeQTImage } from \"./HomeQTImage\";\nimport NavMenu from \"../../shared/navMenuComponent/NavMenuComponent\";\nimport Context from \"../../context/Context\";\nimport { Divider, Grid } from \"@mui/material\";\nimport { Button } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport CustomModalComponent from \"../../shared/customModalComponent/CustomModalComponent\";\nimport axios from \"axios\";\nimport { BEURL, WSURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport \"../selectMultiplayerComponent/SelectMultiplayerComponent.scss\";\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\";\n\nconst useStyles = makeStyles((theme) => ({\n divider: {\n background: \"white\",\n flex: \"0.45\",\n height: \"0.5px\",\n },\n}));\n\nconst HomeComponent = () => {\n const navigate = useNavigate();\n const {\n socket,\n setHost,\n setSocket,\n setRoomId,\n setQuestionData,\n setLeaderboardData,\n setAnswerData,\n setPodiumPage,\n setDisconnect,\n setContinueQuizzing,\n setLoadingDisplayFlag,\n setNoOfCorrectAns,\n isLoggedIn,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n } = useContext(Context);\n\n const [openLogin, setOpenLogin] = useState(false);\n const handleOpenLogin = () => setOpenLogin(true);\n const handleCloseLogin = () => setOpenLogin(false);\n\n const [openQuizModal, setOpenQuizModal] = useState(false);\n const handleOpenQuizModal = () => setOpenQuizModal(true);\n const handleCloseQuizModal = () => setOpenQuizModal(false);\n\n const [submitFlag, setSubmitFlag] = useState(false);\n const handleRoomCodeChange = (e) => {\n e.target.value ? setSubmitFlag(true) : setSubmitFlag(false);\n };\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n const handleJoinRoomSubmit = () => {\n sessionStorage.removeItem(\"isHost\");\n var inputRoomId = document.getElementById(\"roomCode\").value;\n inputRoomId = inputRoomId.toLowerCase();\n if (inputRoomId?.length === 6) {\n axios\n .post(\n BEURL + apiEndpoints.checkRoomId,\n JSON.stringify({\n roomId: inputRoomId,\n })\n )\n .then((res) => {\n if (res.data.roomIdExistsFlag) {\n setHost(false);\n setRoomId(inputRoomId);\n if (sessionStorage.getItem(\"name\") && \n sessionStorage.getItem(\"email\") && \n sessionStorage.getItem(\"ageGroup\") && \n sessionStorage.getItem(\"avatar\")\n ) {\n if (socket == null) {\n const ws_socket = new WebSocket(`${WSURL}/ws/quiz/${inputRoomId}/`);\n setSocket(ws_socket);\n }\n navigate(\"/waitingroom\")\n } else {\n navigate(\"/joinroom\", { state: { roomId: inputRoomId } });\n }\n } else {\n setAlert(\"error\", \"Invalid Room ID.\");\n }\n })\n .catch((error) => {\n setAlert(\"error\", String(error.message));\n });\n } else {\n setAlert(\"error\", \"Room ID must be 6 characters in length.\");\n }\n };\n\n const handleHostQuiz = () => {\n setHost(true);\n sessionStorage.setItem(\"isHost\", true);\n if (isLoggedIn) {\n //use details if loggedIn and profile is complete\n setLoadingDisplayFlag(true);\n axios\n .get(BEURL + apiEndpoints.getProfile)\n .then((res) => {\n let username = res.data[\"username\"] || \"\";\n let email = res.data[\"email\"] || \"\";\n let age = res.data[\"custom:age_group\"] || \"\";\n let avatar = res.data[\"picture\"] || \"\";\n let sessionId = sessionStorage.getItem(\"sessionId\");\n if (![username, age, avatar].includes(\"\")) {\n //if either of them are empty get player details\n //set items in storage\n sessionStorage.setItem(\"ageGroup\", age);\n sessionStorage.setItem(\"name\", username);\n sessionStorage.setItem(\"email\", email);\n sessionStorage.setItem(\"avatar\", avatar);\n setLoadingDisplayFlag(false);\n //navigate to quiz selection\n navigate(\"/quizselection\");\n } else {\n navigate(\"/playerdetails\");\n }\n })\n .catch((err) => console.log(err));\n } //proceed to next page and get details\n else navigate(\"/playerdetails\");\n };\n\n const handleUserExit = (e) => {\n socket.send(\n JSON.stringify({\n action: \"userExit\",\n playerId: sessionStorage.getItem(\"sessionId\"), //take from local storage later; it's static now\n })\n );\n };\n\n const handleProfileClick = () => {\n if (isLoggedIn) {\n navigate(\"/profile\");\n } else {\n handleOpenLogin();\n }\n };\n\n useEffect(() => {\n // Close and initialize socket, roomId on home page everytime.\n if (socket !== null) {\n handleUserExit();\n socket.close();\n setSocket(null);\n setRoomId(null);\n setHost(null);\n setNoOfCorrectAns(0);\n setQuestionData({});\n setLeaderboardData({});\n setAnswerData({});\n setPodiumPage(false);\n setDisconnect(false);\n setContinueQuizzing(false);\n sessionStorage.removeItem(\"isHost\");\n if(!isLoggedIn){ // Clear session only if not logged in. Logged in user session is cleared only during log out\n sessionStorage.clear();\n }\n }\n }, []);\n\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const styleBg = {\n backgroundColor: \"#fdb913\",\n color: \"#fff\",\n fontFamily: \"CaustenEB\",\n fontSize: \"clamp(0.875rem, 2.36vw , 2.425rem)\",\n letterSpacing: isTablet ? \"0.5px\" : \"1px\",\n lineHeight: isTablet ? \"0.875rem\" : \"2.125rem\",\n textAlign: \"center\",\n borderRadius: \"10px\",\n paddingTop: \"clamp(1.35rem,9.8% , 2.3rem)\",\n paddingRight: \"clamp(2.3rem,9.8% , 2.8rem)\",\n paddingBottom: \"clamp(1.35rem,9.8% , 2.3rem)\",\n paddingLeft: \"clamp(2.3rem,9.8% , 2.8rem)\",\n width: isMobile ? \"9rem\" : \"100%\",\n };\n\n const styleGray = {\n backgroundColor: \"#939393\",\n color: \"#fff\",\n fontFamily: \"CaustenEB\",\n fontSize: \"clamp(0.875rem, 2.36vw , 2.125rem)\",\n letterSpacing: isTablet ? \"0.5px\" : \"1px\",\n lineHeight: isTablet ? \"0.875rem\" : \"2.125rem\",\n textAlign: \"center\",\n borderRadius: \"10px\",\n cursor: \"not-allowed\",\n paddingTop: \"clamp(1.25rem,9.3% , 2rem)\",\n paddingRight: \"clamp(2rem,9.3% , 2.5rem)\",\n paddingBottom: \"clamp(1.25rem,9.3% , 2rem)\",\n paddingLeft: \"clamp(2rem,9.3% , 2.5rem)\",\n width: isMobile ? \"9rem\" : \"100%\",\n };\n\n const classes = useStyles();\n\n return (\n
\n \n
\n
\n All set to Quiz today?\n
\n {isTablet && (\n \n \n
\n )}\n
\n \n \n \n Play Quiz\n \n \n {isTablet || ( //Only for tablets and up\n \n {\n navigate(\"/dashboard\")\n }}\n style={styleBg}\n >\n Create Quiz\n \n \n )}\n {\n \n \n PROFILE\n \n \n }\n {isTablet || ( //Only for tablets and up\n \n {\n navigate(\"/reports\")\n }}\n style={styleBg}\n >\n Reports\n \n \n )}\n {/* {isTablet || \n \n } */}\n \n
\n
\n {isTablet || (\n
\n \n
\n )}\n \n \n
\n

PLAY QUIZ

\n

\n To start QUIZing solo or with friends, you can either host a new\n quiz or join one hosted by another user. Select one to proceed.\n

\n
\n \n START A QUIZ\n \n
\n
\n \n

OR

\n \n
\n

\n Please enter the room code (the last 6 characters of the link) to\n enter the quiz.\n

\n
\n \n \n JOIN QUIZ\n \n
\n
\n \n \n );\n};\n\nexport default HomeComponent;\n","import React from \"react\";\nimport \"./NameAgeComponent.scss\";\nimport { Button } from \"@mui/material\";\nimport { useEffect, useState, useContext } from \"react\";\nimport Context from \"./../../../context/Context\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport Radio from \"@mui/material/Radio\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport { useNavigate } from \"react-router-dom\";\nimport TitleComponent from \"../../../shared/titleComponent/TitleComponent\";\nimport NavMenuComponent from \"../../../shared/navMenuComponent/NavMenuComponent\";\nimport { BEURL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport axios from \"axios\";\nimport { validateEmail } from \"../../../shared/constants\";\n\nconst RadioBtn = ({ value, label }) => (\n \n }\n label={label}\n />\n);\n\nconst NameAgeComponent = ({ proceedCallback }) => {\n const [name, setName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [age, setAge] = useState(\"\");\n const [avatar, setAvatar] = useState(\"\");\n const [avatarPrevId, setAvatarPrevId] = useState(-1);\n const [nameReadOnlyFlag, setNameReadOnlyFlag] = useState(false);\n const [emailReadOnlyFlag, setEmailReadOnlyFlag] = useState(false);\n const [buttonEnableFlag, setButtonEnableFlag] = useState(true);\n const { setRoomId, setLoadingDisplayFlag, isLoggedIn, setNotificationType, setNotificationMessage, setNotificationDisplayFlag } = useContext(Context);\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n const navigate = useNavigate();\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n const styledButton = {\n padding: isMobile ? \"0.8rem 2rem\" : \"2.2rem 7rem\",\n color: \"#fff\",\n marginTop: \"auto\",\n // fontSize:isMobile? \"0.875rem\" : \"2.125rem\",\n fontSize: \"clamp(0.875rem, 2.36vw, 2.125rem)\",\n letterSpacing: isMobile ? \"0.5px\" : \"1px\",\n // lineHeight: isMobile? \"2.125rem\" : \"0.875rem\",\n lineHeight: \"clamp(0.875rem, 2.36vw, 2.125rem)\",\n textAlign: \"center\",\n fontFamily: \"CaustenR\",\n fontWeight: \"700\",\n borderRadius: \"10px\",\n marginBottom: \"2.5rem\",\n };\n\n useEffect(() => {\n // Enable Proceed button when age and name fields are not empty\n if (\n age.trim() !== \"\" &&\n name.trim() !== \"\" &&\n email.trim() !== \"\" &&\n validateEmail(email.trim()) &&\n (avatarPrevId !== -1 || avatar !== \"\")\n )\n setButtonEnableFlag(false);\n else setButtonEnableFlag(true);\n }, [age, name, email, avatarPrevId]);\n\n useEffect(() => {\n //set name for logged in users\n if (isLoggedIn) {\n const url = BEURL + apiEndpoints.getProfile;\n setLoadingDisplayFlag(true);\n axios\n .get(url)\n .then((res) => {\n setName(res.data[\"username\"] || \"\");\n res.data[\"username\"] && setNameReadOnlyFlag(true) // Make name input field readonly\n setEmail(res.data[\"email\"] || \"\");\n res.data[\"email\"] && setEmailReadOnlyFlag(true) // Make email input field readonly\n setAge(res.data[\"custom:age_group\"] || \"\");\n setAvatar(res.data[\"picture\"] || \"\");\n setLoadingDisplayFlag(false);\n })\n .catch((err) => console.log(err));\n }\n //scroll bar style\n let main = document.getElementById(\"main\");\n main.classList.add(\"main-green\");\n return () => {\n //scroll bar style\n let main = document.getElementById(\"main\");\n main.classList.remove(\"main-green\");\n };\n }, []);\n\n const handleAgeChange = (event) => {\n setAge(event.target.value);\n };\n\n const handleNameInput = (event) => {\n setName(event.target.value);\n };\n\n const handleEmailInput = (event) => {\n setEmail(event.target.value);\n };\n\n const handleOnClick = () => {\n setRoomId(null);\n navigate(-1);\n };\n\n const handleSelectAvatar = (e) => {\n let id = e.target.id;\n setAvatarPrevId((prevId) => {\n if (prevId !== -1) {\n //first time there's no selected avatar; so don't have to remove anything\n let prevElement = document.getElementById(prevId);\n prevElement.classList.remove(\"nameAge__avatar__selected\");\n }\n let currElement = document.getElementById(id);\n currElement.classList.add(\"nameAge__avatar__selected\");\n return id;\n });\n };\n\n return (\n
\n \n \n
\n \n \n
\n
\n \n \n Enter a valid email\n
\n
\n \n \n \n \n \n {/* need to change the value for 18+ */}\n \n
\n {(!isLoggedIn || avatar === \"\") && (\n
\n \n
\n {[0, 1, 2, 3, 4].map((num) => (\n \n ))}\n
\n
\n )}\n\n
\n {\n if (!isLoggedIn || avatar === \"\") {\n setAvatar(\n `${process.env.REACT_APP_S3_PROFILE_IMAGE_URL}avatar${avatarPrevId}.svg`\n );\n proceedCallback(name, email, age, avatar);\n }\n proceedCallback(\n name,\n email,\n age,\n `${process.env.REACT_APP_S3_PROFILE_IMAGE_URL}avatar${avatarPrevId}.svg`\n );\n }}\n disabled={buttonEnableFlag}\n style={{\n ...styledButton,\n backgroundColor: buttonEnableFlag ? \"grey\" : \"#fdb913\",\n }}\n >\n PROCEED\n \n
\n
\n );\n};\n\nexport default NameAgeComponent;\n","import React from 'react';\nimport \"./PlayerDetailsComponent.scss\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useContext, useEffect, useState } from \"react\";\nimport Context from \"../../../context/Context\";\nimport axios from \"axios\"\nimport { BEURL, WSURL } from \"./../../../api/BaseUrl\";\nimport apiEndpoints from \"./../../../api/EndPoints\";\nimport \"./PlayerDetailsComponent.scss\"\n\nimport NameAgeComponent from \"./../nameAgeComponent/NameAgeComponent\";\n\nconst PlayerDetailsComponent = ({ urlRoomId }) => {\n const [playerName, setPlayerName] = useState(\"\")\n const [playerEmail, setPlayerEmail] = useState(\"\")\n const [ageGroup, setAgeGroup] = useState(\"\")\n const [sessionId, setSessionId] = useState(Math.random().toString(36).slice(-10))\n const { socket,\n setSocket,\n host,\n roomId,\n setRoomId,\n setLoadingDisplayFlag,\n setUserName,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n podiumPage,\n isLoggedIn\n } = useContext(Context)\n const navigate = useNavigate()\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n useEffect(() => {\n if (!host && !urlRoomId) {\n navigate(\"/home\")\n }\n if (isLoggedIn){\n setSessionId(sessionStorage.getItem(\"sessionId\"))\n }\n }, [])\n\n useEffect(() => { // This useEffect will run for players/invitees joining\n if (socket !== null && !host) {\n sessionStorage.setItem(\"sessionId\", sessionId)\n setLoadingDisplayFlag(false)\n if (podiumPage) {\n navigate(\"/podium\");\n } else {\n navigate(\"/waitingroom\")\n }\n }\n }, [socket])\n\n useEffect(() => {\n if (playerName && playerEmail && ageGroup) {\n setUserName(playerName)\n if (host) {\n sessionStorage.setItem(\"sessionId\", sessionId)\n navigate(\"/quizselection\")\n }\n else { // Block to execute for all invitees/players\n if (socket == null) {\n const socket = new WebSocket(`${WSURL}/ws/quiz/${roomId}/`)\n setSocket(socket)\n }\n }\n }\n }, [playerName, playerEmail, ageGroup])\n\n const handleNameAge = (name, email, age, avatar) => {\n sessionStorage.setItem(\"ageGroup\", age);\n sessionStorage.setItem(\"name\", name);\n sessionStorage.setItem(\"email\", email);\n sessionStorage.setItem(\"avatar\", avatar);\n setPlayerName(name)\n setPlayerEmail(email)\n setAgeGroup(age)\n }\n \n return (\n
\n \n
\n )\n}\n\nexport default PlayerDetailsComponent","import React, { useState } from \"react\";\nimport InviteModalComponent from \"./InviteModalComponent\";\nimport { AiOutlineShareAlt } from \"react-icons/ai\";\nimport { IconButton } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\n\nconst InviteModalWrapper = ({ waitingRoom, qtestId }) => {\n const [open, setOpen] = useState(false);\n const handleOpen = () => setOpen(true);\n const handleClose = () => setOpen(false);\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n const styleIconButton = {\n border: \"2px solid #fff\",\n color: \"white\",\n width: isMobile ? \"2.5rem\" : \"3.8rem\",\n borderRadius: \"10px\",\n };\n return (\n <>\n {waitingRoom ? (\n \n \n \n ) : (\n
\n \n

INVITE FRIENDS

\n
\n )}\n\n \n \n\n );\n}\n\nexport default InviteModalWrapper;","import React, { useState } from \"react\";\nimport \"./SliderComponent.scss\";\n\nconst SliderComponent = ({ images }) => {\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const handlePrevious = () => {\n setCurrentIndex((prevIndex) => {\n if (prevIndex > 0) {\n return prevIndex - 1;\n }\n return prevIndex; \n });\n };\n \n const handleNext = () => {\n setCurrentIndex((prevIndex) => {\n if (prevIndex < images.length - 1) {\n return prevIndex + 1;\n }\n return prevIndex; \n });\n };\n\n return (\n
\n
\n \n {images.map((image, index) => (\n
\n

\n {image.label}\n
\n ))}\n
\n
\n \n \n \n \n
\n \n \n \n \n
\n \n \n \n );\n};\n\nexport default SliderComponent;\n","import React from 'react'\nimport \"./WaitingRoomComponent.scss\"\nimport { Button, Grid } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { FaUsers } from \"react-icons/fa\";\nimport Context from \"./../../context/Context\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { makeStyles } from '@mui/styles';\nimport { BEURL, FEURL } from \"./../../api/BaseUrl\";\nimport { Box } from \"@mui/system\";\nimport TitleComponent from '../../shared/titleComponent/TitleComponent';\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport CustomModalComponent from '../../shared/customModalComponent/CustomModalComponent';\nimport InviteModalWrapper from '../../shared/inviteModalComponent/InviteModalWrapper';\nimport ExitWarning from '../../shared/exitWarning/ExitWarning';\nimport axios from 'axios';\nimport apiEndpoints from \"./../../api/EndPoints\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { isStateValid } from '../../shared/constants';\nimport SliderComponent from '../../shared/sliderComponent/SliderComponent';\nimport { getSlideInfoFromRoomId } from '../../shared/constants';\nimport { FaInfoCircle } from \"react-icons/fa\";\nimport QRCode from 'react-qr-code';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSpinner } from '@fortawesome/free-solid-svg-icons';\n\nconst useStyles = makeStyles({\n button: {\n padding: \"0.5rem 1.5rem\",\n fontFamily: \"CaustenR\",\n fontSize: \"1.8rem\",\n fontWeight: \"700\",\n color: \"white\",\n borderRadius: \"10px\",\n // \"@media only screen and (max-width: 1536px)\": {\n // fontSize: \"1.4rem\",\n // fontWeight: \"400\",\n // fontFamily: \"CaustenEB\",\n // padding: \"1rem 1.5rem\",\n // },\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 1.2rem\",\n },\n \"@media only screen and (max-width: 600px)\": {\n fontSize: \"0.875rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenR\",\n padding: \"0.8rem 2rem\",\n }\n },\n\n disableButton: {\n padding: \"1rem 3.5rem\",\n border: \"1px solid grey\",\n fontFamily: \"CaustenR\",\n fontSize: \"1.8rem\",\n fontWeight: \"700\",\n color: \"grey\",\n borderRadius: \"10px\",\n \"&:hover\": {\n backgroundColor: \"#d3d3d3\",\n color: \"white\",\n borderColor: \"#d3d3d3\",\n },\n cursor: \"not-allowed\",\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 1.2rem\",\n },\n \"@media only screen and (max-width: 600px)\": {\n fontSize: \"0.875rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenR\",\n padding: \"0.8rem 2rem\",\n }\n }\n})\n\nconst WaitingRoomComponent = () => {\n const {\n socket,\n leaderboardData,\n userName,\n roomId,\n host,\n questionsList,\n questionData,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n answerData,\n setContinueQuizzing,\n podiumPage,\n isLoggedIn\n } = useContext(Context);\n const navigate = useNavigate()\n const classes = useStyles()\n const [exitModalOpen, setExitModalOpen] = useState(false);\n\n // for testing\n // useEffect(() => {\n // setHost(true)\n // setRoomId('79it3i')\n // setLeaderboardData({\n // playerStats:[\n // {playerId: \"P1\", playerName: \"Player1\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar1.svg\"},\n // {playerId: \"P2\", playerName: \"Player2\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar2.svg\"},\n // {playerId: \"P3\", playerName: \"Player3\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar3.svg\"},\n // {playerId: \"P4\", playerName: \"Player4\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar4.svg\"},\n // {playerId: \"P5\", playerName: \"Player5\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar5.svg\"},\n // {playerId: \"P6\", playerName: \"Player6\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar3.svg\"},\n // {playerId: \"P7\", playerName: \"Player7\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar1.svg\"},\n // {playerId: \"P8\", playerName: \"Player8\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar2.svg\"},\n // {playerId: \"P9\", playerName: \"Player9\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar3.svg\"},\n // {playerId: \"P10\", playerName: \"Player10\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar4.svg\"},\n // {playerId: \"P11\", playerName: \"Player11\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar5.svg\"},\n // {playerId: \"P12\", playerName: \"Player12\", playerAvatar: \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/test/avatar1.svg\"},\n // ]\n // })\n // }, [])\n \n\n // Get params from navigate\n let backToPath = \"/quizselection\";\n const {state} = useLocation();\n if(isStateValid(state)){ // Check if state is valid\n // Read values passed on state if present\n if(state.hasOwnProperty(\"backToPath\")){\n backToPath = state.backToPath;\n }\n }\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n // Handle solo quiz component open and close\n const [openSoloConfirm, setOpenSoloConfirm] = useState(false);\n const handleOpenSoloConfirm = () => setOpenSoloConfirm(true);\n const handleCloseSoloConfirm = () => setOpenSoloConfirm(false);\n\n const [howToJoinOpen, setHowToJoinOpen] = useState(false);\n const handleOpenHowToJoin = () => setHowToJoinOpen(true);\n const handleCloseHowToJoin = () => setHowToJoinOpen(false);\n\n const selectInviteLink = () => {\n // Select the Invite Link text\n var range = document.createRange();\n var selection = window.getSelection();\n range.selectNodeContents(document.getElementById(\"inviteLink\"));\n selection.removeAllRanges();\n selection.addRange(range);\n }\n\n var shareLinkClipboard = new window.ClipboardJS(\".copyBtn\")\n shareLinkClipboard.on('success', function (e) {\n setTimeout(() => {\n setAlert(\"info\", \"Link copied to clipboard\");\n selectInviteLink();\n }, 100)\n })\n\n const startQuiz = () => {\n socket !== null &&\n socket.send(\n JSON.stringify({\n action: \"startQuiz\",\n roomId: roomId,\n })\n );\n // update player host quiz stat\n socket !== null && isLoggedIn && axios.get(\n BEURL + apiEndpoints.updateUserStats,\n {\n params:{ action : \"host\"}\n }\n ) \n }\n\n const handleStartQuizClick = () => {\n if (leaderboardData.hostModeFlag || leaderboardData?.playerStats?.length > 1) {\n startQuiz();\n }\n else {\n handleOpenSoloConfirm();\n }\n }\n\n const goToQuiz = () => {\n if ((!(Object.keys(questionData).length === 0 && questionData.constructor === Object) || !(Object.keys(answerData).length === 0 && answerData.constructor === Object))) {\n // navigate('/quiz')\n navigate('/getreadyroom')\n }\n }\n\n useEffect(() => {\n goToQuiz()\n }, [questionData, answerData])\n\n\n const goToPodium = () => {\n if (podiumPage) {\n navigate(\"/podium\");\n }\n }\n\n useEffect(() => {\n goToPodium()\n }, [podiumPage]);\n\n\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true)\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false)\n }\n }\n }\n\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return e.returnValue = \"Data will be lost if you leave the page, are you sure?\";\n };\n\n const goToHome = () => {\n if (userName === \"\") {\n navigate(\"/\")\n }\n }\n\n useEffect(() => {\n goToHome()\n }, [questionsList])\n\n\n const [finishStatus, setfinishStatus] = useState(false);\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener('popstate', onBackButtonEvent);\n window.addEventListener('beforeunload', onReloadButtonEvent);\n //scroll bar style\n let main = document.getElementById(\"main\")\n main.classList.add(\"main-green\");\n setContinueQuizzing(host) //continueQuizzing button in podium should be visible only to host\n return () => {\n window.removeEventListener('popstate', onBackButtonEvent);\n window.removeEventListener('beforeunload', onReloadButtonEvent);\n //scroll bar style\n let main = document.getElementById(\"main\")\n main.classList.remove(\"main-green\");\n };\n }, []);\n\n const handleBackClick = () => {\n if (host) {\n navigate(backToPath);\n } else {\n setExitModalOpen(true);\n }\n }\n\n return (\n
\n \n {host ? (\n
\n
\n
\n

{`${FEURL.split(/\\/\\/(.+)/)[1]}/${roomId}`}

\n \n copy\n \n
\n \n \n \n \n {(leaderboardData?.playerStats?.length > 0) && \n \n
\n \n {leaderboardData?.playerStats?.length}\n
\n
}\n
\n
\n

\n Room Code -   \n \n {roomId}\n \n

\n

\n Copy the link above and share it with your friends for them to join\n the quiz. Or scan the QR Code below to join the quiz.\n

\n
\n
\n ) : (\n
\n

\n {(leaderboardData?.playerStats?.length > 0) && \n \n

\n \n {leaderboardData?.playerStats?.length}\n
\n }\n The host will start the quiz once everyone has joined\n

\n
\n )}\n \n
\n {host && (\n
\n
\n \n
\n
\n )}\n 1)?\"transparent\":\"#58A01F\",\n backgroundColor: \"#58A01F\",\n \"@media only screen and (max-width: 600px)\": {\n // backgroundColor: \"#58A01F\",\n border: \"none\",\n },\n \"@media only screen and (min-width: 600px) and (max-height: 756px)\": { //if you change max-height also change it in the .css file in the media query\n height: host ? \"12rem\" : \"22rem\",\n },\n \"&::-webkit-scrollbar\": {\n width: \"14px\",\n },\n \"::-webkit-scrollbar-thumb\": {\n border: \"4px solid rgba(0, 0, 0, 0)\",\n backgroundClip: \"padding-box\",\n borderRadius: \"9999px\",\n backgroundColor: \"#388200\",\n }\n }}\n >\n {leaderboardData?.playerStats?.length > 0 ? (\n \n {leaderboardData?.playerStats?.map((player, idx) => (\n \n
\n
\n \"avatar\n
\n

{player.playerName}

\n {leaderboardData.hostId === player.playerId &&

Host

}\n
\n
\n ))}\n
):(\n

\n Waiting for others to join...\n

\n )}\n \n
\n \n {/*
\n \"qTNoPlayers\")}\n

Waiting for others to join...

\n
*/}\n\n {host && (\n <>\n
\n {/* */}\n \n START QUIZZING\n \n
\n \n
\n

Still have a chance to invite your friends!

\n
\n \n Invite Friends\n \n\n \n Quiz Solo\n \n
\n
\n
\n \n
\n

Instructions to join a quiz

\n

{\n isMobile ? (\n {roomId} \n ) : (\n <>Room Code - {roomId} \n )}\n

\n \n \n Close\n \n
\n
\n \n\n )}\n \n
\n );\n};\n\nexport default WaitingRoomComponent;\n","import React, { useRef } from 'react'\nimport \"./GetReadyRoomComponent.scss\"\nimport { Button, CircularProgress } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport Context from \"./../../context/Context\";\nimport { useNavigate } from \"react-router-dom\";\nimport { makeStyles } from '@mui/styles';\nimport TitleComponent from '../../shared/titleComponent/TitleComponent';\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport TimerComponent from '../quizComponent/timerComponent/TimerComponent';\nimport MobileTimerComponent from '../quizComponent/mobileTimerComponent/MobileTimerComponent';\nimport ExitWarning from '../../shared/exitWarning/ExitWarning';\nimport { BEURL } from '../../api/BaseUrl';\nimport apiEndpoints from '../../api/EndPoints';\nimport axios from 'axios';\n\nconst useStyles = makeStyles({\n button: {\n padding: \"1rem 3.5rem\",\n fontFamily: \"CaustenR\",\n fontSize:\"1.8rem\",\n color: \"white\",\n borderRadius: \"10px\",\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 1.2rem\",\n },\n \"@media only screen and (max-width: 600px)\": {\n fontSize: \"0.875rem\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 2rem\",\n }\n },\n\n disableButton: {\n padding: \"1rem 3.5rem\",\n border: \"1px solid grey\",\n fontFamily: \"CaustenR\",\n fontSize:\"1.8rem\",\n color: \"grey\",\n borderRadius: \"10px\",\n \"&:hover\": {\n backgroundColor: \"#d3d3d3\",\n color: \"white\",\n borderColor: \"#d3d3d3\",\n },\n cursor: \"not-allowed\",\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 1.2rem\",\n },\n \"@media only screen and (max-width: 600px)\": {\n fontSize: \"0.875rem\",\n fontFamily: \"CaustenEB\",\n borderRadius: \"10px\",\n padding: \"0.8rem 2rem\",\n }\n }\n})\n\nconst GetReadyRoomComponent = () => {\n const {\n userName,\n questionData,\n answerData,\n quizPage,\n host,\n podiumPage,\n isLoggedIn\n } = useContext(Context);\n const maxCounterTime = 3\n const [counter, setCounter] = useState(maxCounterTime);\n const navigate = useNavigate()\n\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\")); \n\n const initialRender = useRef(true);\n\n const [exitModalOpen, setExitModalOpen] = useState(false);\n\n//******** To handle browser default actions for back and reload buttons - Start *******/\n const [finishStatus, setfinishStatus] = useState(false);\n\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true)\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false)\n }\n }\n }\n\n // Assumption: player lands on this page then player has begun playing a game\n useEffect(() => {\n isLoggedIn && axios.get(\n BEURL + apiEndpoints.updateUserStats,\n {\n params:{ action : \"play\"}\n }\n ) \n }, [])\n \n\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return e.returnValue = \"Data will be lost if you leave the page, are you sure?\"; \n };\n\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener('popstate', onBackButtonEvent);\n window.addEventListener('beforeunload', onReloadButtonEvent);\n return () => {\n window.removeEventListener('popstate', onBackButtonEvent); \n window.removeEventListener('beforeunload', onReloadButtonEvent);\n };\n }, []);\n\n //******** To handle browser default actions for back and reload buttons - End *******/\n\n const goToPodium = () => {\n if (podiumPage) {\n navigate(\"/podium\");\n }\n }\n\n useEffect(() => {\n goToPodium()\n }, [podiumPage]);\n \n // Send to home page if username is not set\n const goToHome = ()=> {\n if (userName === \"\"){\n navigate(\"/\")\n }\n }\n\n useEffect(() => {\n goToHome()\n },[questionData, answerData])\n\n\n // Send to quiz page if questionData or answerData exists\n const goToQuiz = () => {\n if ((!(Object.keys(questionData).length === 0 && questionData.constructor === Object) || !(Object.keys(answerData).length === 0 && answerData.constructor === Object))) {\n navigate('/quiz')\n }\n }\n\n //Run countdown\n useEffect(() => {\n if (quizPage===\"question\") {\n const timer = setTimeout(() => {\n if (counter > 0)\n setCounter(prevState => prevState-1);\n else if (counter == 0)\n goToQuiz()\n }, 1000);\n return () => {\n clearTimeout(timer);\n };\n }\n },[counter])\n\n useEffect(() => {\n if (quizPage===\"question\" && !initialRender.current) {\n goToQuiz();\n }\n initialRender.current = false;\n }, [quizPage])\n\n const handleBackClick = () => {\n if (host) {\n navigate(\"/quizselection\");\n } else {\n setExitModalOpen(true);\n }\n }\n\n return (\n
\n \n
\n \"qTNoPlayers\"\n {(quizPage===\"question\") &&
\n \n
}\n {(quizPage===\"question\") &&
\n \n
}\n {(quizPage===\"answer\") && }\n {(quizPage===\"question\") &&

{counter ? counter : \"GO\"}

}\n {(quizPage===\"answer\") &&

{\"Thanks for joining! Please wait for the host to share the next question.\"}

}\n
\n\n {/*
\n \n START QUIZZING\n \n
*/}\n \n
\n );\n};\n\nexport default GetReadyRoomComponent;\n","import React, { useContext, useState } from \"react\";\nimport \"./QuizFooterComponent.scss\";\nimport { BsTrophy } from \"react-icons/bs\";\nimport { BiExit } from \"react-icons/bi\";\nimport { FaUserFriends } from 'react-icons/fa';\nimport Tooltip from '@mui/material/Tooltip';\nimport Context from \"../../../context/Context\";\nimport TimerComponent from \"../timerComponent/TimerComponent\";\nimport ExitWarning from \"../../../shared/exitWarning/ExitWarning\";\nimport InviteModalComponent from \"../../../shared/inviteModalComponent/InviteModalComponent\";\n\nconst QuizFooterComponent = () => {\n \n const { quizPage, leaderBoardOpen, setLeaderBoardOpen, maxTime, timerProgress, questionData } = useContext(Context);\n const [modalOpen, setModalOpen] = useState(false);\n const [inviteModalOpen, setInviteModalOpen] = useState(false);\n\n\n const timerToDisplay = () => {\n const displayValue = maxTime - timerProgress < 0 ? 0 : maxTime - timerProgress;\n\n //Spliting time to be displayed in minutes and seconds\n const mins = Math.floor(displayValue / 60);\n const secs = displayValue % 60;\n\n //Adding 0 to all values below 10. Ex: 07, 02 etc..\n if (secs >= 10) {\n return (\n mins + \":\" + secs\n );\n } else {\n return (\n mins + \":0\" + secs\n );\n }\n };\n\n\n return (\n\n
\n {(quizPage===\"answer\" || quizPage===\"hostModeStats\") || questionData.questionType ===\"NQS\" || }\n
\n
\n \n setModalOpen(true)}\n style={{ backgroundColor: modalOpen ? \"white\" : \"#30B2E7\" }}\n >\n \n
\n \n \n setInviteModalOpen(true)}\n style={{ backgroundColor: inviteModalOpen ? \"white\" : \"#30B2E7\" }}\n > \n \n
\n \n
\n\n setInviteModalOpen(false)} displayText={\"Invite Friends Via\"}/>\n \n\n {(quizPage===\"answer\" || quizPage===\"hostModeStats\") || questionData.questionType ===\"NQS\" ||

{timerToDisplay()}

}\n \n setLeaderBoardOpen(!leaderBoardOpen)}\n style={{ backgroundColor: leaderBoardOpen ? \"white\" : \"#30B2E7\" }}\n > \n \n \n \n \n \n );\n};\n\nexport default QuizFooterComponent;\n","import React, { useContext } from 'react';\nimport { FaCrown } from 'react-icons/fa';\nimport { VscDebugDisconnect } from \"react-icons/vsc\";\nimport { IconContext } from \"react-icons\";\nimport Context from '../../context/Context';\nimport \"./leaderboardList.scss\"\nimport { style } from '@mui/system';\n\nconst LeaderboardList = () => {\n\n const { leaderboardData, playerAnswerCount, podiumPage } = useContext(Context);\n const sortedPlayerNameAndScoreList = () => {\n return leaderboardData?.playerStats?.sort((a, b) => a.rank - b.rank);\n };\n\n const displayRank = (rank) => {\n return (rank === 0 \n ? \"-\" // replace rank 0 with hyphen, and rank 1 with crown in podium page \n : (rank === 1 && podiumPage) ? : `#${rank}`) \n \n }\n\n const getCurrentPlayer = () => {\n let currPlayer = leaderboardData.playerStats.find(o => o.playerId === sessionStorage.getItem(\"sessionId\"));\n if (currPlayer) {\n return (\n
\n

{displayRank(currPlayer.rank)}

\n
\n \"\" \n
\n

{`You`}

\n {currPlayer.playerId === leaderboardData.hostId ?\n (

{`Host`}

) : (``)}\n
\n {currPlayer.hasAnsweredCurrentQuestion && \n playerAnswerCount !== 0 && \n \"tick\n }{/* display the tick mark only if atleast one person has answered a question */}\n
\n

{currPlayer.totalScore}\n

\n
\n )\n }\n }\n\n return (\n
\n
\n
RANK
\n
PLAYER
\n
PTS
\n
\n
\n {\n leaderboardData?.playerStats?.length !== 0 ? (\n
\n
\n {getCurrentPlayer()}\n
\n {\n sortedPlayerNameAndScoreList().map((player, id) => (\n \n {(player.playerId != sessionStorage.getItem(\"sessionId\")) && (\n
\n

{displayRank(player.rank)}

\n
\n \"\"\n
\n

\n {(player.playerId === sessionStorage.getItem(\"sessionId\")) ? `You` : player.playerName} \n

\n \n {player.playerId === leaderboardData.hostId ? (

{`Host`}

) : (``)}\n
\n <> \n {player.isActive?\"\":\n \n \n }\n {player.hasAnsweredCurrentQuestion && \n playerAnswerCount !== 0 && \n \"tick\n } {/* display the tick mark only if atleast one person has answered a question */}\n
\n

{player.totalScore}

\n \n
\n )}\n
\n ))\n }\n
\n ) : (\n

No Players have answered

\n )\n }\n
\n\n
\n\n );\n}\n\nexport default LeaderboardList;","import React from 'react'\nimport \"./LeaderboardComponent.scss\"\nimport Drawer from \"@mui/material/Drawer\";\nimport { MdOutlineClose } from \"react-icons/md\";\nimport { useContext } from \"react\";\nimport Context from \"./../../context/Context\";\nimport { useLocation } from 'react-router-dom';\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport LeaderboardList from '../leaderboardList/LeaderboardList';\n\nconst drawerWidth = '380px'; // width for leaderboard sidebar\n\nfunction LeaderboardComponent({ quiz }) {\n const { leaderboardData, playerAnswerCount, playerCorrectAnswerCount, quizPage, \n leaderBoardOpen, setLeaderBoardOpen, noOfCorrectAns, noOfQuestions, questionData } = useContext(Context);\n const location = useLocation()\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\n \n return (\n \n
\n
\n

Leaderboard {quiz && {\n leaderboardData?.playerStats?.length > 1 ? (\n (quizPage===\"answer\" || quizPage===\"hostModeStats\")? \n (`${playerCorrectAnswerCount}/${leaderboardData?.noOfActivePlayers} Got it Right!`) :\n (`${playerAnswerCount}/${leaderboardData?.noOfActivePlayers} Answered`)) : \n (`${noOfCorrectAns}/${questionData?.questionNumber} Correct Answers`)\n }}

\n {setLeaderBoardOpen(false)}}\n />\n
\n \n
\n \n );\n}\n\nexport default LeaderboardComponent;\n","import React, { useContext, useEffect, useState } from \"react\";\nimport \"./quizDragArrangeComponent.scss\"\nimport { DragDropContext, Draggable, Droppable } from \"react-beautiful-dnd\"\nimport _ from \"lodash\";\nimport FillButtonComponent from \"../../../../shared/fillButtonComponent/FillButtonComponent\";\nimport Context from \"../../../../context/Context\";\nimport QuizDragArrangeComponent from \"./QuizDragArrangeComponent\";\n\n\n//This wrapper has been added coz, due to some bug in react-beautiful-dnd library,\n//the drag and drop stops working properly if we access useContext(context) in the same\n//file.\n\nconst QuizDragArrangeCompWrapper = ({ question,\n selectedAnswer,\n setSelectedAnswer,\n questionCount,\n noOfQuestions,\n sendTimeUp\n}) => {\n\n const { socket, roomId, leaderBoardOpen, mobileLeaderBoardOpen, timerProgress, host } = useContext(Context);\n const { questionId, questionTitle, quizType, imageName, answerChoices, quizId } = question || {};\n\n const handleAnswerSubmit = (finalAnswer) => {\n // console.log(finalAnswer);\n // console.log(finalAnswer.toString());\n // console.log(JSON.stringify(finalAnswer));\n setSelectedAnswer(finalAnswer);\n socket.send(\n JSON.stringify({\n action: \"submitAnswer\",\n playerId: sessionStorage.getItem(\"sessionId\"), //take from local storage later; it's static now\n questionId: questionId,\n quizId: quizId,\n roomId: roomId, //roomId, // take from context\n timeTaken: timerProgress,\n questionType: \"DND\",\n playerAnswer: JSON.stringify(finalAnswer),\n })\n );\n }\n\n\n\n return (\n \n );\n}\n\nexport default QuizDragArrangeCompWrapper;","\nimport React, { useContext } from \"react\";\nimport Context from \"../../../../context/Context\";\nimport QuizMTFComponent from \"./QuizMTFComponent\";\n\n//This wrapper has been added coz, due to some bug in react-beautiful-dnd library,\n//the drag and drop stops working properly if we access useContext(context) in the same\n//file.\n\nconst QuizMTFCompWrapper = ({ question,\n setSelectedAnswer,\n selectedAnswer,\n questionCount,\n noOfQuestions,\n sendTimeUp,\n}) => {\n\n const { socket, roomId, leaderBoardOpen, mobileLeaderBoardOpen, timerProgress, host } = useContext(Context);\n\n const { questionId, questionTitle, quizType, imageName, answerChoices, quizId } = question || {};\n\n const handleAnswerSubmit = (finalAnswer) => {\n setSelectedAnswer(finalAnswer);\n socket.send(\n JSON.stringify({\n action: \"submitAnswer\",\n playerId: sessionStorage.getItem(\"sessionId\"), \n questionId: questionId,\n quizId: quizId,\n roomId: roomId, //roomId, \n timeTaken: timerProgress,\n questionType: \"MTF\",\n playerAnswer: JSON.stringify(finalAnswer),\n })\n );\n }\n\n return ( \n \n );\n}\n \nexport default QuizMTFCompWrapper;","import React, { useState } from \"react\";\nimport \"./QuestionTypeComponent.scss\";\nimport { useContext, useEffect } from \"react\";\nimport Context from \"../../../context/Context\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport QuizBasicComponent from \"../quizBasicComponent/QuizBasicComponent\";\nimport CustomModalComponent from \"../../../shared/customModalComponent/CustomModalComponent\";\nimport MobileTimerComponent from \"../mobileTimerComponent/MobileTimerComponent\";\nimport QuizDragArrangeCompWrapper from \"./quizDragArrangeComponent/QuizDragArrangeCompWrapper\";\nimport QuizMTFComponent from \"./quizMTFComponent/QuizMTFComponent\";\nimport QuizMTFCompWrapper from \"./quizMTFComponent/QuizMTFCompWrapper\";\n\nconst QuestionTypeComponent = ({\n question,\n setSelectedAnswer,\n selectedAnswer,\n questionCount,\n noOfQuestions,\n}) => {\n const { socket, maxTime, timerProgress, setTimerProgress, quizPage, leaderboardData, questionData } = useContext(Context);\n\n const [lockedModalOpen, setLockedModalOpen] = useState(false);\n\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n // console.log(question);\n // console.log(question?.questionType);\n\n useEffect(() => {\n if (questionData.questionType === \"NQS\")\n return //dont set timer for NQS slide\n const timer = setInterval(() => {\n setTimerProgress((prevProgress) => {\n if (prevProgress >= maxTime) {\n clearInterval(timer)\n sendTimeUp()\n return maxTime\n } else{\n return prevProgress + 1\n }\n })\n }, 1000);\n return (() => {\n clearInterval(timer)\n setTimerProgress(0);\n });\n }, [questionData]);\n\n useEffect(() => {\n if (selectedAnswer) {\n setLockedModalOpen(true)\n }\n if (quizPage===\"answer\" || quizPage===\"hostModeStats\"){\n setLockedModalOpen(false)\n }\n }, [selectedAnswer, quizPage])\n\n const sendTimeUp = () => {\n if (sessionStorage.getItem(\"isHost\")) {\n socket &&\n socket.send(\n JSON.stringify({\n action: \"timeUp\",\n })\n );\n }\n }\n\n useEffect(() => {\n document.getElementById(\"main\").scrollTo(0, 0)\n }, [])\n\n return (\n <>\n\n
\n {(question?.questionType === \"DND\") ?\n () : ((question?.questionType === \"MTF\") ?\n () :\n ()\n )\n }\n\n
\n\n 1}\n handleClose={() => { setLockedModalOpen(false) }}\n >\n
\n

\n Answer Has\n
\n Been Locked\n

\n
\n \n

\n Your answer has been recorded. Sit tight till\n
\n the timer runs out and others to answer to\n
\n know if you have aced it\n

\n
\n
\n \n \n );\n};\n\nexport default QuestionTypeComponent;\n","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport { Box } from '@mui/system';\nimport Context from '../../../context/Context';\nimport \"./QuizNavBarComponent.scss\";\n\nconst QuizNavBar = ({pageName}) => {\n\n const {mobileLeaderBoardOpen, setMobileLeaderBoardOpen, quizPage } = React.useContext(Context);\n const handleLeaderBoard = () =>{\n setMobileLeaderBoardOpen(true)\n }\n\n const handleQuizPage = () => {\n setMobileLeaderBoardOpen(false)\n }\n\n const navBarButton = { \n flexGrow: '1',\n flexBasis: '0', \n fontFamily: \"CaustenEB\",\n fontSize: '14px',\n letterSpacing: '0.031rem',\n \"&:focus\": {\n backgroundColor: \"#007FB3\",\n color: \"#FDB913\",\n }, \n \"@media only screen and (min-height: 900px)\": {\n fontSize: '20px',\n }, \n }\n\n return (\n \n \n\n \n \n );\n}\n\nexport default QuizNavBar","import useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport React, { useContext} from \"react\";\nimport Context from \"../../../context/Context\";\nimport MobileTimerComponent from \"../mobileTimerComponent/MobileTimerComponent\";\nimport QuizNavBar from \"../quizNavBarComponent/QuizNavBarComponent\";\nimport \"./QuizMobileFixedHeader.scss\"\nimport LeaderboardList from \"../../leaderboardList/LeaderboardList\";\n\nconst QuizMobileFixedHeader = ({ questionCount, noOfQuestions }) => {\n const { leaderboardData, playerAnswerCount, playerCorrectAnswerCount, mobileLeaderBoardOpen, \n timerProgress, maxTime, quizPage, noOfCorrectAns, questionData } = useContext(Context);\n const theme = useTheme();\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n return (\n
\n {isTablet && (\n
\n
\n

\n {`Question ${questionCount} / ${noOfQuestions}`}\n

\n

\n {\n leaderboardData?.playerStats?.length > 1 ? (\n (quizPage===\"answer\" || quizPage===\"hostModeStats\") ?\n (`${playerCorrectAnswerCount} of ${leaderboardData?.noOfActivePlayers} Got it Right!`) :\n (`${playerAnswerCount} of ${leaderboardData?.noOfActivePlayers} Players Answered`)) :\n (`${noOfCorrectAns}/${questionData?.questionNumber} Correct Answers`)\n }\n

\n \n {\" \"}\n
\n
\n {isTablet && (\n \n )}\n {mobileLeaderBoardOpen && }\n
\n )}\n \n );\n}\nexport default QuizMobileFixedHeader;","import React from \"react\";\nimport {\n Chart,\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend,\n} from \"chart.js\";\nimport { Bar } from \"react-chartjs-2\";\nimport ChartDataLabels from \"chartjs-plugin-datalabels\";\nimport { capitalizeString } from \"../constants\";\n\nconst BarChartComponent = ({ barChartData }) => {\n Chart.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Title,\n Tooltip,\n Legend,\n ChartDataLabels,\n );\n\n // Extract correct answer index from barChartData object\n const correctAnswerIndex = barChartData?.correctAnswerIndex;\n\n // Define colors for the bars, highlight the correct answer with green\n const barColors = barChartData?.values.map((_, index) => {\n return index === correctAnswerIndex ? \"#75B543\" : \"#ECA904\"; // Correct answer in green, others in yellow\n });\n\n return (\n value,\n },\n tooltip: {\n callbacks: {\n label: function (tooltipItem) {\n return \" \" + capitalizeString(barChartData?.toolTipMessages[tooltipItem.dataIndex]); // Dynamic tooltips. Added extra space for aesthetics.\n },\n },\n },\n },\n animation: {\n duration: 2000,\n delay: (context) => {\n let delay = 20;\n if (\n context.type === \"data\" &&\n context.mode === \"default\" &&\n !context.dropped\n ) {\n delay = context.dataIndex * 500 + context.datasetIndex * 100;\n }\n return delay;\n },\n },\n elements: {\n bar: {\n borderRadius: 5,\n }\n }\n }}\n />\n );\n};\n\nexport default BarChartComponent;\n","import React, { useContext, useEffect } from \"react\";\nimport \"./QuestionStatsComponent.scss\";\nimport BarChartComponent from \"../../../shared/barChartComponent/BarChartComponent\";\nimport Context from \"../../../context/Context\";\nimport { useNavigate } from 'react-router-dom';\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\";\n\nconst QuestionStatsComponent = ({\n barChartData,\n handleNextQuestion\n}) => {\n const { playerAnswerCount, playerCorrectAnswerCount, podiumPage, leaderboardData, questionData, noOfQuestions, setQuizPage } = useContext(Context);\n\n // Navigate to Podium when page is set from the backend\n const navigate = useNavigate()\n const goToPodium = () => {\n if (podiumPage) {\n navigate(\"/podium\");\n }\n }\n useEffect(() => {\n goToPodium()\n }, [podiumPage]);\n\n const correctAnswerPercentage = playerAnswerCount\n ? (playerCorrectAnswerCount / playerAnswerCount) * 100\n : 0;\n\n const resultMessage =\n correctAnswerPercentage > 50\n ? `Easy question, ${correctAnswerPercentage}% got it right`\n : `Tricky question, ${correctAnswerPercentage}% got it right`;\n \n const indexToRemove = barChartData.labels.indexOf('X');\n\n if (indexToRemove !== -1) {\n barChartData.labels.splice(indexToRemove, 1);\n barChartData.toolTipMessages.splice(indexToRemove, 1);\n barChartData.values.splice(indexToRemove, 1);\n }\n \n return (\n
\n

Question Stats

\n
\n
\n \n
\n
\n

{resultMessage}

\n

\n {playerAnswerCount}/{leaderboardData?.noOfActivePlayers} attempted the question\n

\n
\n setQuizPage(\"answer\")} \n />\n \n
\n
\n
\n
\n );\n};\n\nexport default QuestionStatsComponent;\n","import React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport \"./QuizComponent.scss\";\nimport QuizFooterComponent from \"./../quizFooterComponent/QuizFooterComponent\";\nimport QuizAnswerComponent from \"./../quizAnswerComponent/QuizAnswerComponent\";\nimport { useContext, useState } from \"react\";\nimport Context from \"./../../../context/Context\";\nimport LeaderboardComponent from \"./../../leaderboardComponent/LeaderboardComponent\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport QuestionTypeComponent from \"../quizTypeComponent/QuestionTypeComponent\";\nimport QuizMobileFixedHeader from \"../quizMobileFixedHeader/QuizMobileFixedHeader\";\nimport QuestionStatsComponent from \"../questionStatsComponent/QuestionStatsComponent\";\nimport FillButtonComponent from \"../../../shared/fillButtonComponent/FillButtonComponent\";\n\nconst QuizComponent = () => {\n const navigate = useNavigate();\n const {\n questionData,\n answerData,\n noOfQuestions,\n quizPage,\n setQuizPage,\n selectedAnswer,\n setSelectedAnswer,\n leaderBoardOpen,\n leaderboardData,\n socket,\n host\n } = useContext(Context);\n\n const [timerText, setTimerText] = useState(0);\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true);\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false);\n }\n }\n };\n\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return (e.returnValue =\n \"Data will be lost if you leave the page, are you sure?\");\n };\n\n const handleNextQuestion = () => {\n if (questionData?.questionNumber === noOfQuestions) {\n socket &&\n socket.send(\n JSON.stringify({\n action: \"goToPodium\",\n })\n );\n } else if (questionData?.questionNumber !== noOfQuestions) {\n socket &&\n socket.send(\n JSON.stringify({\n action: \"sendNextQuestion\",\n })\n );\n }\n };\n\n const handleShowQuestionResults = () => {\n setQuizPage(\"hostModeStats\")\n };\n\n useEffect(() => {\n document.getElementById(\"quizComp_content\").scrollTo(0, 0)\n }, [quizPage])\n\n const goToHome = () => {\n if (!questionData) {\n navigate(\"/\");\n }\n }\n\n useEffect(() => {\n goToHome()\n }, [questionData]);\n\n const [finishStatus, setfinishStatus] = useState(false);\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener(\"popstate\", onBackButtonEvent);\n window.addEventListener(\"beforeunload\", onReloadButtonEvent);\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonEvent);\n window.removeEventListener(\"beforeunload\", onReloadButtonEvent);\n };\n }, []);\n\n return (\n
\n\n \n {isMobile &&\n \n }\n\n {(quizPage===\"answer\") ? (\n \n ) : (quizPage===\"hostModeStats\") ? (\n \n ) : (\n \n )}\n\n {((quizPage===\"answer\") && host && (\n
\n {answerData?.hostModeFlag && (\n \n )}\n \n
\n ))}\n\n
\n\n {isMobile || }\n {isMobile || }\n \n );\n};\nexport default QuizComponent;","import React from \"react\";\nimport \"./PodiumComponent.scss\";\nimport { Fragment, useContext, useState, useEffect } from \"react\";\nimport {\n WhatsappShareButton,\n FacebookShareButton,\n TwitterShareButton,\n WhatsappIcon,\n TwitterIcon,\n FacebookIcon,\n} from \"react-share\";\nimport { useNavigate } from \"react-router-dom\";\nimport { styled } from \"@mui/material/styles\";\nimport { Button } from \"@mui/material\";\nimport Context from \"./../../context/Context\";\nimport LeaderboardComponent from \"./../leaderboardComponent/LeaderboardComponent\";\nimport { BEURL, FEURL } from \"./../../api/BaseUrl\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport QuizNavBar from \"../quizComponent/quizNavBarComponent/QuizNavBarComponent\";\nimport LeaderboardList from \"../leaderboardList/LeaderboardList\";\nimport configData from \"../../config.json\";\nimport InviteModalWrapper from \"../../shared/inviteModalComponent/InviteModalWrapper\";\nimport { MdContentCopy } from \"react-icons/md\";\nimport axios from \"axios\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport DownloadAsCSVComponent from '../../shared/downloadAsCSVComponent/DownloadAsCSVComponent';\n\nconst Main = styled(\"main\", { shouldForwardProp: (prop) => prop !== \"open\" })(\n ({ theme, open }) => ({\n flexGrow: 1,\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n width: open ? 'calc(100vw - 380px)' : \"100vw\",\n ...(open && {\n transition: theme.transitions.create(\"width\", {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n marginRight: 0,\n }),\n })\n);\n\nfunction PodiumComponent() {\n const {\n leaderboardData,\n setQuestionData,\n socket,\n setAnswerData,\n setPodiumPage,\n leaderBoardOpen,\n setLeaderBoardOpen,\n mobileLeaderBoardOpen,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n quizType,\n setQuizType,\n continueQuizzing,\n setNoOfCorrectAns,\n host,\n isLoggedIn,\n roomId\n } = useContext(Context);\n const navigate = useNavigate();\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const [finishStatus, setfinishStatus] = useState(false);\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n useEffect(() => {\n if (!socket) {\n navigate(\"/\");\n }\n })\n\n // Clipboard code\n var shareScoreClipboard = new window.ClipboardJS(\".podium__copyScoreContainer\", {\n text: function (trigger) {\n return `${configData.shareScoreText1} ${getScore()} ${configData.shareScoreText2_WA} ${FEURL}`;\n }\n });\n shareScoreClipboard.on('success', function (e) {\n setTimeout(() => {\n setAlert(\"info\", \"Copied score details to clipboard\");\n }, 100)\n });\n\n useEffect(() => {\n setLeaderBoardOpen(!isTablet);\n }, [isTablet]);\n\n const styledButton = {\n padding: \"1.5rem 3rem\",\n color: \"#fff\",\n fontSize: isMobile ? \"0.875rem\" : \"1.5625rem\",\n lineHeight: isMobile ? \"0.875rem\" : \"1.5625rem\",\n fontFamily: isMobile ? \"CaustenEB\" : \"CaustenR\",\n fontWeight: isMobile || \"700\",\n letterSpacing: \"0.5px\",\n borderRadius: \"10px\",\n marginTop: \"auto\",\n };\n\n const goBackToWaitingRoom = () => {\n setQuestionData({});\n setAnswerData({});\n setPodiumPage(false)\n setNoOfCorrectAns(0);\n quizType == \"Ready Made\" ? navigate(\"/quizselection\") : navigate(\"/waitingroom\");\n setQuizType(\"\");\n socket.send(\n JSON.stringify({\n \"action\": \"goBackToWaitingRoom\",\n \"playerName\": sessionStorage.getItem(\"name\"),\n \"playerId\": sessionStorage.getItem(\"sessionId\"),\n \"playerAvatar\": sessionStorage.getItem(\"avatar\")\n })\n );\n };\n\n const getRank = () => {\n // function for getting my current rank\n let myPlayer = leaderboardData?.playerStats?.filter(\n (player) => player.playerId === sessionStorage.getItem(\"sessionId\")\n );\n return `Your rank is ${myPlayer[0]?.rank}`;\n };\n\n const getScore = () => {\n let myPlayer = leaderboardData?.playerStats?.filter(\n (player) => player.playerId === sessionStorage.getItem(\"sessionId\")\n );\n return myPlayer[0]?.totalScore;\n };\n\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true);\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false);\n }\n }\n };\n\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return (e.returnValue =\n \"Data will be lost if you leave the page, are you sure?\");\n };\n\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener(\"popstate\", onBackButtonEvent);\n window.addEventListener(\"beforeunload\", onReloadButtonEvent);\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonEvent);\n window.removeEventListener(\"beforeunload\", onReloadButtonEvent);\n };\n }, []);\n\n const handleBackToHome = () => {\n navigate(\"/\");\n };\n\n //Assumption only if winning player reached the podium he has won the game\n useEffect(() => {\n const rank = getRank().slice(-2)\n if (rank === \" 1\" && isLoggedIn){\n axios.get(\n BEURL + apiEndpoints.updateUserStats,\n {\n params:{ action : \"won\"}\n }\n ) \n }\n\n }, [])\n \n\n \n continueQuizzing && !host && //show alert for all except host when new game starts \n setAlert(\"info\", `Host has started a new game! Click on ${quizType == \"Ready Made\" ? \"KEEP QUIZZING\" : \"BACK TO WAITING ROOM\"} to join them`)\n\n const handleExcelSummaryDownload = () => { \n setLoadingDisplayFlag(true);\n axios({\n url: BEURL + apiEndpoints.getExcelSummary, //your url\n method: 'POST',\n data: {\n roomId: roomId\n },\n responseType: 'blob', // important\n }).then((response) => {\t\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', 'quizSummary.xlsx'); //or any other extension\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }).catch((err) => {\n setAlert(\"error\",err.response.data)\n }).finally(()=>{\n setLoadingDisplayFlag(false);\n });\n }\n \n return (\n <>\n { socket &&\n (
\n {isTablet && (\n \n )}\n {(isTablet && mobileLeaderBoardOpen) || (\n \n {host && leaderboardData.hostModeFlag ?\n (

Thank you for playing the Quiz!

)\n :\n (

\n Good going!
\n {leaderboardData?.playerStats?.length > 1 ? getRank() : `Your score is ${getScore()}`}\n

)\n }\n \n {quizType == \"Ready Made\" ? \"KEEP QUIZZING\" : (leaderboardData?.hostModeFlag || leaderboardData?.playerStats?.length > 1) ? \"BACK TO WAITING ROOM\" : \"PLAY ANOTHER ROUND\"}\n \n {!continueQuizzing&&

Please wait for host to start a new game

}\n
\n
window.open(\"https://form.typeform.com/to/eu1qQNpz\")}>\n \n

FEEDBACK

\n
\n
\n \n

BACK TO HOME

\n
\n {host &&
\n \n

QUIZ SUMMARY

\n
}\n \n {/* {host && (leaderboardData?.playerStats?.length > 1) && \n
\n \n

DOWNLOAD SCORE

\n
\n
} */}\n
\n
\n

\n SHARE YOUR SCORE\n

\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n )}\n\n {isTablet && mobileLeaderBoardOpen &&\n
\n \n
\n }\n\n
\n )}\n {socket && (isTablet || (\n \n ))}\n \n );\n}\n\nexport default PodiumComponent;\n","import { Tooltip } from '@mui/material'\nimport React from 'react'\nimport { FaCrown, FaLock } from 'react-icons/fa'\nimport \"./QuizTile.scss\"\n\nconst QuizTile = ({id, label, backgroundImage, selectedCategories, tooltipText, handleOnClick, isLocked=false, isPremium=false }) => {\n return (\n
\n \n \n {/* {isLocked && } */}\n {isPremium ? : isLocked && }\n \n
\n \n \n \n )\n}\n\nexport default QuizTile","import { Button } from '@mui/material'\nimport React from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport CustomModalComponent from '../customModalComponent/CustomModalComponent'\n\n\n\nconst PricingPromptComponent = ({open, handleClose}) => {\n const navigate = useNavigate()\n return (\n \n
\n

Hi There!

\n

\n Please send an email to \" support@walnuts.co.in \" to purchase our premium content\n

\n
\n {/* navigate('/pricing')}\n >\n Buy\n */}\n
\n
\n
\n )\n}\n\nexport default PricingPromptComponent","import { useTheme } from \"@mui/material/styles\";\nimport { Grid, useMediaQuery } from \"@mui/material\"\nimport { Box } from \"@mui/system\"\nimport axios from \"axios\"\nimport React, { useContext, useEffect, useState } from \"react\"\nimport { BEURL, S3URL } from \"../../api/BaseUrl\"\nimport apiEndpoints from \"../../api/EndPoints\"\nimport Context from \"../../context/Context\"\nimport QuizTile from \"../../shared/quizTile/QuizTile\";\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\"\nimport PricingPromptComponent from \"../../shared/pricingPromptComponent/PricingPromptComponent\";\n\nconst DisplayQuizzesComponent = ({ quiztype, selectedCategories, setSelectedCategories, searchTermTofilter, categoriesToFilter }) => {\n const [filteredReadymadeQuizzes, setFilteredReadymadeQuizzes] = useState([])\n const [allowedIds, setAllowedIds] = useState([])\n const [allowedCategories, setAllowedCategories] = useState([])\n const [lockedCategories, setLockedCategories] = useState([])\n const [allCategories, setAllCategories] = useState([])\n const [openLoginPrompt, setOpenLoginPrompt] = useState(false)\n const [openPricingPrompt, setOpenPremiumPrompt] = useState(false)\n const { isLoggedIn, setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag, loadingDisplayFlag } = useContext(Context)\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\"));\n const disabledTooltipText = isLoggedIn ? \"Purchase our premium pack to play more than 5000 quizzes with QShala!\" : \"Please sign up/log in to access more quizzes\"\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n useEffect(() => {\n setLoadingDisplayFlag(true)\n let endpoint = quiztype == \"readymade\" ? apiEndpoints.readymade : apiEndpoints.categories;\n let [all,allowed] = quiztype == \"readymade\" ? [\"allQuizzes\", \"allowedQuizzes\"] : [\"allCategories\", \"allowedCategories\"];\n axios\n .post(BEURL + endpoint,\n JSON.stringify({\n ageGroup: sessionStorage.getItem(\"ageGroup\")\n }))\n .then((res) => {\n setAllCategories(res.data[all])\n setAllowedIds(new Set(res.data[allowed])) //convert array to set\n })\n .catch((error) => {\n setAlert(\"error\", String(error.message))\n })\n }, [])\n\n useEffect(() => {\n if (allCategories.length && allowedIds.size ) { // Stop loading display when categories are fetched\n let id_attr = quiztype == \"readymade\" ? \"quizId\" : \"categoryId\";\n let allowed = []\n let locked = [] \n let categories = []\n //If readymade type use filteredReadymadeQuizzes to get locked and allowed lists\n if (quiztype == \"readymade\" && (filteredReadymadeQuizzes.length || searchTermTofilter.length || categoriesToFilter.length) ){\n // readymadetype and user has filtered or searched\n categories = filteredReadymadeQuizzes\n }else\n categories = allCategories\n\n categories.forEach((item) => {\n if (allowedIds.has(item[id_attr])){\n allowed.push(item)\n }else{\n locked.push(item)\n }\n })\n setAllowedCategories(allowed)\n setLockedCategories(locked)\n setLoadingDisplayFlag(false)\n }\n }, [allCategories, allowedIds, filteredReadymadeQuizzes])\n\n const handleCategorySelection = (id) => {\n let temp = [...selectedCategories];\n if (selectedCategories.includes(id)) {\n let index = temp.indexOf(id);\n temp.splice(index, 1);\n } else {\n temp.push(id);\n }\n setSelectedCategories([...new Set(temp)]);\n }\n\n const handleReadyMadeSelection = (id) => {\n setSelectedCategories([id]);\n }\n\n useEffect(() => {\n handleReadymadeQuizFilter()\n },[allCategories, searchTermTofilter, categoriesToFilter])\n\n const handleLockedOnClick = () => isLoggedIn ? setOpenPremiumPrompt(true) : setOpenLoginPrompt(true)\n const handleCloseLoginPrompt = () => setOpenLoginPrompt(false)\n const handleClosePricingPrompt = () => setOpenPremiumPrompt(false)\n\n const handleReadymadeQuizFilter = () => { // Filter readymade quizzes based on search term and categories\n if(quiztype==\"readymade\"){\n setSelectedCategories([]); //Clear all selected quizzes before filtering\n let tempReadymadeQuizzes;\n \n //filter for category\n if(categoriesToFilter.length){\n tempReadymadeQuizzes = allCategories.filter((quiz)=>{ //Filter quizzes that has\n return JSON.parse(quiz.categoryIdList).some((categoryId) => { // any categoryid\n return categoriesToFilter.some((cat) => { // in the filtered categories\n return cat.categoryId == categoryId\n }); \n })\n })\n }\n else {\n tempReadymadeQuizzes = Object.create(allCategories)\n }\n \n //filter by search term\n if(searchTermTofilter){\n tempReadymadeQuizzes = Object.create(\n tempReadymadeQuizzes.filter((quiz) => { // filter if search term is in quiz name or description\n return quiz.quizName.toLowerCase().includes(searchTermTofilter.toLowerCase()) ||\n quiz.quizDescription.toLowerCase().includes(searchTermTofilter.toLowerCase())\n })\n )\n setFilteredReadymadeQuizzes(tempReadymadeQuizzes)\n }\n else{\n setFilteredReadymadeQuizzes(tempReadymadeQuizzes)\n }\n }\n }\n\n return (\n <>\n \n \n \n {\n quiztype == \"readymade\" ? ( //Ready Made\n (allowedCategories.length || lockedCategories.length)? \n \n {allowedCategories?.map((category) => (\n \n handleReadyMadeSelection(category.quizId)}\n />\n \n ))}\n {lockedCategories?.map((category) => (\n \n \n \n ))}\n \n : !loadingDisplayFlag &&
No quizzes. We will upload soon.
\n ) : ( //Interest Based\n \n {allowedCategories?.map((category) => (\n \n handleCategorySelection(category.categoryId)}\n />\n \n ))}\n {lockedCategories?.map((category) => (\n \n \n \n ))}\n \n )\n }\n
\n \n )\n}\n\nexport default DisplayQuizzesComponent;","import \"./SearchFilterComponent.scss\"\nimport React, { useContext, useEffect, useState } from 'react'\nimport { Autocomplete, Chip, Grid, Paper, selectClasses, TextField } from \"@mui/material\"\nimport { makeStyles } from \"@mui/styles\";\nimport InputComponent from \"../../../shared/inputComponent/InputComponent\";\nimport { BEURL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport Context from \"../../../context/Context\";\nimport axios from \"axios\";\n\nconst useStyles = makeStyles((theme) => ({\n inputRoot: {\n color: \"white\",\n fontFamily: \"CaustenM\",\n fontSize: \"1.375rem\",\n \n \"& .MuiChip-root\": {\n fontFamily: \"CaustenR\",\n color: \"#FFF\",\n backgroundColor: \"#75B543\",\n height: \"1.2rem\",\n \"& .MuiChip-label\": {\n paddingLeft: \"8px\",\n }\n },\n \"& .MuiSvgIcon-root\": {\n color: \"#FFCBD1\",\n fontSize: \"15px\",\n \"&:hover\": {\n color: \"#FDB913\"\n }\n },\n \"& .MuiAutocomplete-input\": { // input field size\n width: \"clamp(8rem, 12rem, 16rem) !important\",\n height: \"0.65rem\",\n // \"@media only screen and (max-width: 1200px)\": {\n // width: \"15rem !important\",\n // },\n },\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderRadius: \"10px\",\n border: \"1px solid #FFF\",\n },\n \"&:hover .MuiOutlinedInput-notchedOutline\": {\n borderRadius: \"10px\",\n border: \"1px solid #FFF\",\n },\n \"&.Mui-focused .MuiOutlinedInput-notchedOutline\": {\n borderRadius: \"10px\",\n border: \"1px solid #FFF\",\n }\n }\n }));\n\nconst SearchFilterComponent = ({searchTerm, setSearchTerm, filteredCategories, setFilteredCategories}) => {\n const classes = useStyles();\n const [dbCategories, setDbCategories] = useState([])\n \n const { setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag } = useContext(Context)\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n useEffect(() => {\n setLoadingDisplayFlag(true)\n axios\n .post(BEURL + apiEndpoints.categories)\n .then((res) => {\n // console.log(res.data);\n setDbCategories(res.data.allCategories) \n })\n .catch((error) => {\n setAlert(\"error\", String(error.message))\n })\n }, [])\n\n return(\n
\n
\n \n \n
\n \n setSearchTerm(e.target.value)}\n />\n
\n
\n \n
\n \n option.categoryName}\n autoComplete\n multiple\n limitTags={2}\n value={filteredCategories}\n onChange={(e, newValue) => {\n setFilteredCategories(newValue)\n }}\n PaperComponent={({ children }) => (\n {children}\n )}\n renderTags={(tagValue, getTagProps) =>\n tagValue.map((option, index) => (\n \n ))\n }\n renderInput={(params) => (\n \n )}\n />\n
\n
\n
\n
\n
\n )\n}\n\nexport default SearchFilterComponent;","import React, { useEffect, useState } from \"react\";\nimport CustomModalComponent from \"../../../shared/customModalComponent/CustomModalComponent\";\nimport { Button, Slider, Switch, TextField, Tooltip } from \"@mui/material\";\nimport \"./ScheduleQtestComponent.scss\";\nimport dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\nimport { capitalizeSentence } from \"../../../shared/constants\";\n\nconst ScheduleQtestComponent = ({\n modalOpen,\n setModalOpen,\n handleClick,\n showAdditionalFieldsInput=true,\n title=\"Schedule QTest\",\n btnText=\"Create QTEST\",\n initStartDate=null,\n initEndDate=null\n}) => {\n dayjs.extend(utc);\n const [startDate, setStartDate] = useState(initStartDate?dayjs(initStartDate):dayjs()); // default to current date and time\n const [endDate, setEndDate] = useState(initEndDate?dayjs(initEndDate).add(7, \"day\"):dayjs().add(7, \"day\")); // default to one week from start date\n const [fieldNames, setFieldNames] = useState([])\n const [disableCreateButton, setdisableCreateButton] = useState(true);\n const [endDateError, setEndDateError] = useState(\n \"Select Start and End Dates\"\n );\n const [showAnswer, setShowAnswer] = useState(true);\n const [showResult, setShowResult] = useState(true);\n\n const dateStyle = {\n fontFamily: \"CaustenR\",\n fontSize: \"1.2rem\",\n height: \"2.81rem\",\n color: \"#FFFFFF\",\n backgroundColor:\"#007FB3\",\n '@media screen and (max-width:900px)': {\n fontSize: '1rem',\n }, \n '@media screen and (max-width:600px)': {\n fontSize: '0.9rem',\n }, \n \"& .MuiSvgIcon-root\": { \n color: \"white\" \n },\n \"& .MuiButtonBase-root\": {\n marginRight: \"0px\"\n } \n }\n \n useEffect(() => {\n checkDates();\n }, [startDate, endDate]);\n\n const checkDates = () => {\n if (endDate.diff(startDate) <= 0) {\n // Check if end date is greater than start date and time\n setEndDateError(\"End Date must be greater than Start Date and Time.\");\n setdisableCreateButton(true);\n return false;\n } else if (endDate.diff(dayjs()) <= 0) {\n // Check if end date is greater than current date and time\n setEndDateError(\"End Date must be greater than Current Date and Time.\");\n setdisableCreateButton(true);\n return false;\n } else {\n setEndDateError(\"\");\n setdisableCreateButton(false);\n return true;\n }\n };\n\n const handleStartDateChange = (newDateTime) => {\n setStartDate(newDateTime);\n };\n\n const handleEndDateChange = (newDateTime) => {\n setEndDate(newDateTime);\n };\n\n const handleFieldNamesChange = (event) => {\n // Split the input string by commas and remove white spaces and replace with underscores in each element\n let fieldNamesArray = event.target.value.split(',').map((item) => {\n let curItem = capitalizeSentence(item.trim());\n // return curItem.replace(/\\s+/g, '_');\n return curItem\n }).filter((strItem)=>{\n if(strItem){\n return strItem\n }\n });\n // Remove duplicates\n let uniqueFieldNames = [...new Set(fieldNamesArray)];\n setFieldNames(uniqueFieldNames);\n };\n\n const handleBtnClick = () => {\n if (checkDates()) {\n setModalOpen(false)\n handleClick(startDate.utc().format(), endDate.utc().format(), showAnswer, showResult, fieldNames);\n }\n };\n\n return (\n setModalOpen(false)}\n bgColor=\"#0097D4\"\n >\n
\n

{title}

\n
\n \n \n (\n \n )}\n />\n \n \n \n (\n \n )}\n />\n \n
\n

{endDateError}

\n
\n
\n

Show Answer

\n setShowAnswer(e.target.checked)}\n sx={{\n \"&.MuiSwitch-root .MuiSwitch-switchBase\": {\n color: \"#FFCBD1\",\n },\n\n \"&.MuiSwitch-root .Mui-checked\": {\n color: \"#ECA904\",\n },\n }}\n />\n
\n
\n

Show Result

\n setShowResult(e.target.checked)}\n sx={{\n \"&.MuiSwitch-root .MuiSwitch-switchBase\": {\n color: \"#FFCBD1\",\n },\n\n \"&.MuiSwitch-root .Mui-checked\": {\n color: \"#ECA904\",\n },\n }}\n />\n
\n
\n {/* Host Control Additional Fields */}\n {showAdditionalFieldsInput && (
\n

\n Field Names (Comma Separated)\n

\n \n \n \n
)}\n\n {showAdditionalFieldsInput && (fieldNames.length?\n

\n Additionaly the fields {fieldNames.join(', ')} will be requested from the user at the start of the qtest.\n

:\n

\n Email and player name alone will be requested while attending the qtest.\n

)}\n \n \n \n \n {btnText}\n \n \n \n
\n \n );\n};\n\nexport default ScheduleQtestComponent;\n","import React, { useContext } from \"react\";\nimport { Divider, Tooltip } from '@mui/material';\nimport CustomModalComponent from \"../customModalComponent/CustomModalComponent\";\nimport { makeStyles } from '@mui/styles';\nimport Context from \"../../context/Context\";\n\nimport \"./ChoicePopupComponent.scss\";\nimport FillButtonComponent from \"../fillButtonComponent/FillButtonComponent\";\n\nconst ChoicePopupComponent = ({\n showPopup,\n handleClosePopup,\n popupTitle,\n popupDescription,\n handleChoiceOne,\n handleChoiceTwo,\n choiceOneText,\n choiceTwoText,\n choiceOneDescription,\n choiceTwoDescription,\n}) => {\n\n const {\n socket,\n isLoggedIn,\n } = useContext(Context);\n\n const useStyles = makeStyles((theme) => ({\n divider: {\n background: \"white\",\n flex:\"0.45\",\n height:\"0.5px\",\n },\n }));\n\n const classes = useStyles();\n\n return (\n
\n \n
\n {popupTitle &&

{popupTitle}

}\n {popupDescription &&

{popupDescription}

}\n\n {choiceOneDescription &&

{choiceOneDescription}

}\n {choiceOneText &&\n
\n \n
}\n {choiceTwoText &&\n ((socket == null) && ( // Don't display QTest if user comesback to change quiz in readymade\n <>\n
\n \n

OR

\n \n
\n {choiceTwoDescription &&

{choiceTwoDescription}

}\n
\n \n \n \n \n \n
\n \n ))\n }\n
\n
\n
\n );\n};\n\nexport default ChoicePopupComponent;\n","import React, { useContext, useState } from \"react\";\nimport CustomModalComponent from \"../customModalComponent/CustomModalComponent\";\nimport { Button, Switch } from \"@mui/material\";\nimport { makeStyles } from \"@mui/styles\";\nimport axios from \"axios\";\nimport { BEURL, WSURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport Context from \"../../context/Context\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nimport \"./PlayQuizModalComponent.scss\";\n\nconst useStyles = makeStyles({\n button: {\n padding: \"0.5rem 1.5rem\",\n fontFamily: \"CaustenB\",\n fontSize: \"1.2rem\",\n fontWeight: \"700\",\n color: \"white\",\n borderRadius: \"10px\",\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 1.2rem\",\n },\n \"@media only screen and (max-width: 600px)\": {\n fontSize: \"0.875rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenB\",\n padding: \"0.8rem 2rem\",\n },\n },\n\n disableButton: {\n padding: \"1rem 3.5rem\",\n border: \"1px solid grey\",\n fontFamily: \"CaustenR\",\n fontSize: \"1.2rem\",\n fontWeight: \"700\",\n color: \"grey\",\n borderRadius: \"10px\",\n \"&:hover\": {\n backgroundColor: \"#d3d3d3\",\n color: \"white\",\n borderColor: \"#d3d3d3\",\n },\n cursor: \"not-allowed\",\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontFamily: \"CaustenEB\",\n padding: \"0.8rem 1.2rem\",\n },\n \"@media only screen and (max-width: 600px)\": {\n fontSize: \"0.875rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenR\",\n padding: \"0.8rem 2rem\",\n },\n },\n});\n\nconst PlayQuizModalComponent = ({\n modalOpen,\n setModalOpen,\n readyMadeQuizFlag,\n selectedCategories,\n}) => {\n const [showAnswer, setShowAnswer] = useState(true);\n const [randomizeQuestion, setRandomizeQuestion] = useState(false);\n const [hostMode, setHostMode] = useState(false);\n\n const {\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n setHost,\n setRoomId,\n socket,\n setSocket,\n setQuizType,\n } = useContext(Context);\n\n const classes = useStyles();\n\n const navigate = useNavigate();\n const location = useLocation();\n\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n // Wait until websocket is open (readystate=1), before sending the message.\n const waitForConnection = (socket, message, interval) => {\n if (socket.readyState === 1) {\n socket.send(message);\n } else {\n setTimeout(() => {\n waitForConnection(socket, message, interval);\n }, interval * 2);\n }\n };\n\n const updateQuiz = (socket) => {\n let sQuizType = readyMadeQuizFlag ? \"Ready Made\" : \"Interest Based\";\n waitForConnection(\n socket,\n JSON.stringify({\n action: \"updateQuiz\",\n categories: selectedCategories,\n quizType: sQuizType,\n }),\n 1000\n );\n setQuizType(sQuizType);\n navigate(\"/waitingroom\" , { state: { backToPath: location.pathname } });\n };\n\n const handlePlayQuizClick = () => {\n setModalOpen(false);\n setLoadingDisplayFlag(true);\n if (socket == null) {\n axios\n .post(BEURL + apiEndpoints.createInvite, {\n quizId: selectedCategories[0],\n showAnswer,\n randomizeQuestion,\n hostMode,\n })\n .then((res) => {\n if (res.data.status === \"Success\") {\n setRoomId(res.data.roomId);\n const ws_socket = new WebSocket(\n `${WSURL}/ws/quiz/${res.data.roomId}/`,\n );\n setHost(true);\n sessionStorage.setItem(\"isHost\", true);\n setSocket(ws_socket);\n updateQuiz(ws_socket);\n } else if (res.data.status === \"Error\") {\n setAlert(\"info\", res.data.errorMessage);\n } else {\n setAlert(\"error\", \"Something went wrong. Kindly try again later.\");\n }\n })\n .catch((error) => {\n setAlert(\"error\", error.response.data);\n })\n .finally(() => setLoadingDisplayFlag(false));\n } else {\n setLoadingDisplayFlag(false);\n updateQuiz(socket);\n }\n };\n\n return (\n setModalOpen(false)}\n bgColor=\"#0097D4\">\n
\n

Host Control

\n
\n {/*
\n

Show Answers

\n setShowAnswer(e.target.checked)}\n sx={{\n \"&.MuiSwitch-root .MuiSwitch-switchBase\": {\n color: \"#FFCBD1\",\n },\n\n \"&.MuiSwitch-root .Mui-checked\": {\n color: \"#ECA904\",\n },\n }}\n />\n
*/}\n
\n

Randomize Questions

\n setRandomizeQuestion(e.target.checked)}\n sx={{\n \"&.MuiSwitch-root .MuiSwitch-switchBase\": {\n color: \"#FFCBD1\",\n },\n \"&.MuiSwitch-root .Mui-checked\": {\n color: \"#FDB913\",\n },\n }}\n />\n
\n
\n

Host Mode

\n setHostMode(e.target.checked)}\n sx={{\n \"&.MuiSwitch-root .MuiSwitch-switchBase\": {\n color: \"#FFCBD1\",\n },\n \"&.MuiSwitch-root .Mui-checked\": {\n color: \"#FDB913\",\n },\n }}\n />\n
\n
\n \n Join Quiz\n \n
\n \n );\n};\n\nexport default PlayQuizModalComponent;\n","import React, { useContext, useEffect, useState } from \"react\";\nimport \"./quizSelectionComponent.scss\";\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\";\nimport NavMenuComponent from \"../../shared/navMenuComponent/NavMenuComponent\";\nimport TitleComponent from \"../../shared/titleComponent/TitleComponent\";\nimport DisplayQuizzesComponent from \"./DisplayQuizzesComponent\";\nimport { useNavigate } from \"react-router-dom\";\nimport Tooltip from '@mui/material/Tooltip';\nimport Context from \"../../context/Context\";\nimport ExitWarning from \"../../shared/exitWarning/ExitWarning\";\nimport SearchFilterComponent from \"./searchFilterComponent/SearchFilterComponent\";\nimport axios from \"axios\";\nimport { BEURL, WSURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport ScheduleQtestComponent from \"./scheduleQtestComponent/ScheduleQtestComponent\";\nimport ChoicePopupComponent from \"../../shared/choicePopupComponent/ChoicePopupComponent\";\nimport PlayQuizModalComponent from \"../../shared/playQuizModalComponent/PlayQuizModalComponent\";\nimport { makeStyles } from '@mui/styles';\n\nconst useStyles = makeStyles((theme) => ({\n inputRoot: {\n marginBottom: \"1rem\",\n \"@media only screen and (max-width: 900px)\": {\n marginBottom: \"0rem\",\n },\n }\n}));\n\nconst QuizSelectionComponent = () => {\n const [readyMade, setReadyMade] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [filteredCategories, setFilteredCategories] = useState([]);\n const [playQuizModalOpen, setPlayQuizModalOpen] = useState(false);\n const [interestBased, setInterestBased] = useState(false);\n const [buttonEnableFlag, setButtonEnableFlag] = useState(false);\n const [selectedCategories, setSelectedCategories] = useState([]);\n const navigate = useNavigate();\n const {\n socket,\n setHost,\n setUserName,\n setRoomId,\n setSocket,\n isLoggedIn,\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n } = useContext(Context);\n const [exitModalOpen, setExitModalOpen] = useState(false);\n const [scheduleQtestModalOpen, setScheduleQtestModalOpen] = useState(false);\n const [showPlayQuizPopup, setShowPlayQuizPopup] = useState(false);\n\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n const classes = useStyles()\n\n // Handle host if refreshed in this page. Set host to true if sessionId and isHost exists in \n useEffect(() => {\n if(sessionStorage.getItem(\"sessionId\") && sessionStorage.getItem(\"isHost\") && sessionStorage.getItem(\"name\")){\n setHost(true)\n setUserName(sessionStorage.getItem(\"name\"))\n if(localStorage.getItem('isLoggedIn')===\"false\"){ // Set new session id for players who have non logged in.\n sessionStorage.setItem(\"sessionId\", Math.random().toString(36).slice(-10))\n }\n }\n }, [])\n \n\n const handleBackArrowClick = () => {\n if (interestBased || readyMade) {\n setReadyMade(false);\n setInterestBased(false);\n setSelectedCategories([]);\n } else {\n setExitModalOpen(true);\n }\n };\n const handleReadyMadeClick = () => {\n setReadyMade(true);\n setInterestBased(false);\n setSelectedCategories([]);\n };\n const handleInterestBasedClick = () => {\n setReadyMade(false);\n setInterestBased(true);\n setSelectedCategories([]);\n };\n\n useEffect(() => {\n if (readyMade) {\n if (selectedCategories.length == 1) {\n setShowPlayQuizPopup(true);\n } else {\n setShowPlayQuizPopup(false);\n }\n }\n if (interestBased) {\n if (selectedCategories.length > 0) {\n setButtonEnableFlag(false);\n } else {\n setButtonEnableFlag(true);\n }\n }\n\n }, [selectedCategories]);\n\n const handlePlayQtestClick = () => {\n setScheduleQtestModalOpen(true);\n }\n const handleClosePlayQuizPopup = () => {\n setSelectedCategories([])\n setShowPlayQuizPopup(false);\n }\n\n const handleQtestCreate = (startDate, endDate, showAnswer, showResult, additionalFields) => {\n let qtestType = readyMade ? \"RM\" : \"IB\";\n //Private quiz id is uuid so length is 36\n // if (selectedCategories[0].toString().length > 30) qtestType = \"PV\";\n setLoadingDisplayFlag(true);\n const url = BEURL + apiEndpoints.createQtest;\n const data = {\n qtestType: qtestType,\n categories: selectedCategories,\n showAnswer: showAnswer,\n showResult: showResult,\n startDate: startDate,\n endDate: endDate,\n additionalFields: additionalFields,\n };\n axios\n .post(url, data)\n .then((res) => {\n if(res.data.status==\"Success\"){\n setAlert(\"success\", \"QTest created successfully\");\n navigate(\"/shareqtest/\" + res.data.qtestId);\n }\n else if(res.data.status==\"Error\"){\n setAlert(\"info\", res.data.errorMessage);\n }\n else{\n setAlert(\"error\", \"Something went wrong. Kindly try again later.\");\n }\n })\n .catch((error) => {\n setAlert(\"error\", error.response.data);\n })\n .finally(()=>setLoadingDisplayFlag(false));\n }\n\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true);\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false);\n }\n }\n };\n\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return (e.returnValue =\n \"Data will be lost if you leave the page, are you sure?\");\n };\n\n const [finishStatus, setfinishStatus] = useState(false);\n\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener(\"popstate\", onBackButtonEvent);\n window.addEventListener(\"beforeunload\", onReloadButtonEvent);\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonEvent);\n window.removeEventListener(\"beforeunload\", onReloadButtonEvent);\n };\n }, []);\n\n return (\n
\n {readyMade || interestBased || }\n {readyMade || interestBased || (\n \n )}\n
\n \n {readyMade || interestBased || (\n
\n
\n \n
\n
\n

\n Choose from a host of ready-made quizzes on different topics\n to kickstart the quizzing fever\n

\n
\n
\n )}\n {interestBased && (\n \n Ready-Made\n
\n )}\n {readyMade && (\n <>\n
\n \n \n
\n \n
\n
\n \n )}\n
\n \n {readyMade || interestBased || (\n
\n
\n \n
\n
\n

\n Select one or more topics from a bank of categories to create\n a unique quiz that caters to your interests\n

\n
\n
\n )}\n {readyMade && (\n \n Interest-Based\n \n )}\n {interestBased && (\n <>\n
\n \n
\n \n
\n
\n
\n setPlayQuizModalOpen(true)}\n />\n {(socket == null) && ( // Don't display QTest if user comesback to change quiz in readymade\n \n \n {setScheduleQtestModalOpen(true)}}\n />\n \n \n )}\n
\n \n )}\n \n \n \n \n \n {setPlayQuizModalOpen(true)}}\n handleChoiceTwo={handlePlayQtestClick}\n handleClosePopup={handleClosePlayQuizPopup}\n />\n \n );\n};\n\nexport default QuizSelectionComponent;\n","import \"./ProfileComponent.scss\"\nimport React, { useContext, useEffect, useState } from 'react'\nimport TitleComponent from '../../shared/titleComponent/TitleComponent';\nimport { useNavigate } from \"react-router-dom\";\nimport { Button, Grid } from \"@mui/material\";\nimport CustomModalComponent from \"../../shared/customModalComponent/CustomModalComponent\";\nimport Context from \"../../context/Context\";\nimport { BEURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport axios from \"axios\";\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\";\n\nconst ProfileComponent = () => {\n const navigate = useNavigate()\n const {isLoggedIn, setLoadingDisplayFlag, setNotificationType, setNotificationMessage, setNotificationDisplayFlag} = useContext(Context)\n const [firstName, setFirstName] = useState(\"\")\n const [lastName, setLastName] = useState(\"\")\n const [city, setCity] = useState(\"\")\n const [phoneNumber, setPhoneNumber] = useState(\"\")\n const [intro, setIntro] = useState(\"\")\n const [userName, setUserName] = useState(\"\")\n const [hostedcount, setHostedcount] = useState(\"\")\n const [wonCount, setWonCount] = useState(\"\")\n const [playedCount, setPlayedCount] = useState(\"\")\n const [imageURL, setImageURL] = useState(\"\")\n const [role, setRole] = useState(\"\")\n const [openCancelConfirmationModal, setOpenCancelConfirmationModal] = useState(false)\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n useEffect(() => {\n if (!isLoggedIn) // do not proceed if not logged in\n return\n const url_profile = BEURL + apiEndpoints.getProfile\n const url_stats = BEURL + apiEndpoints.getUserStats\n setLoadingDisplayFlag(true)\n axios.get(url_profile).then((res) => { \n if (!(!!res.data['username'])) { // if social login users haven't entered a username yet \n setAlert(\"info\", \"Kindly set up your profile to continue. Username and Age mandatory!\");\n navigate(\"/editprofile\") \n }\n setFirstName(res.data['given_name'])\n setLastName(res.data['family_name'])\n setCity(res.data['locale'])\n setPhoneNumber(res.data['phone_number'])\n setIntro(res.data['profile'])\n setUserName('@'+res.data['username']) \n setImageURL(res.data['picture'] || \"https://qshala-quiz-profile-images.s3.ap-south-1.amazonaws.com/no-image.jpg\") \n axios.get(url_stats).then((res) => {\n setHostedcount(res.data['quizzesHosted'])\n setWonCount(res.data['quizzesWon'])\n setPlayedCount(res.data['quizzesPlayed'])\n setRole(res.data['role'])\n setLoadingDisplayFlag(false)\n }).catch((err) => console.log(err)) \n }).catch((err) => console.log(err)) \n }, []) \n\n const handleCancelSubscription = () => {\n setOpenCancelConfirmationModal(false)\n setLoadingDisplayFlag(true)\n axios.get(BEURL + apiEndpoints.cancelSubscription).then((res) => {\n setAlert(\"info\", res.data)\n }).catch((err) => setAlert(\"error\", err.response.data)).finally(() => setLoadingDisplayFlag(false))\n }\n \n return ( \n
\n setOpenCancelConfirmationModal(false)}>\n
\n

Are you sure you want to cancel your QShala Premium Subscription?

\n
\n \n Yes\n \n setOpenCancelConfirmationModal(false)}\n >\n No\n \n
\n
\n
\n {isLoggedIn ?\n <> \n navigate(\"/\")}\n align=\"left\" style={{marginRight: \"auto\", marginLeft:'14%'}}\n isIcon={true}\n onIconClick={() => navigate(\"/editprofile\")}\n /> \n
\n \"\" \n
\n
\n

{firstName} {lastName}

\n

{userName}

\n
\n
\n

{city} {phoneNumber? ` | Ph: ${phoneNumber}` : \"\"}

\n

{intro}

\n
\n {/* Show Cancel button only for premium users */}\n {role === \"Premium\" && } \n
\n
\n
\n \n \n
\n

Number of quizzes played

\n

{playedCount}

\n
\n
\n \n
\n

Number of quizzes hosted

\n

{hostedcount}

\n
\n
\n \n
\n

Number of quizzes won

\n

{wonCount}

\n
\n
\n {/* \n
\n

Overall points

\n

42

\n
\n
*/}\n
\n
\n ://else if not logged in prompt to login\n navigate('/')} />\n }\n
\n )\n}\nexport default ProfileComponent\n\n","import './RedirectComponent.scss'\nimport React, { useContext, useEffect, useState } from 'react'\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\nimport Context from '../../context/Context';\nimport Cookies from 'js-cookie';\nimport jwt from 'jsonwebtoken';\nimport axios from 'axios';\nimport { BEURL } from '../../api/BaseUrl';\nimport apiEndpoints from '../../api/EndPoints';\n\nconst RedirectComponent = () => {\n const { setLoadingDisplayFlag, isLoggedIn, setIsLoggedIn, setUserName} = useContext(Context);\n const navigate = useNavigate()\n let {action} = useParams()\n const [message, setMessage] = useState(\"...\")\n const [searchParams, setSearchParams] = useSearchParams()\n setLoadingDisplayFlag(true)\n\n const checkSignUp = () => {\n const url = BEURL + apiEndpoints.signUp\n axios.get(url)\n }\n\n useEffect(() => {\n if (action==\"logout\"){\n setMessage(\"Logging you out...\")\n const url = BEURL + apiEndpoints.signOut\n axios.get(url).then(()=>{\n setIsLoggedIn(false)\n localStorage.setItem('isLoggedIn', false)\n sessionStorage.removeItem(\"sessionId\")\n sessionStorage.removeItem(\"name\")\n sessionStorage.removeItem(\"email\")\n sessionStorage.removeItem(\"ageGroup\")\n sessionStorage.removeItem(\"avatar\")\n navigate('/')\n }).catch((err)=>{\n console.error(err.response?.data)\n }) \n }\n\n if(action==\"login\"){\n setMessage(\"Logging you in...\")\n let authorization_code = searchParams.get('code')\n if (authorization_code === null)\n return \n\n axios.get(\n BEURL + apiEndpoints.getToken,\n {\n params:{ code : authorization_code}\n }\n ).then(() => { \n setIsLoggedIn(true)\n localStorage.setItem('isLoggedIn', true)\n let qqIdToken = Cookies.get('qq_id_token') \n let decodedToken = jwt.decode(qqIdToken);\n setUserName(decodedToken['cognito:username']) \n sessionStorage.setItem('sessionId', decodedToken['sub']) \n navigate('/') \n }).catch((error) => {\n alert(String(error.message))\n navigate('/') \n })\n }\n\n return () => {\n setLoadingDisplayFlag(false)\n } \n }, []) \n\n //remove this when you implement own sign up page, add custom sign up redirect to optimize\n // useEffect(() => {\n // if (isLoggedIn)\n // checkSignUp() \n // }, [isLoggedIn]) \n \n return ( \n
\n

{message}

\n
\n )\n}\n\nexport default RedirectComponent","import \"./UserAuthComponent.scss\"\nimport React from 'react'\n\nconst UserAuthComponent = ({children}) => {\n \n return (\n
\n
\n \"QT\" \n
\n
\n {children}\n
\n
\n )\n}\nexport default UserAuthComponent","import \"./SignInComponent.scss\"\nimport {VscEye, VscEyeClosed} from \"react-icons/vsc\"\nimport {FcGoogle} from \"react-icons/fc\"\nimport React, { useContext, useState } from 'react'\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\"\nimport InputComponent from \"../../shared/inputComponent/InputComponent\"\nimport {BEURL} from \"../../api/BaseUrl\"\nimport apiEndpoints from \"../../api/EndPoints\"\nimport axios from \"axios\"\nimport { useNavigate } from \"react-router-dom\"\nimport Context from \"../../context/Context\"\nimport Cookies from 'js-cookie'\nimport jwt from 'jsonwebtoken'\nimport UserAuthComponent from \"../../shared/userAuthComponent/UserAuthComponent\"\nimport { generateRandom } from \"../../shared/constants\"\n\nconst SignInComponent = ({redirectFlag=false}) => {\n const [inputType, setInputType] = useState(\"password\")\n const [password, setPassword] = useState(\"\")\n const [email_usrnm, setEmail_usrnm] = useState(\"\")\n const { setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag, setIsLoggedIn, setUserName, setUserType } = useContext(Context)\n const navigate = useNavigate()\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n const handleGoogleClick = () => {\n window.location = `https://${process.env.REACT_APP_COGNITO_DOMAIN}/oauth2/authorize?identity_provider=Google&client_id=${process.env.REACT_APP_COGNITO_CLIENT_ID}&response_type=CODE&scope=${process.env.REACT_APP_COGNITO_SCOPE}&redirect_uri=${process.env.REACT_APP_COGNITO_REDIRECT}`\n }\n\n const handleFacebookClick = () => {\n window.location = `https://${process.env.REACT_APP_COGNITO_DOMAIN}/oauth2/authorize?identity_provider=Facebook&client_id=${process.env.REACT_APP_COGNITO_CLIENT_ID}&response_type=CODE&scope=${process.env.REACT_APP_COGNITO_SCOPE}&redirect_uri=${process.env.REACT_APP_COGNITO_REDIRECT}`\n }\n \n const handleClick = () => {\n if (email_usrnm.length < 1)\n return setAlert(\"error\", \"Enter a valid username/email\")\n if (password.length < 8)\n return setAlert(\"error\", \"Incorrect password\")\n const url = BEURL + apiEndpoints.signIn\n const data = {\n \"username\": email_usrnm.trim(),\n \"password\": password\n }\n setLoadingDisplayFlag(true)\n axios.post(\n url,\n data\n ).then((res) => {\n setIsLoggedIn(true)\n localStorage.setItem('isLoggedIn', true)\n let qqIdToken = Cookies.get('qq_id_token') \n let decodedToken = jwt.decode(qqIdToken);\n setUserName(decodedToken['cognito:username']) \n sessionStorage.setItem('sessionId', decodedToken['sub']) \n setUserType(res.data.userType) \n // Set basic details of the user while signing \n const avtr = res.data[\"picture\"] || `${process.env.REACT_APP_S3_PROFILE_IMAGE_URL}avatar${generateRandom(0,5)}.svg`;\n \n sessionStorage.setItem(\"name\", res.data[\"userName\"]);\n sessionStorage.setItem(\"email\", res.data[\"email\"]);\n sessionStorage.setItem(\"ageGroup\", res.data[\"ageGroup\"]);\n sessionStorage.setItem(\"avatar\", avtr);\n \n // Set Cookie with basic details\n Cookies.set(\"name\", res.data[\"userName\"])\n Cookies.set(\"email\", res.data[\"email\"])\n Cookies.set(\"ageGroup\", res.data[\"ageGroup\"])\n Cookies.set(\"avatar\", avtr)\n\n\n redirectFlag?navigate(-1):navigate(\"/\") \n }\n ).catch((error) => {\n if(error.response.status==302){\n navigate(`/confirmemail/${email_usrnm}`, {state:{ message: error.response.data}})\n }\n else{\n setAlert(\"error\", error.response.data)\n }\n }\n ).finally(() => setLoadingDisplayFlag(false))\n }\n\n const handleOnPasswordRevealClick = () => {\n setInputType((prevValue) => {\n if (prevValue === \"password\")\n return \"text\"\n else \n return \"password\"\n })\n }\n return (\n \n

Log In

\n

Get started on your Quest to Quriosity

\n
\n {/*

Or sign in using

*/}\n
\n \n

GOOGLE

\n
\n \n
\n \n

FACEBOOK

\n
\n
\n

OR

\n setEmail_usrnm(e.target.value)}\n />\n setPassword(e.target.value)}\n >\n {inputType===\"password\" ? \n :\n \n }\n

\n navigate('/forgotPassword')}>Forgot password?\n

\n
\n
\n \n
\n
\n

By Logging in you agree to our \n navigate('/termsandconditions')}>terms and condtions.\n

\n
\n
\n

Don't have an account? \n navigate('/signup')}>Sign up here\n

\n
\n \n
\n )\n}\nexport default SignInComponent","import \"./SignUpComponent.scss\"\nimport {VscEye, VscEyeClosed} from \"react-icons/vsc\"\nimport React, { useContext, useState } from 'react'\nimport Radio from '@mui/material/Radio'\nimport RadioGroup from '@mui/material/RadioGroup'\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\"\nimport InputComponent from \"../../shared/inputComponent/InputComponent\"\nimport {BEURL} from \"../../api/BaseUrl\"\nimport apiEndpoints from \"../../api/EndPoints\"\nimport axios from \"axios\"\nimport { useNavigate } from \"react-router-dom\"\nimport Context from \"../../context/Context\"\nimport UserAuthComponent from \"../../shared/userAuthComponent/UserAuthComponent\"\nimport { checkTypes, checkValidation } from \"../../utils/inputCheckValidation\"\nimport { TiTick } from \"react-icons/ti\";\nimport { FcGoogle } from \"react-icons/fc\"\n\nconst RadioBtn = ({value, label}) => (\n } \n label={label} />\n)\n\nconst SignUpComponent = () => {\n const [inputType, setInputType] = useState(\"password\")\n const [password, setPassword] = useState(\"\")\n const [usrnmChecked, setUsrnmChecked] = useState(false)\n const [email, setEmail] = useState(\"\")\n const [usrnm, setUsrnm] = useState(\"\")\n const [agegrp, setAgegrp] = useState(\"\")\n const {setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag} = useContext(Context)\n const navigate = useNavigate()\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n const handleClick = () => {\n var errorMessage = checkValidation([\n {value: usrnm, fieldName:\"Username\", checksFor: [checkTypes.NOTEMPTY, checkTypes.NOOFCHARS], charLength: 5, charLengthCheckType:\"GREATER\"},\n {value: email, fieldName:\"Email\", checksFor: [checkTypes.NOTEMPTY, checkTypes.EMAIL]},\n {value: password, fieldName:\"Password\", checksFor: [checkTypes.NOTEMPTY, checkTypes.NOOFCHARS], charLength: 8, charLengthCheckType:\"GREATER\"},\n {value: agegrp, fieldName:\"Age\", checksFor: [checkTypes.NOTEMPTY]}\n ])\n if(errorMessage){\n return setAlert(\"error\", errorMessage)\n }\n else{\n const url = BEURL + apiEndpoints.signUp\n const data = {\n \"username\": usrnm.trim(),\n \"email\": email.trim(),\n \"password\": password,\n \"age_group\": agegrp,\n }\n setLoadingDisplayFlag(true)\n axios.post(\n url,\n data\n ).then((res) => navigate(`/confirmemail/${usrnm}`, {state:{ message: res.data}})\n ).catch((error) => setAlert(\"error\", error.response.data)\n ).finally(() => setLoadingDisplayFlag(false))\n }\n }\n\n const handleUsernameChange = (e) => {\n if(usrnm.length>=5){\n const url = BEURL + apiEndpoints.checkUsername\n const data = {\n \"username\": e.target.value\n }\n setLoadingDisplayFlag(true)\n axios.post(\n url,\n data\n ).then((res) => {\n setAlert(\"info\", res.data)\n setUsrnm(e.target.value)\n setUsrnmChecked(true)\n }\n ).catch((error) => {\n setAlert(\"error\", error.response.data)\n setUsrnm(\"\")\n setUsrnmChecked(false)\n }\n ).finally(() => setLoadingDisplayFlag(false))\n }\n else{\n setUsrnmChecked(false)\n }\n }\n\n const handleOnPasswordRevealClick = () => {\n setInputType((prevValue) => {\n if (prevValue === \"password\")\n return \"text\"\n else \n return \"password\"\n })\n }\n\n const handleGoogleClick = () => {\n window.location = `https://${process.env.REACT_APP_COGNITO_DOMAIN}/oauth2/authorize?identity_provider=Google&client_id=${process.env.REACT_APP_COGNITO_CLIENT_ID}&response_type=CODE&scope=${process.env.REACT_APP_COGNITO_SCOPE}&redirect_uri=${process.env.REACT_APP_COGNITO_REDIRECT}`\n }\n\n const handleFacebookClick = () => {\n window.location = `https://${process.env.REACT_APP_COGNITO_DOMAIN}/oauth2/authorize?identity_provider=Facebook&client_id=${process.env.REACT_APP_COGNITO_CLIENT_ID}&response_type=CODE&scope=${process.env.REACT_APP_COGNITO_SCOPE}&redirect_uri=${process.env.REACT_APP_COGNITO_REDIRECT}`\n }\n\n return (\n \n

Sign Up

\n

Get started on your Quest to Quriosity

\n
\n {/*

Or sign in using

*/}\n
\n \n

GOOGLE

\n
\n \n
\n \n

FACEBOOK

\n
\n
\n

OR

\n setUsrnm(e.target.value)} OnBlur={handleUsernameChange}\n >\n {usrnmChecked && \n \n }\n \n setEmail(e.target.value)}\n />\n setPassword(e.target.value)}\n >\n {inputType===\"password\" ? \n :\n \n }\n \n
\n \n setAgegrp(e.target.value)}\n row\n sx = {{rowGap: \"0.5rem\", columnGap: \"%\"}}\n > \n \n \n \n \n
\n
\n \n
\n
\n

By Signing up you agree to our \n navigate('/termsandconditions')}>terms and condtions.\n

\n
\n
\n

Already have an account? \n navigate('/signin')}>Log in here\n

\n
\n
\n )\n}\nexport default SignUpComponent","import \"./ForgotPasswordComponent.scss\"\nimport React, { useContext, useState } from 'react'\nimport FillButtonComponent from '../../shared/fillButtonComponent/FillButtonComponent'\nimport InputComponent from '../../shared/inputComponent/InputComponent'\nimport UserAuthComponent from '../../shared/userAuthComponent/UserAuthComponent'\nimport { VscEye, VscEyeClosed } from \"react-icons/vsc\"\nimport { BEURL } from \"../../api/BaseUrl\"\nimport apiEndpoints from \"../../api/EndPoints\"\nimport axios from \"axios\"\nimport { useNavigate } from \"react-router-dom\"\nimport Context from \"../../context/Context\"\n\nexport const ForgotPasswordComponent = () => {\n const [email_usrnm, setEmail_usrnm] = useState(\"\")\n const [code, setCode] = useState(\"\")\n const [password, setPassword] = useState(\"\")\n const [re_password, setRe_password] = useState(\"\")\n const [reset_emailId, setReset_emailId] = useState(false)\n const [inputType_1, setInputType_1] = useState(\"password\")\n const [inputType_2, setInputType_2] = useState(\"password\")\n \n const {setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag} = useContext(Context)\n\n const navigate = useNavigate()\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n } \n\n const handleOnPasswordRevealClick = (pwd_id) => {\n pwd_id === 1 ?\n setInputType_1((prevValue) => {\n if (prevValue === \"password\")\n return \"text\"\n else \n return \"password\"\n }) :\n setInputType_2((prevValue) => {\n if (prevValue === \"password\")\n return \"text\"\n else \n return \"password\"\n })\n }\n\n const handleResetPassword = () => {\n if ( !(email_usrnm.length > 0) ){ //min length is 0\n return setAlert(\"error\", \"Please enter a valid email/username\")\n }\n setLoadingDisplayFlag(true)\n const url = BEURL + apiEndpoints.forgotPassword\n const data = {\n \"username\":email_usrnm\n }\n axios.post(\n url, data\n ).then((response) => setReset_emailId(response.data)\n ).catch((error) => setAlert(\"error\",error.response.data)\n ).finally(() => setLoadingDisplayFlag(false))\n }\n \n const handleChangePassword = () => { \n if(code.length !== 6){\n return setAlert(\"error\", \"Invalid Code\")\n } \n if (password === re_password){\n if(password.length < 8){\n return setAlert(\"error\", \"Password must be of atleast 8 characters\")\n } \n setLoadingDisplayFlag(true)\n const url = BEURL + apiEndpoints.confirmForgotPassword\n const data = {\n \"username\":email_usrnm,\n \"password\":password,\n \"confirmation_code\":code\n }\n axios.post(\n url, data\n ).then(() => {\n setAlert(\"success\",\"Your password has been reset.\") \n setTimeout(() => {\n navigate(\"/\")\n }, 1000); \n } \n ).catch((error) => setAlert(\"error\",error.response.data)\n ).finally(() => setLoadingDisplayFlag(false))\n }else{\n setAlert(\"error\",\"Passwords do not match!\")\n }\n }\n\n return (\n \n {reset_emailId ?\n <>\n

Reset your password

\n

{`We have sent a password reset code by email to ${reset_emailId}. Enter it below to reset your password.`}

\n setCode(e.target.value)}\n />\n setPassword(e.target.value)}\n >\n {inputType_1===\"password\" ? \n handleOnPasswordRevealClick(1)}/> :\n handleOnPasswordRevealClick(1)}/>\n }\n \n setRe_password(e.target.value)}\n >\n {inputType_2===\"password\" ? \n handleOnPasswordRevealClick(2)}/> :\n handleOnPasswordRevealClick(2)}/>\n }\n \n
\n \n
\n \n :\n <>\n

Forgot your password?

\n

Enter your Username below and we will send a message to reset your password

\n setEmail_usrnm(e.target.value)}\n /> \n
\n \n
\n \n }\n
\n )\n}\n","import \"./ConfirmEmailComponent.scss\"\nimport React, { useContext, useEffect, useState } from 'react'\nimport FillButtonComponent from '../../shared/fillButtonComponent/FillButtonComponent'\nimport InputComponent from '../../shared/inputComponent/InputComponent'\nimport UserAuthComponent from '../../shared/userAuthComponent/UserAuthComponent'\nimport { BEURL } from \"../../api/BaseUrl\"\nimport apiEndpoints from \"../../api/EndPoints\"\nimport axios from \"axios\"\nimport { useLocation, useNavigate, useParams } from \"react-router-dom\"\nimport Context from \"../../context/Context\"\nimport { checkTypes, checkValidation } from \"../../utils/inputCheckValidation\"\n\nexport const ConfirmEmailComponent = () => {\n const [code, setCode] = useState(\"\")\n const [usrnm, setUsrnm] = useState(\"\")\n const [cnfFlag, setCnfFlag] = useState(false)\n const {setNotificationType, setNotificationMessage, setNotificationDisplayFlag, setLoadingDisplayFlag} = useContext(Context)\n const navigate = useNavigate()\n\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n const { username } = useParams();\n const { state } = useLocation();\n \n useEffect(()=>{\n if(username){\n setUsrnm(username)\n }\n else{\n navigate('/home')\n }\n },[])\n\n useEffect(()=>{\n if(state){\n const { message } = state;\n setAlert(\"info\",message)\n window.history.replaceState({}, document.title) // Clears state and prevents state caching\n }\n },[])\n\n const handleResendCode = () => { \n setLoadingDisplayFlag(true)\n const url = BEURL + apiEndpoints.resendConfirmationCode\n const data = {\n \"username\":usrnm\n }\n axios.post(\n url, data\n ).then((res) => setAlert(\"success\", res.data) \n ).catch((error) => setAlert(\"error\",error.response.data)\n ).finally(() => setLoadingDisplayFlag(false))\n }\n\n const handleConfirmEmail = () => {\n var errorMessage = checkValidation([\n {value: code, fieldName:\"Code\", checksFor: [checkTypes.NOTEMPTY, checkTypes.NOOFCHARS], charLength: 6, charLengthCheckType: \"EQUAL\"},\n ])\n if(errorMessage){\n setAlert(\"error\",errorMessage)\n }\n else{\n setLoadingDisplayFlag(true)\n const url = BEURL + apiEndpoints.confirmSignUp\n const data = {\n \"username\":usrnm,\n \"confirmation_code\":code\n }\n axios.post(\n url, data\n ).then((res) => {\n if(res.status==200){\n setCnfFlag(true)\n setTimeout(() => {\n navigate(\"/signin\")\n }, 5000);\n }\n else{\n setAlert(\"error\",\"Something went wrong. Kindly try again later.\")\n } \n } \n ).catch((error) => setAlert(\"error\",error.response.data)\n ).finally(() => setLoadingDisplayFlag(false))\n } \n }\n\n return (\n \n { cnfFlag?\n <>\n

Verification Successful

\n

Your email was verified successfully. You will be redirected to Sign In shortly.

\n :\n <>\n

Email Confirmation

\n

Enter the confirmation code sent to your email.

\n

Please check your spam folder and don't forget to mark us not spam

\n setCode(e.target.value)} >\n

\n Resend Code\n

\n
\n
\n \n
\n \n }\n \n
\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport \"./StaticComponent.scss\"\nimport apiEndpoints from '../../api/EndPoints'\nimport { BEURL } from \"../../api/BaseUrl\"\nimport axios from 'axios'\n\nexport const StaticComponent = () => {\n const [response, setResponse] = useState(\"
\")\n useEffect(() => {\n axios.get(BEURL+ apiEndpoints.termsAndConditions).then((response) => setResponse(response.data)).catch((err) => alert(err))\n }, [])\n \n return (\n
\n )\n}\n","const loadScript = (src) => {\n return new Promise((resolve) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = () => {\n resolve(true);\n };\n script.onerror = () => {\n resolve(false);\n };\n document.body.appendChild(script);\n });\n};\n\nexport default loadScript","export const FreeTierCopy = {\n title:\"Free\",\n price:\"₹0/month\",\n features:[\n \"Upto 10 members playing the quiz simultaneously\",\n \"25 Curated Quizzes\"\n ],\n buttonText:\"Start Quizzing\"\n}\n\nexport const PremiumTierCopy = {\n title:\"Premium\",\n price:\"₹999/month\",\n features:[\n \"Upto 100 members playing the quiz simultaneously\",\n \"300+ Curated Quizzes\",\n \"Unlimited data reports of quizzes played\",\n \"1 Admin Login\"\n ],\n buttonText:\"Get\"\n}\n\nexport const EnterpriseTierCopy = {\n title:\"Enterprise\",\n price:\"Get in touch\",\n features:[\n \"More than 100+ members playing the quiz simultaneously\",\n \"Customize Quizzes\",\n \"300+ Curated Quizzes\",\n \"Unlimited data reports of quizzes played\",\n \"Single Sign on\"\n ],\n buttonText:\"Contact Us\"\n}\n\nexport const PremiumModalCopy = {\n yearly:{\n price:\"₹10,000/year\",\n details:[\n \"Save over 15%\"\n ]\n },\n monthly:{\n price:\"₹999/month\",\n details:[\n \"Pay as you go\",\n \"Cancel Anytime!\" \n ]\n }\n}\n\nexport const dashboard_welcomebanner_description = `Get started on creating engaging quizzes which revolutionize the process of learning!`\nexport const reports_welcomebanner_description = \"Get started on generating reports to gather \\n valuable insights on your quizzes and courses.\"","import \"./PremiumModalComponent.scss\"\nimport { Button, FormControlLabel, Radio, RadioGroup } from '@mui/material'\nimport React, { useState } from 'react'\nimport { TiTick } from \"react-icons/ti\"\nimport { useNavigate } from 'react-router-dom'\nimport CustomModalComponent from '../../shared/customModalComponent/CustomModalComponent'\nimport { PremiumModalCopy } from \"../../copies\"\n\nconst RadioBtn = ({value, label}) => (\n } \n label={label} />\n)\n\nconst PremiumModalComponent = ({open, handleClose, handleOnClickBuy}) => {\n const [plan, setPlan] = useState(\"Premium_Yearly\")\n const handlePlanChange = (event) => {\n setPlan(event.target.value)\n }\n const navigate = useNavigate()\n return (\n \n
\n

Choose your plan

\n
\n \n \n {\n PremiumModalCopy.yearly.details.map((detail) => (\n

{detail}

\n ))\n }\n <> \n \n {\n PremiumModalCopy.monthly.details.map((detail) => (\n

{detail}

\n ))\n }\n \n
\n
\n handleOnClickBuy(plan)}\n >\n BUY\n \n
\n
\n
\n )\n}\n\nexport default PremiumModalComponent","import \"./PricingComponent.scss\"\n\nimport React, { useContext, useEffect, useState } from 'react'\nimport { TiTick } from \"react-icons/ti\"\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\"\nimport axios from \"axios\"\nimport Context from \"../../context/Context\"\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\"\nimport {BEURL, EnterpriseContactUsFormURL} from \"../../api/BaseUrl\"\nimport apiEndpoints from \"../../api/EndPoints\"\nimport loadScript from \"../../utils/loadScript\"\nimport { EnterpriseTierCopy, FreeTierCopy, PremiumTierCopy } from \"../../copies\"\nimport PremiumModalComponent from \"./PremiumModalComponent\"\nimport { useNavigate } from \"react-router-dom\"\n\n\nconst PricingTile = ({handleOnClick, copy}) => {\n return(\n
\n
\n

\n {copy.title}\n

\n

\n {copy.price}\n

\n {copy.features.map((feature) => (\n

\n {/* */}\n {feature}\n

\n ) )}\n
\n \n
\n )\n}\n\nconst PricingComponent = () => {\n const {isLoggedIn, setLoadingDisplayFlag, setNotificationType, setNotificationMessage, setNotificationDisplayFlag} = useContext(Context)\n const [openLoginPrompt, setOpenLoginPrompt] = useState(false)\n const [openPremiumModal, setOpenPremiumModal] = useState(false)\n const navigate = useNavigate()\n \n useEffect(() => {\n loadScript(\"https://checkout.razorpay.com/v1/checkout.js\");\n }); \n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n\n const getRazorpayOrderOptions = (name, email, phone_number, orderId, amount, receiptId) => ({\n \"key\": process.env.REACT_APP_RAZORPAY_API_ID, \n \"amount\": amount, \n \"currency\": \"INR\",\n \"name\": \"Qshala\",\n \"description\": \"Premium Plan - One Year\",\n \"order_id\": orderId, \n \"handler\": (response) => {\n axios.post(BEURL + apiEndpoints.confirmPayment, response).then(() => {\n setLoadingDisplayFlag(false) // flag 2\n setAlert(\"success\",\"Payment Confirmed, redirecting to Home Page\")\n setTimeout(() => {\n navigate('/')\n }, 5000); \n }).catch((error) => {\n setLoadingDisplayFlag(false) // flag 2\n setAlert(\"error\",error.response.data)\n })\n },\n \"modal\": {\n // Checkout modal closed by user\n \"ondismiss\": function(){\n setLoadingDisplayFlag(false) // flag 2\n }\n },\n \"prefill\": {\n \"name\": `${name}`,\n \"email\": `${email}`,\n \"contact\": `${phone_number}`\n },\n \"notes\": {\n \"name\": name,\n \"receipt_id\": receiptId\n }\n })\n\n const getRazorpaySubscriptionOptions = (name, email, phone_number, subscription_id ) => ({\n \"key\": process.env.REACT_APP_RAZORPAY_API_ID, \n \"subscription_id\": subscription_id,\n \"name\": \"Qshala\",\n \"description\": \"Premium Plan - Monthly\",\n \"handler\": (response) => {\n axios.post(BEURL + apiEndpoints.confirmPayment, response).then(() => {\n setLoadingDisplayFlag(false) // flag 2\n setAlert(\"success\",\"Payment Confirmed, redirecting to Home Page\")\n setTimeout(() => {\n navigate('/')\n }, 5000);\n }).catch((error) => {\n setLoadingDisplayFlag(false) // flag 2\n setAlert(\"error\",error.response.data)\n })\n },\n \"modal\": {\n // Checkout modal closed by user\n \"ondismiss\": function(){\n setLoadingDisplayFlag(false) // flag 2\n }\n },\n \"prefill\": {\n \"name\": `${name}`,\n \"email\": `${email}`,\n \"contact\": `${phone_number}`\n },\n \"notes\": {\n \"name\": name\n }\n })\n\n const handleOnClickBuy = async (plan) => { \n if (!isLoggedIn){\n return setOpenLoginPrompt(true)\n } \n // Yearly plan \n if(plan == \"Premium_Yearly\"){\n setLoadingDisplayFlag(true) // flag 1\n let profile = axios.get(BEURL + apiEndpoints.getProfile)\n let order = axios.post(BEURL + apiEndpoints.createOrder, {\"plan\":plan})\n Promise.all([profile, order]).then(([profile, order]) => {\n setLoadingDisplayFlag(false) // flag 1\n let name = profile.data['given_name']+\" \"+profile.data['family_name']\n let email = profile.data['email']\n let phone_number = profile.data['phone_number'] || \"\" \n let orderId = order.data[\"orderId\"]\n let receiptId = order.data[\"receiptId\"]\n let amount = order.data[\"amount\"]\n let options = getRazorpayOrderOptions(name, email, phone_number, orderId, amount, receiptId)\n let paymentObject = new window.Razorpay(options);\n paymentObject.open();\n setLoadingDisplayFlag(true) // flag 2\n paymentObject.on('payment.failed', function (response){\n setLoadingDisplayFlag(false) // flag 2\n setAlert(\"error\", response.error.description);\n }); \n }) \n } \n // Monthyl subscription\n if(plan == \"Premium_Monthly\"){\n setLoadingDisplayFlag(true) // flag 1\n let profile = axios.get(BEURL + apiEndpoints.getProfile)\n let subscription = axios.post(BEURL + apiEndpoints.createSubscription, {\"plan\":plan})\n Promise.all([profile, subscription]).then(([profile, subscription]) => {\n setLoadingDisplayFlag(false) // flag 1\n let name = profile.data['given_name']+\" \"+profile.data['family_name']\n let email = profile.data['email']\n let phone_number = profile.data['phone_number'] || \"\" \n let subscription_id = subscription.data[\"subscriptionId\"]\n let options = getRazorpaySubscriptionOptions(name, email, phone_number, subscription_id)\n let paymentObject = new window.Razorpay(options);\n paymentObject.open();\n setLoadingDisplayFlag(true) // flag 2\n paymentObject.on('payment.failed', function (response){\n setLoadingDisplayFlag(false) // flag 2\n setAlert(\"error\", response.error.description);\n }); \n }) \n }\n }\n\n const handleOnClickPremium = () => { \n if (!isLoggedIn){\n return setOpenLoginPrompt(true)\n } \n setLoadingDisplayFlag(true)\n // Check if user is already a premium member\n const url_stats = BEURL + apiEndpoints.getUserStats\n axios.get(url_stats).then((res) => {\n setLoadingDisplayFlag(false)\n if (res.data['role'] === \"Premium\"){\n setAlert(\"info\", \"You are already a Premium Member\")\n setTimeout(() => {\n navigate('/')\n }, 5000);\n } \n else \n setOpenPremiumModal(true)\n }).catch((err) => setAlert(\"error\", err.response.data)) \n }\n\n const handleOnClickFree = () => {\n if (!isLoggedIn)\n navigate('/signin')\n else\n navigate('/')\n }\n\n const handleOnClickEnterprise = () => {\n window.open(EnterpriseContactUsFormURL);\n } \n\n return (\n <>\n setOpenPremiumModal(false)} handleOnClickBuy={handleOnClickBuy} />\n setOpenLoginPrompt(false)} />\n
\n
\n

Simple, Easy Pricing

\n
\n
\n \n \n \n
\n
\n \n )\n}\n\nexport default PricingComponent","import React, { useContext } from \"react\";\nimport \"./NameEmailComponent.scss\";\nimport { Button, Tooltip } from \"@mui/material\";\nimport { useEffect, useState } from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport TitleComponent from \"../../../shared/titleComponent/TitleComponent\";\nimport { validateEmail } from \"../../../shared/constants\";\nimport Context from \"../../../context/Context\";\nimport axios from \"axios\";\nimport { BEURL, S3URL } from \"../../../api/BaseUrl\";\nimport apiEndpoints from \"../../../api/EndPoints\";\nimport { isAtleastOneKeyEmpty } from \"./../../../shared/constants\";\n\nconst NameEmailComponent = () => {\n const navigate = useNavigate();\n let { qtestId } = useParams();\n qtestId = qtestId.trim().toLowerCase();\n const [additionalFieldsArray, setAdditionalFieldsArray] = useState([]);\n const [qtestName, setQtestName] = useState(\"\");\n const [qtestImage, setQtestImage] = useState(\"\");\n const [qtestDescription, setQtestDescription] = useState(\"\");\n const [display, setDisplay] = useState(\"\");\n const {\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n } = useContext(Context);\n\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n useEffect(()=>{\n setLoadingDisplayFlag(true);\n const url = BEURL + apiEndpoints.checkQtest;\n const data = {\n qtestId: qtestId\n };\n axios\n .post(url, data)\n .then((res) => {\n if (res.data.status == \"Active\") {\n setQtestName(res.data.qtestName)\n setQtestImage(res.data.qtestImage)\n setQtestDescription(res.data.qtestDescription)\n setAdditionalFieldsArray(res.data.additionalFields)\n setDisplay(\"QA\")\n } else if (res.data.status == \"Expired\") {\n setDisplay(\"QE\")\n } else if (res.data.status == \"YetToStart\") {\n setDisplay(\"QY\")\n }\n })\n .catch((error) => {\n setAlert(\"error\", error.response.data);\n })\n .finally(()=>{\n setLoadingDisplayFlag(false);\n });\n },[])\n\n return (\n
\n {display==\"QA\" && }\n {display==\"QE\" && }\n {display==\"QY\" && }\n
\n );\n};\n\nconst NameEmailSubComponent = ({qtestId, qtestName=\"\", qtestImage=null, qtestDescription=\"\", additionalFieldsArray}) => {\n const navigate = useNavigate();\n const [name, setName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [additionalFields, setAdditionalFields] = useState({});\n const [buttonDisableFlag, setButtonDisableFlag] = useState(true);\n const [isLoggedInUser, setIsLoggedInUser] = useState(false);\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n const isDesktop = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n const styledButton = {\n padding: isTablet ? \"0.8rem 2rem\" : \"2.2rem 7rem\",\n color: \"#fff\",\n marginTop: \"auto\",\n // fontSize:isMobile? \"0.875rem\" : \"2.125rem\",\n fontSize: \"clamp(0.875rem, 2.36vw, 2.125rem)\",\n letterSpacing: isMobile ? \"0.5px\" : \"1px\",\n // lineHeight: isMobile? \"2.125rem\" : \"0.875rem\",\n lineHeight: \"clamp(0.875rem, 2.36vw, 2.125rem)\",\n textAlign: \"center\",\n fontFamily: \"CaustenR\",\n fontWeight: \"700\",\n borderRadius: \"10px\",\n marginBottom: \"2.5rem\",\n };\n\n useEffect(() => {\n if(localStorage.getItem('isLoggedIn') && sessionStorage.getItem(\"sessionId\")){\n setName(sessionStorage.getItem(\"name\"))\n setEmail(sessionStorage.getItem(\"email\"))\n setIsLoggedInUser(true)\n }\n\n // Initialize additionalFields Object from additionalFieldsArray\n let tempFieldsObj = {}\n additionalFieldsArray.forEach((fieldName)=>{\n tempFieldsObj[fieldName] = \"\"\n })\n setAdditionalFields(tempFieldsObj)\n },[])\n\n useEffect(() => {\n // Enable Proceed button when email and name fields are not empty and valid\n if (name.trim() == \"\" || !validateEmail(email) || isAtleastOneKeyEmpty(additionalFields)){\n setButtonDisableFlag(true);\n }\n else {\n setButtonDisableFlag(false)\n };\n }, [email, name, additionalFields]);\n\n const handleEmailChange = (event) => {\n setEmail(event.target.value);\n };\n\n const handleNameChange = (event) => {\n setName(event.target.value);\n };\n\n const handleProceedClick = () => {\n if(isLoggedInUser){\n navigate(\"/qtest\", {\n state: {\n isLoggedInUser: true,\n qtestId: qtestId,\n playerName: null,\n playerId: sessionStorage.getItem(\"sessionId\"),\n additionalFields: additionalFields\n },\n });\n }\n else{\n navigate(\"/qtest\", {\n state: {\n isLoggedInUser: false,\n qtestId: qtestId,\n playerName: name,\n playerId: email,\n additionalFields: additionalFields\n },\n });\n }\n };\n\n const additionalFieldsView = additionalFieldsArray.map((fieldName, index) => {\n return (\n
\n \n {\n setAdditionalFields((prevValue) => {\n prevValue[fieldName] = event.target.value\n return {\n ...prevValue,\n }\n })\n }}\n />\n
\n )\n })\n\n return (\n <>\n \n
\n {qtestDescription}\n
\n {qtestImage && {qtestName}\n
\n \n \n
\n
\n \n \n
\n {additionalFieldsView}\n
\n \n
\n \n PROCEED\n \n
\n \n
\n \n );\n};\n\nconst QtestNotActiveComponent = ({title, message}) => {\n return (\n <>\n \n

{message}

\n \n )\n}\n\nexport default NameEmailComponent;\n","import React, { useRef } from 'react'\nimport \"./ShareQtestComponent.scss\"\nimport { Button } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport Context from \"../../context/Context\";\nimport { useLocation, useNavigate, useParams } from \"react-router-dom\";\nimport { makeStyles } from '@mui/styles';\nimport { FEURL } from \"../../api/BaseUrl\";\nimport TitleComponent from '../../shared/titleComponent/TitleComponent';\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport InviteModalWrapper from '../../shared/inviteModalComponent/InviteModalWrapper';\nimport ExitWarning from '../../shared/exitWarning/ExitWarning';\nimport { isStateValid } from '../../shared/constants';\nimport QRCode from 'react-qr-code';\nimport { FaDownload } from 'react-icons/fa';\n\nconst useStyles = makeStyles({\n button: {\n padding: \"0.5rem 1.5rem\",\n fontFamily: \"CaustenR\",\n fontSize: \"1.5rem\",\n fontWeight: \"700\",\n color: \"white\",\n borderRadius: \"10px\",\n // \"@media only screen and (max-width: 1536px)\": {\n // fontSize: \"1.4rem\",\n // fontWeight: \"400\",\n // fontFamily: \"CaustenEB\",\n // padding: \"1rem 1.5rem\",\n // },\n \"@media only screen and (max-width: 900px)\": {\n fontSize: \"1rem\",\n fontWeight: \"400\",\n fontFamily: \"CaustenEB\",\n padding: \"0.4rem 2rem\",\n }\n // ,\n // \"@media only screen and (max-width: 600px)\": {\n // fontSize: \"0.875rem\",\n // fontWeight: \"400\",\n // fontFamily: \"CaustenR\",\n // padding: \"0.4rem 1.2rem\",\n // }\n }\n})\n\nconst ShareQtestComponent = () => {\n const {\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag\n } = useContext(Context);\n const navigate = useNavigate()\n const classes = useStyles()\n const [exitModalOpen, setExitModalOpen] = useState(false);\n let {qtestId} = useParams();\n // Default back\n let backToPath = \"/quizselection\";\n qtestId = qtestId.trim().toLowerCase();\n\n // If directed from TilesCarousel or viewAllTiles Component, backToPath is passed as a state.\n const {state} = useLocation();\n if(isStateValid(state)){ // Check if state is valid\n // Read values passed on state if present\n if(state.hasOwnProperty(\"backToPath\")){\n backToPath = state.backToPath;\n }\n }\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n const selectInviteLink = () => {\n // Select the Invite Link text\n var range = document.createRange();\n var selection = window.getSelection();\n range.selectNodeContents(document.getElementById(\"inviteLink\"));\n selection.removeAllRanges();\n selection.addRange(range);\n }\n\n var shareLinkClipboard = new window.ClipboardJS(\".copyBtn\")\n shareLinkClipboard.on('success', function (e) {\n setTimeout(() => {\n setAlert(\"info\", \"Link copied to clipboard\");\n selectInviteLink();\n }, 100)\n })\n\n const handleBackClick = () => {\n navigate(backToPath);\n }\n\n useEffect(()=>{\n if(!localStorage.getItem(\"isLoggedIn\")){\n navigate(\"/\")\n }\n },[])\n\n // Download QR Code as a png\n const qrCodeSVGRef = useRef(null);\n const downloadQRCodeAsPng = ({imageName='qrcode'}) => {\n // Fetch element from reference, return if null\n const svgElement = qrCodeSVGRef.current;\n if (!svgElement) return;\n\n // Serialize SVG into string. The string is converted into a Blob, which is then turned into an Object URL.\n const svgString = new XMLSerializer().serializeToString(svgElement);\n const svgBlob = new Blob([svgString], { type: 'image/svg+xml;charset=utf-8' });\n const svgUrl = URL.createObjectURL(svgBlob);\n \n // Initialize canvas and img element\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const img = new Image();\n const borderWidth = 15\n\n img.onload = () => {\n // Prep canvas to include a border\n canvas.width = img.width + borderWidth;\n canvas.height = img.height + borderWidth;\n // Fill the background with white color\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n \n // Draw the image on the canvas\n ctx.drawImage(img, borderWidth/2, borderWidth/2);\n\n // Convert the canvas into a data url, for the 'a' element.\n const pngFile = canvas.toDataURL('image/png');\n \n // Create an 'a' ele,ent, assign href and simulate trigger to download\n const downloadLink = document.createElement('a');\n downloadLink.href = pngFile;\n downloadLink.download = imageName+'.png';\n document.body.appendChild(downloadLink);\n downloadLink.click();\n\n // Clean up\n document.body.removeChild(downloadLink);\n URL.revokeObjectURL(svgUrl);\n };\n\n // This will trigger onLoad on img\n img.src = svgUrl;\n };\n\n return (\n
\n \n
\n
\n
\n

{`${FEURL}/qtest/${qtestId}`}

\n \n copy\n \n
\n \n
\n

\n Copy the link above and share it with your friends for them to participate in\n the QTest, or scan the QR Code below.\n

\n
\n \n
\n {/* \"qTNoPlayers\" */}\n
\n \n
\n
\n\n
\n {\n navigate(\"/\")\n }}\n className={classes.button}\n style={{\n backgroundColor: \"#fdb913\",\n }}\n >\n Home\n \n downloadQRCodeAsPng({imageName: `qr_code_${qtestId}`})}\n className={classes.button}\n style={{\n backgroundColor: \"#fdb913\",\n }}\n >\n   QR Code\n \n
\n\n \n
\n );\n};\n\nexport default ShareQtestComponent;\n","import \"./QtestComponent.scss\";\nimport React, { useContext, useEffect, useState, useCallback } from \"react\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport FillButtonComponent from \"../../shared/fillButtonComponent/FillButtonComponent\";\nimport LoginPromptComponent from \"../../shared/loginPromptComponent/LoginPromptComponent\";\nimport Context from \"../../context/Context\";\nimport axios from \"axios\";\nimport { BEURL } from \"../../api/BaseUrl\";\nimport apiEndpoints from \"../../api/EndPoints\";\nimport QtestMobileFixedHeader from \"./qtestMobileFixedHeader/QtestMobileFixedHeader\";\nimport QtestQuestionTypeSelectComponent from \"./qtestQuestionTypeSelectComponent/QtestQuestionTypeSelectComponent\";\nimport QtestFooterComponent from \"./qtestFooterComponent/QtestFooterComponent\";\nimport { getQtestTypeCode } from \"../../shared/constants\";\nimport QtestAnswerComponent from \"./qtestAnswerComponent/QtestAnswerComponent\";\n\nconst QtestComponent = () => {\n \n const navigate = useNavigate();\n const { state } = useLocation();\n const { isLoggedInUser, qtestId, playerName, playerId, additionalFields } = state;\n const [questionData, setQuestionData] = useState(null);\n const [answerData, setAnswerData] = useState(null);\n const [selectedAnswer, setSelectedAnswer] = useState(\"\");\n const [showAnswerPage, setShowAnswerPage] = useState(false);\n const [questTimerProgress, setQuestTimerProgress] = useState(0);\n const [questiontimerInterval, setQuestionTimerInterval] = useState(null);\n const [showScoreFlag, setShowScoreFlag] = useState(null);\n\n // For results\n const [rank, setRank] = useState(0);\n const [totalScore, setTotalScore] = useState(0);\n const [showResult, setShowResult] = useState(false);\n\n const {\n setNotificationType,\n setNotificationMessage,\n setNotificationDisplayFlag,\n setLoadingDisplayFlag,\n } = useContext(Context);\n\n // setAlert to modify notifications before display\n const setAlert = (type, message) => {\n setNotificationType(type);\n setNotificationMessage(message);\n setNotificationDisplayFlag(true);\n };\n\n //Login prompt and redirect to Sign-in page\n const [openLogin, setOpenLogin] = useState(false);\n const handleOpenLogin = () => setOpenLogin(true);\n const handleCloseLogin = () => {\n setOpenLogin(false);\n navigate(\"/signin\");\n };\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const isTablet = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const resetForNextQuestion = () => {\n setQuestionData(null);\n setAnswerData(null);\n setSelectedAnswer(\"\");\n setShowAnswerPage(false);\n setQuestTimerProgress(0);\n questiontimerInterval && clearInterval(questiontimerInterval);\n setQuestionTimerInterval(null);\n }\n\n // Run timer after questionData is set\n useEffect(() => {\n if(questionData && questionData.questionType != \"NQS\"){\n const timerInterval = setInterval(() => {\n setQuestTimerProgress((prevProgress) => {\n if (prevProgress >= questionData.timeToAnswer) {\n clearInterval(timerInterval);\n submitAnswer({\n qtestType: questionData.qtestType,\n questionId: questionData.questionId,\n questionType: questionData.questionType,\n playerAnswer: \"\",\n timeTaken: prevProgress,\n });\n }\n return prevProgress + 1;\n });\n }, 1000);\n setQuestionTimerInterval(timerInterval);\n }\n\n return (()=>{\n clearInterval(questiontimerInterval);\n setQuestTimerProgress(0)\n })\n\n }, [questionData]);\n\n const fetchNextQuestion = () => {\n const url = BEURL + apiEndpoints.attendQtest;\n const data = {\n qtestId: qtestId,\n playerId: playerId,\n playerName: playerName,\n additionalFields: additionalFields,\n isLoginUser: isLoggedInUser\n }\n setLoadingDisplayFlag(true);\n axios\n .post(url, data)\n .then((res) => {\n if (res.data.status == \"IP\") {\n let question = res.data.question;\n setQuestionData(question);\n } else if (res.data.status == \"CP\") {\n // Redirect to result page\n if (res.data.showResultFlag) {\n setRank(res.data.results.rank)\n setTotalScore(res.data.results.playerTotalScore)\n }\n setShowScoreFlag(res.data.showResultFlag);\n setShowAnswerPage(true)\n setShowResult(true)\n }\n })\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => setLoadingDisplayFlag(false));\n };\n\n const submitAnswer = ({\n qtestType,\n questionId,\n playerAnswer,\n questionType,\n timeTaken = (questTimerProgress>questionData.timeToAnswer?questionData.timeToAnswer:questTimerProgress),\n }) => {\n // Clear setInterval for TimerComponent\n clearInterval(questiontimerInterval);\n questionType==\"NQS\" && (timeTaken = -1) // To identify NQS answers\n const url = BEURL + apiEndpoints.submitQtestAnswer;\n const data = {\n qtestId,\n playerId,\n qtestType: getQtestTypeCode(qtestType),\n questionId,\n timeTaken,\n playerAnswer,\n questionType,\n }\n setLoadingDisplayFlag(true);\n axios\n .post(url, data)\n .then((res) => {\n const showAnswerFlag = res.data.showAnswerFlag;\n if(questionType==\"NQS\" || showAnswerFlag===false){\n handleNextQuestion(); // handle next question once answer is recorded. No answer page.\n }\n else{ // Show answer page for non NQS questions only\n // Set answer data from response\n setAnswerData(res.data.answercontent);\n setShowAnswerPage(true);\n }\n })\n .catch((error) => setAlert(\"error\", error.response.data))\n .finally(() => setLoadingDisplayFlag(false));\n };\n\n useEffect(() => {\n fetchNextQuestion();\n }, []);\n\n useEffect(() => {\n document.getElementById(\"quizComp_content\").scrollTo(0, 0);\n }, [showAnswerPage]);\n\n const handleNextQuestion = () => {\n // Get next question\n resetForNextQuestion() // Reset before next question\n fetchNextQuestion();\n };\n\n // Block back and reload button in browser\n const [finishStatus, setfinishStatus] = useState(false);\n const onBackButtonEvent = (e) => {\n e.preventDefault();\n if (!finishStatus) {\n if (window.confirm(\"Do you want to leave the game?\")) {\n setfinishStatus(true);\n navigate(\"/\");\n } else {\n window.history.pushState(null, null, window.location.pathname);\n setfinishStatus(false);\n }\n }\n };\n const onReloadButtonEvent = (e) => {\n e.preventDefault();\n return (e.returnValue =\n \"Data will be lost if you leave the page, are you sure?\");\n };\n useEffect(() => {\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener(\"popstate\", onBackButtonEvent);\n window.addEventListener(\"beforeunload\", onReloadButtonEvent);\n return () => {\n window.removeEventListener(\"popstate\", onBackButtonEvent);\n window.removeEventListener(\"beforeunload\", onReloadButtonEvent);\n };\n }, []);\n\n return (\n <>\n
\n \n {!showAnswerPage && isTablet && questionData && (\n \n )}\n\n {showAnswerPage ? (\n \n ) : (questionData && (\n \n ))}\n\n {showAnswerPage && !showResult && (\n
\n \n
\n )}\n
\n {questionData && (isTablet || showAnswerPage || (\n \n ))}\n
\n \n \n );\n};\n\nexport default QtestComponent;\n","\nimport React, { useContext, useEffect, useState } from 'react'\nimport ReactDOMServer from 'react-dom/server'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { FEURL } from '../../api/BaseUrl'\nimport Context from '../../context/Context'\nimport FillButtonComponent from '../../shared/fillButtonComponent/FillButtonComponent'\nimport \"./EmbedComponent.scss\"\n\nconst EmbedComponent = () => {\n const {setNotificationType, setNotificationMessage, setNotificationDisplayFlag} = useContext(Context)\n const setAlert = (type, message) => {\n setNotificationType(type)\n setNotificationMessage(message)\n setNotificationDisplayFlag(true)\n }\n let {qtestId, embedType} = useParams();\n qtestId = qtestId.trim().toLowerCase();\n const navigate = useNavigate()\n \n if ([\"fullPageEmbed\", \"popupButton\", \"redirectButton\"].indexOf(embedType) === -1)\n navigate(\"/\")\n\n const handleGetCode = () => { \n switch(id){\n case \"fullPageEmbed\":\n navigator.clipboard.writeText(ReactDOMServer.renderToStaticMarkup(codes[\"fullPageEmbed\"])+ReactDOMServer.renderToStaticMarkup(codes[\"qsembed_script\"]));\n break;\n case \"popupButton\":\n navigator.clipboard.writeText(ReactDOMServer.renderToStaticMarkup(codes[\"popupButton\"])+ReactDOMServer.renderToStaticMarkup(codes[\"qsembed_script\"]));\n break;\n case \"redirectButton\":\n navigator.clipboard.writeText(ReactDOMServer.renderToStaticMarkup(codes[\"redirectButton\"])+ReactDOMServer.renderToStaticMarkup(codes[\"qsembed_script\"]));\n break;\n }\n setAlert(\"success\", \"Code copied to clipboard\")\n }\n\n const [id, setId] = useState(embedType)\n\n useEffect(() => {\n let element = document.getElementById(id)\n if (!!element){\n element.style.background = \"#fff\"\n element.style.color = \"#30b2e7\" \n setPreview(codes[id]) \n }\n //unselect previous selection\n return () => {\n let element = document.getElementById(id)\n if (!!element){\n element.style.background = \"#30b2e7\"\n element.style.color = \"#fff\" \n } \n }\n }, [id]) \n\n useEffect(() => { \n //load script\n const script = document.createElement(\"script\");\n script.src = `${FEURL}/scripts/qsembed.js`; \n script.id = \"qsembed\"; \n document.body.appendChild(script); \n \n return () => {\n const script = document.getElementById(\"qsembed\")\n script.remove()\n }\n }, [])\n \n\n const [preview, setPreview] = useState()\n const codes = {\n \"popupButton\" : ,\n \"redirectButton\" : ,\n \"fullPageEmbed\" :