{"version":3,"sources":["images/aualogo.png","config/index.js","api/addQuestionToDeckApi.js","api/AuthApi.js","common/globals.js","api/confirmCMEApi.js","api/createDeckApi.js","api/deRegisterDeviceApi.js","api/editDeckApi.js","api/fetchAvailableQuestionsApi.js","api/getDecksApi.js","api/getQuestionApi.js","styles/buttonStyles.jsx","styles/backgroundStyles.jsx","styles/cardStyles.jsx","styles/colorPallete.jsx","styles/textStyles.jsx","svg/bars-solid.jsx","svg/book-open-solid.jsx","svg/chevron-left-solid.jsx","svg/frown-regular.jsx","svg/graduation-cap-solid.jsx","svg/home-lg-alt-solid.jsx","svg/meh-regular.jsx","svg/photo-video-solid.jsx","svg/play-circle-solid.jsx","svg/podcast-regular.jsx","svg/smile-regular.jsx","svg/tablet-alt-regular.jsx","svg/university-solid.jsx","svg/user-md-solid.jsx","svg/youtube-brands.jsx","common/functions.js","common/notification.js","api/getUserDetailsApi.js","api/putResponseApi.js","api/getAllQuestionsApi.js","api/getQuestionResultsApi.js","api/putNextReviewDateApi.js","api/getDeviceApi.js","actions/AuthActions.js","actions/types.js","actions/decksActions.js","actions/questionActions.js","actions/styleActions.js","reducers/AuthReducer.js","reducers/decksReducer.js","reducers/StyleReducer.js","reducers/questionsReducer.js","reducers/DeviceReducer.js","reducers/index.js","initStore.js","components/Button.jsx","components/DynamicButton.jsx","components/SaspButton.jsx","components/ChooseQuestionsForm.jsx","components/CounterWidget.jsx","components/ModalIcon.jsx","components/DeckFormWidget.jsx","components/DailyBannerCard.jsx","components/VersionBannerCard.jsx","components/ProgressBar.jsx","components/DeckCard.jsx","components/PublicDeckCard.jsx","components/ModalImages.jsx","components/FlashCard.jsx","components/FlashCardWidget.jsx","components/Footer.jsx","components/Header.jsx","components/HomeDeckCard.jsx","components/ModalWidget.jsx","components/QuestionCard.jsx","components/TestTableCard.jsx","components/SkeletonImage.jsx","components/ModalForm.jsx","components/CompleteCard.jsx","components/MenuDrawer.jsx","components/NextPrevButton.jsx","components/EditDeckForm.jsx","components/ViewDeckForm.jsx","components/ReviewSlider.jsx","components/TestTabletTableCard.jsx","components/LoadingCard.jsx","components/CopyrightWidget.jsx","components/CopyrightWidgetLoading.jsx","components/LabComponent.jsx","components/HomeUserInfo.jsx","components/QuestionTestCard.jsx","components/RetiredQuestionTestCard.jsx","components/AILegalStatementCard.jsx","screens/CreateDeckScreen.jsx","screens/EditDeckScreen.jsx","screens/DeregisterScreen.jsx","screens/LoginRoute.jsx","screens/LoginScreen.jsx","screens/PrivateRoute.jsx","screens/QuestionsScreen.jsx","screens/SingleQuestionsScreen.jsx","screens/CompletedTestScreen.jsx","actions/DeviceActions.js","screens/SplashScreen.jsx","testQuestion.js","images/index.js","screens/TestScreen.jsx","screens/RedirectScreen.jsx","screens/DeckListScreen.jsx","screens/NoteListScreen.jsx","screens/ViewDeckScreen.jsx","screens/ViewMessageScreen.jsx","screens/PublicDecksScreen.jsx","components/MessageBannerCard.jsx","screens/HomeScreen.jsx","screens/ErrorScreen.jsx","screens/ProfileScreen.jsx","screens/SettingsScreen.jsx","screens/LeaderBoardScreen.jsx","screens/NotificationsScreen.jsx","screens/CMEInfoScreen.jsx","screens/CMERedirectScreen.jsx","screens/FlashCardsScreen.jsx","screens/FlashCardReviewScreen.jsx","screens/QuestionTestScreen.jsx","screens/ProgramScreen.jsx","screens/ResidentScreen.jsx","Router.jsx","App.js","serviceWorker.js","index.js"],"names":["module","exports","BASE_AXIOS","axios","create","baseURL","timeout","apiAddQuestionToDeck","data","a","form","FormData","append","mcid","key","deckID","questionID","isActiveQuestion","request","method","params","response","apiLoginUser","email","password","deviceName","deviceid","appID","Array","isArray","testerArr","APPID","DATE","Date","APPYEAR","getFullYear","APPDAY","prototype","isLeapYear","year","this","getDOY","mn","getMonth","dn","getDate","dayOfYear","apiConfirmCME","cmeConfirmationData","programID","tracking","pathname","pagevia","action","os","ua","confrimCMEApiResponse","console","log","apiCompleteTest","qyear","gamemode","claimed","processed","apiCreateDeck","deckData","deckName","deckPriority","ispublic","isSpaced","isHome","gameMode","flashCards","areas","years","blankDeck","deckSummary","createDeckResponse","apiDeRegister","deviceID","apiEditDeck","decksummary","isActive","isPublic","isWrong","apiCopyDeck","results","apiSubscribeDeck","apiAddNote","obj","comment","yearvar","state","noteID","push","apiResetDeck","decks","apiShareDeck","shareWith","apiEmailResults","share","replace","apiFetchAvailableQuestions","areavar","apiGetFlashCards","apiGetThisFlashCard","deckid","deckId","questionid","apiGetDecks","temp","apiRemoveShare","fkdeckid","owner","apiGetPublicDecks","apiGetPremadeDecks","apiGetQuestion","type","previousQuestionID","explanation","apiRemoveQuestion","apiGetSingleQuestion","buttonStyles","makeStyles","loginBackground","background","primary","borderRadius","border","height","padding","textTransform","fontSize","label","questionButtonsContainer","deckCardButtons","spacing","color","deckCardButtonText","marginTop","textAlign","fontWeight","answerButtons","homeDeckButton","width","marginLeft","marginBottom","transition","boxShadow","deckButtons","homeCustomDeckButtons","otherAnswerOptions","firstAnswerOption","borderBottomRightRadius","borderBottomLeftRadius","lastAnswerOption","borderTopRightRadius","borderTopLeftRadius","lastHomeDeckButon","paddingRight","answerOptions","cardStyles","root","questionContainer","justifyContent","overflowY","deckContainer","homeDeckButtonContainer","display","homeDeckContainer","marginRight","gridContainer","paddingBottom","paddingTop","paddingLeft","deckButtonContainer","flexDirection","testCardContainer","maxWidth","testCardTextContainer","testCardRowContainer","testCardTextGrid","testCardDivder","flexBasis","questionTextContainer","colorPallete","secondaryBlue","secondaryGreen","neutralLight","neutralDark","neutralGreen","neutralBlue","accentGreen","accentAqua","accentBlue","accentRed","accentOrange","accentYellow","questionButtons","opacity","trueQuestionButtons","testTableButtons","neutralLightText","neutralGreenText","neutralBlueText","darkBlueText","lightBlueText","primaryText","accentRedText","accentYellowText","accentBlueText","secondaryBlueText","secondaryGreenText","neutralBlueCard","borderColor","neutralGreenCard","accentBlueCard","secondaryBlueCard","secondaryGreenCard","neutralLightCard","accentYellowCard","accentRedCard","lightBlueCard","correctGradedButtons","incorrectGradedButtons","correctQuestionButtons","incorrectQuestionButtons","submitButtons","textStyles","testCardText","alignItems","alignContent","italics","fontStyle","bold","testCardYearText","homeDeckCardsText","overflow","textOverflow","AUABarSolidIcon","props","aria-hidden","focusable","data-prefix","data-icon","className","role","xmlns","viewBox","fill","d","AUABookOpenSolid","AUAChevronLeftSolid","AUAFrownRegular","AUAGraduationCapSolid","AUAHomeIcon","AUAMehIcon","AUAPhotoVideoIcon","AUAPlayCircle","AUAPodcast","AUASmile","AUATablet","AUAUniversityIcon","AUAUserMD","AUAYouTube","hasLegal","thisday","Number","localStorage","getItem","thisyear","bool","getAUAIcon","icon","faBalanceScale","faBalanceScaleLeft","faHeadphones","faFireAlt","faNewspaper","faGraduationCap","faUniversity","faFileAlt","faFileMedicalAlt","faSitemap","faBookmark","faInbox","faCalendarAlt","faSearch","faCertificate","faBookMedical","getIcon","faFolderPlus","faShare","faPlus","faTimes","faBook","faStar","faTabletAlt","faVideo","faPlayCircle","faPlay","style","faHome","faUserMd","faCog","clearLocalStorage","removeItem","colorPicker","colors","dynamicButton","textValidate","text","test","hashString","string","i","hash","length","charCodeAt","deviceData","location","pageVia","deviceType","_type","isTablet","isElectron","isAndroid","isIOS","device","deviceDetect","appid","appversion","isBrowser","osName","osVersion","userAgent","model","getSASPURI","getSASPFacultyURI","getPastThreeYearsArr","arr","y","remoteURL","uri","window","cordova","InAppBrowser","open","makeList","arrs","r","c","index","scrollTop","id","offset","elem","document","getElementById","scrollTo","top","behavior","masterHandleClose","target","t","classList","remove","setItem","add","clearStorage","item","getThisYear","checkDailyEpoch","interval","now","p","_d","_p","setHours","setMinutes","setSeconds","setMilliseconds","Math","ceil","abs","getLoadingPhrases","int","str","alertNotification","navigator","notification","func","callback","alert","message","alertDismissed","title","buttonName","createMarkup","__html","closeAlert","apiGetSASPResidencyProgram","apiSendSASPResidentAccess","residentid","programid","apiGetSASPResidenctData","accesslevel","apiGetUserDetails","getUserDetailsResponse","to","local","JSON","stringify","apiUpdateUser","allowShare","allowSearch","allowLeaderboard","isDaily","hideOldData","displayName","yst","tl","allowProgram","isResident","pkid","apiGetLeaderboard","timespan","leaderboardResults","apiGetAccessList","accessListResults","apiUpdateNotification","notifResults","apiGetDailyQuestion","apiRateApp","apiTrackPage","detail","detailvar","detailvar2","apiPutResponse","optionSelected","apiGetAllQuestions","userData","getAllQuestionsResponse","apiGetQuestionResults","parse","apiPutNextReviewDate","hourvar","apiSetPrevPageDetails","e","persistantLogin","dispatch","_af","login_success","error","login_fail","testApi","code","errorMessage","errorCode","errorID","totalDevices","payload","deRegister","getUserDetails","statuscode","toString","logout","confirmCME","sendSASPResidentAccess","getSASPResidencyProgram","updateUserProfile","getLeaderboard","updateNotification","getFlashCards","getDecks","editDeck","createDeck","getPublicDecks","getPublicDeckResponse","copyDeck","subscribeDeck","addNote","resetDeck","submitCME","getQuestion","removeQuestion","repsonse","getQuestionResults","putResponse","fetchAvailableQuestions","fetchAvailableQuestionsResponse","getAllQuestions","getAllQuestionCountResponse","addQuestionToDeck","putNextReviewDate","put","updateHeaderInfo","iconOne","iconTwo","route","headerText","backgroundcolor","name","INITIAL_STATE","auth","holdDevice","auth_feedback","user_details","cmeYears","newMessages","cme_confirmations","leaderboard","accessList","dailyQuestion","program","resident","deckList","publicDecks","newDeckInfo","copyDeckInfo","notes","serverMsg","premade","footerOne","footerTwo","footerThree","question","sessionAnsweredQuestion","available_questions","get_question_count","get_question_results","deck_results","flashCard","platform","modal","helperIcons","spaced","public","home","flashcards","prevPage","sendMessage","SASPApp","combineReducers","store","createStore","reducers","composeWithDevTools","applyMiddleware","thunk","ButtonDefault","classes","Button","clsx","variant","disabled","disabledElevation","disableFocusRipple","endIcon","fullWidth","href","size","startIcon","onClick","logErr","children","DynamicButton","useState","setColor","active","updateEndIcon","useEffect","selected","trueColor","falseColor","setEndIcon","ButtonBase","SaspButton","button","trueClass","buttonPicker","ChooseQuestionsForm","React","questionObj","checkQuestions","setQuestions","handleChange","event","checked","questionCount","Container","Grid","container","xs","FormControlLabel","control","Checkbox","value","selectAllQuestions","questions","FormGroup","Object","keys","map","dangerouslySetInnerHTML","questiontext","onChange","mapQuestions","CounterWidget","count","useStyles","theme","paper","position","backgroundColor","palette","shadows","maxHeight","outline","ModalIcon","setOpen","body","Modal","onClose","aria-labelledby","aria-describedby","formControl","margin","minWidth","chips","flexWrap","chip","noLabel","MenuProps","PaperProps","ITEM_HEIGHT","DeckFormWidget","changeName","summary","changeSummary","yearsObj","checkYears","areaObj","checkAreas","keywords","checkKeyword","setCheckedKeyword","myYears","setMyYears","myAreas","setMyAreas","useTheme","selectYears","reverse","openBook","setState","updateChange","updateCount","getQuestionCount","handleSwitchChange","handleKeyChange","icons","textColor","Typography","Divider","TextField","defaultValue","multiline","rowsMax","rows","FormControl","InputLabel","Select","labelId","multiple","val","includes","onBlur","input","Input","renderValue","Chip","MenuItem","getStyles","varient","keyword","mapKeywords","availableAreas","QArea","AreaDescription","component","Switch","gapFunc","begin","DailyBannerCard","connect","withRouter","qName","number","Slide","mountOnEnter","unmountOnExit","direction","in","Boolean","Card","CardHeader","subheader","IconButton","edge","aria-label","transform","CardContent","CardActions","disableSpacing","VersionBannerCard","AppStoreVar","android","ios","subh","Filler","fillerClass","ProgressBar","progressClass","progressBarContainerStyle","DeckCard","cards","buttons","_obj","flashcard","disableGutters","fixed","deckColor","alignGrid","alignGridItems","gridDirection","gridItems","justify","justifyGrid","lg","gridLG","md","gridMD","sm","gridSM","gridSpacing","wrap","gridWrap","xl","gridXL","gridXS","zeroMinWidth","gridZeroMinWidth","titleClass","headerSize","align","headerAlign","gutterBottom","noWrap","paragraph","whiteSpace","complete","totalQuestions","PublicDeckCard","addDeck","ModalImages","qImages","alt","src","imageURL","classnName","media","expand","transitions","duration","shortest","expandOpen","FlashCard","expanded","flipped","setFlipped","handleFlipCard","isFlipped","flipDirection","infinite","backFunc","imgs","nextFunc","answer","reference","FlashCardWidget","deck","Footer","setValue","footerIcon","BottomNavigationAction","NavLink","BottomNavigation","newValue","showLabels","Header","handleBack","history","goBack","labstest","iconSelector","MenuDrawer","aria-lablel","AppBar","Toolbar","HomeDeckCard","texts","buttonColor","totalQs","ModalWidget","wordBreak","backgroundImage","setPrevPageDetails","QuestionCard","anchorEl","setAnchorEl","handleFABRemove","removeCallBack","myKey","confirm","questionNumber","undefined","nextToggle","toggleNext","toggleOptionSelected","0","1","2","3","4","buttonOptions","toggleButtons","answerGrade","gradeAnswers","dynamicStyle","changeStyles","onSubmit","next","values","old","updateOption","answers","AnswerOptionID","goNext","AnswerOptionCorrect","handleClick","goToQuestion","skipQuestion","addQuestion","send","addToDecks","element","handleBlur","availableyears","find","questionName","deckText","referenceURI","isspaced","_thisdeck","filter","Fab","InDecks","cardColor","currentTarget","Popover","anchorOrigin","vertical","horizontal","transformOrigin","List","dense","ListItem","row","deckname","labs","questionText","gridClass","minHeight","AnswerOptionLetter","AnswerOption","renderQuestions","prevID","refresh","prev","nextID","refsMats","QuestionYear","noValidate","autoComplete","questionExplanation","lineHeight","right","questionReference","TestTableCard","Component","textStyle","testYear","useravailable","obLink","openpercentage","cbLink","closedpercentage","openProgress","borderLeft","closedProgress","determineCards","Label","styled","InputWrapper","Tag","onDelete","Listbox","ModalForm","cClasses","shareList","setShareList","useAutocomplete","options","getOptionLabel","option","getRootProps","getInputLabelProps","getInputProps","getTagProps","getListboxProps","getOptionProps","groupedOptions","focused","sendTo","setSend","note","setNote","subject","setSubject","emailError","setEmail","noteError","handleOpen","handleEmail","em","split","handleClose","handleSubmit","cnt","textstr","helperText","NoSsr","ref","btn","btnClass","subtitle","CompleteCard","conObj","shareDeck","emailResults","setComplete","onConfirm","deckuserid","removeShare","handleFABClick","header","thisDeck","resObj","result","percentage","correct","incorrect","answered","total","resultDetails","sort","b","qNumber","answeredObj","totalResponses","correctObj","correctAnswers","incorrectObj","IncorrectAnswers","questionlist","per","trunc","getCorrectRecordCount","cleanText","fabCSS","validyear","tempYear","shareObj","shared","show","isMobileOnly","sharable","completed","showComplete","createFAB","TableContainer","class","Paper","Table","TableHead","TableRow","TableCell","TableBody","stats","scope","colspan","trim","patients","qYear","qtext","qExplanation","QuestionID","displayname","dateStr","colSpan","fullList","left","cme","cmeTitle","cmeProgram","cmeShow","cmeBody","toggleDrawer","anchor","cmeText","_arr","tcme","_tobj","loc","prevLoc","user","Fragment","SwipeableDrawer","onOpen","list","onKeyDown","ListItemIcon","ListItemText","isprogram","isProgram","NextPrevButton","EditDeckForm","yearText","areaText","setProps","handleQuestionChange","questionData","questionArr","verticalAlign","ViewDeckForm","copy","marks","valuetext","labelText","ReviewSlider","Slider","getAriaValueText","getAriaLabel","valueLabelDisplay","valueLabelFormat","steps","min","max","onChangeCommitted","getValue","TestTabletTableCard","toLowerCase","path","LoadingCard","CircularProgress","CopyrightWidget","CopyrightWidgetLoading","LabsComponent","_labs","setLabs","_abbrvs","setAbbrs","handleFABClose","abbrvs","_restTest","openModal","hasLabs","modalStyle","tableCSS","__labs","gc","endocrine","abg","__abbrvs","mykey","HomeUserInfo","reporting","weekly","rank","monthly","QuestionTestCard","setAnswer","answerid","setAnswerID","setCorrect","setNext","setPrev","qoptions","_OBJ","handleNext","_next","nextQuestionID","submitFunc","handlePrev","_prev","flipCard","_hsobj","prevAnswer","reset","mapActionBtn","_submit","_classes","prevClass","showPrev","__typetext","typetext","faInfoCircle","cursor","RetiredQuestionTestCard","choice","retired","nextquestionid","AILegalStatementCard","backgroundSize","backgroundRepeat","isIn","setIsIn","Link","appear","enter","exit","CreateDeckScreen","creationStage","yearObj","keywordsObj","ready","openDeck","loading","componentDidMount","newYearObj","newAreaObj","newKeywordsObj","SASPYears","ProductYear","area","availableKeywords","componentDidUpdate","prevProps","prevState","newQuestionObj","goHome","createDeckData","addQuestions","actualQuestions","forEach","mode","keywordObj","flashCardstrue","nameDeck","authorizedyears","sendQuestions","actualYears","actualAreas","actualKeywords","resetForm","EditDeckScreen","quetionArr","tQuestion","res","DeckSummary","nextStage","setProp","entries","priority","getAreaText","getYearText","returnFormStage","feedback","Comp","rest","loggedIn","render","LoginScreen","id_email","id_email_flag","password_flag","id_email_error","password_error","errorModal","id_email_blur_flag","password_blur_flag","spinner","showpassword","_date","_expire","doUserLogin","login","handleClickShowPassword","handleMouseDownPassword","preventDefault","handleText","handleErrorClose","handleSpinnerClose","bgsize","bgimg","backgroundPosition","bottom","htmlFor","OutlinedInput","inputProps","endAdornment","InputAdornment","onMouseDown","borderBottom","version","manufacturer","uuid","profileData","_error","floor","random","errorKey","_json","authorized","prevLocation","QuestionScreen","answerChoice","startNext","yend","ybegin","redirectPage","scrollToTop","page","addEventListener","getHeaderColor","openBookNav","morequestions","putResponseData","setHeaderName","pressedKey","String","fromCharCode","keyCode","ctrlKey","returnValue","areaVar","resetTest","removeEventListener","SingleQuestionScreen","_qdata","getSingleQuestion","_typetext","_goto","overflowZ","CompleteTestScreen","sobj","getAccessList","_bool","totalscore","setContainer","removeShareDeck","getAllQuestion","SplashScreen","cme_flag","cmeYears_length","cmeYears_current","clear","newUser","testQuestion","require","TestScreen","oneSelected","twoSelected","totalLength","RedirectScreen","DeckListScreen","reload","copyModal","setTimeout","copyThisDeck","setColorObj","mapMyDeckCards","percomp","totaAnswered","colorObj","texting","float","NoteListScreen","mapMyNotes","ViewDeckScreen","preloading","notifications","handleSendAccess","allowshare","allowsearch","allowleaderboard","updateDeck","notif","notificationDetail","datestr","from","notificationType","notificationState","PiblicDeckList","mapPublicDeckCards","mapPublicDeckRows","PublicDecksScreen","MessageBannerCard","messageday","messageid","actiontext","Home","debug","cmeConfirmed","newVersion","hv","homeDecks","showPre","_reporting","nv","msg","isday","getPremadeDecks","__ls","__msgid","__dayid","appRated","plugins","AppReview","requestReview","then","ratingtracking","updateRating","catch","openStoreScreen","getDailyQuestion","_state","checkCME","slice","condition","confirmed","CMEContent","mapPremadeDecks","_path","abbr","subtext","mapDecksWidgets","mapYearWidgets","_data","_gamemode","oPer","round","cPer","openText","closeText","optclass","optClass2","mapHomeDeckCards","mapTableCards","mapTabletTableCards","findIndex","homeLink","mapModalBody","_y","_year","overflowX","setBanner","testing","goTo","HomeScreen","Errors","trackPage","ErrorScreen","Profile","update","_ap","handleNameChange","handleYSTChange","handleTLChange","handleTLSelect","setBool","claimCME","handleCMEClose","confirmClear","handleAccess","isOpen","subs","residencydata","residents","accessleveltext","ProfileScreen","Settings","mapSASPFacultyLinks","SettingsScreen","LeaderBoard","boardname","main","mainLeaderboard","setStateBoard","areaLeaderboard","areaDescription","areaRanking","handleSelect","mapLeaderBoard","score","LeaderBoardScreen","NotificationsClass","messages","mapNotificationsToList","notifs","secondary","NotificationsScreen","CMEInfo","objChecked","_ty","CMEInfoScreen","CMERedirect","CMERedirectScreen","FlashCardsScreen","FlashCardReviewScreen","fc","getThisFlashCard","QuestionTestScreen","isNaN","_text","_filter","_question","__obj","_reset","Program","laoding","accessLevel","ProgramScreen","ResidentClass","loadingtext","myLoadingTextInterval","setInterval","getSASPResidentData","clearInterval","componentWillUnmount","lastaccessed","scores","peers","ResidentScreen","Routes","StylesProvider","injectFirst","AnimatePresence","classNames","exact","DeregisterScreen","SingleQuestionsScreen","CompletedTestScreen","ViewMessageScreen","App","hostname","match","startApp","ReactDOM","splashscreen","hide","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.58c96008.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/aualogo.f176244a.png\";","import axios from \"axios\";\n\nexport const LOGIN_URL = \"https://university.auanet.org/mobileapps/admin/login/main.cfc?method=remoteLogin\";\nexport const MAIN_URL = \"https://university.auanet.org/mobileapps/admin/sasp/main.cfc\";\n// export const MAIN_URL = \"https://university.auanet.org/mobileapps/admin/sasp/maindevelopment.cfc\";\n\nexport const LOGIN_AXIOS = () => {\n return axios.create({\n baseURL: LOGIN_URL,\n timeout: 1000 * 60 * 2\n });\n};\n\nexport const BASE_AXIOS = () => {\n return axios.create({\n baseURL: MAIN_URL,\n timeout: 1000 * 60 * 2\n });\n};","import { BASE_AXIOS } from \"../config\";\n\nexport const apiAddQuestionToDeck = async data => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"deckID\", data.deckID);\n form.append(\"questionID\", data.questionID); \n\n /*\n mcid: props.auth_feedback.mcid,\n key: props.auth_feedback.key,\n deckID: props.deckID,\n questionID: name,\n isActiveQuestion: (event.target.checked ? 1 : 0)\n */\n\n if (typeof data.isActiveQuestion !== 'undefined') {\n form.append(\"isActiveQuestion\", data.isActiveQuestion);\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"addQuestionToDeck\"\n },\n data: form\n });\n\n return response.data;\n } catch (error) {\n throw error;\n }\n};\n","import { LOGIN_AXIOS } from \"../config\";\n\nexport const apiLoginUser = async data => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid)\n form.append(\"email\", data.email);\n form.append(\"password\", data.password);\n form.append(\"deviceName\", data.deviceName);\n form.append(\"deviceid\", data.deviceid);\n form.append(\"appID\", data.appID);\n\n try {\n const response = await LOGIN_AXIOS().request({\n method: \"POST\",\n data: form\n });\n // localStorage.setItem('mcid', response.mcid);\n // localStorage.setItem('key', response.key);\n // localStorage.setItem('expirationDate', response.expirationDate);\n // localStorage.setItem('auth', true);\n if (Array.isArray(response.data)) {\n return response.data[0];\n } else {\n return response.data;\n }\n \n } catch (error) {\n throw error;\n }\n};\n","export const INSTANCE_TOKEN = 'sasp_firebase_token';\nexport const IOS_TOKEN = 'sasp_firebase_apns_token';\nexport const VAPIDKEY = \"BD2B8BMgFLOVCqksa3HWpRoVQt1Ymijvc9myxDAoCKasRWcrnvGFPdjug7Wkbfp42VKYcG_Dh7O1tUdnoB9z-yk\";\n\nexport const FIREBASE_WEB_CONFIG = {\n apiKey: \"AIzaSyDfnvS7fSuz9Ug2JW0MShW7vYofb_BECn8\",\n authDomain: \"sasp-mobile-and-web-app.firebaseapp.com\",\n databaseURL: \"https://sasp-mobile-and-web-app.firebaseio.com\",\n projectId: \"sasp-mobile-and-web-app\",\n storageBucket: \"sasp-mobile-and-web-app.appspot.com\",\n messagingSenderId: \"8788043734\",\n appId: \"1:8788043734:web:70eb2f227db23e9d1a6677\",\n measurementId: \"G-610CVBXCQM\"\n};\n\nexport const FIREBASE_ANDROID_CONFIG = {\n apiKey: \"AIzaSyDfnvS7fSuz9Ug2JW0MShW7vYofb_BECn8\",\n authDomain: \"sasp-mobile-and-web-app.firebaseapp.com\",\n databaseURL: \"https://sasp-mobile-and-web-app.firebaseio.com\",\n projectId: \"sasp-mobile-and-web-app\",\n storageBucket: \"sasp-mobile-and-web-app.appspot.com\",\n messagingSenderId: \"8788043734\",\n appId: \"1:8788043734:web:70eb2f227db23e9d1a6677\",\n measurementId: \"G-610CVBXCQM\"\n};\n\nexport const FIREBASE_IOS_CONFIG = {\n apiKey: \"AIzaSyDfnvS7fSuz9Ug2JW0MShW7vYofb_BECn8\",\n authDomain: \"sasp-mobile-and-web-app.firebaseapp.com\",\n databaseURL: \"https://sasp-mobile-and-web-app.firebaseio.com\",\n projectId: \"sasp-mobile-and-web-app\",\n storageBucket: \"sasp-mobile-and-web-app.appspot.com\",\n messagingSenderId: \"8788043734\",\n appId: \"1:8788043734:web:70eb2f227db23e9d1a6677\",\n measurementId: \"G-610CVBXCQM\"\n};\n\nexport const REFSMATS = {\n '2021': '',\n}\n\nexport const testerArr = [\n '00863273',\n '00835635',\n '01011617'\n]\n\nexport const APPVERSION = '1.17.11';\nexport const APPID = 'org.auanet.auau.sasp';\n\nexport const DATE = new Date();\n\nexport const APPYEAR = () => {\n let _d = new Date();\n return _d.getFullYear();\n}\n\nexport const APPDAY = () => {\n Date.prototype.isLeapYear = function() {\n var year = this.getFullYear();\n if((year & 3) != 0) return false;\n return ((year % 100) != 0 || (year % 400) == 0);\n };\n \n // Get Day of Year\n Date.prototype.getDOY = function() {\n var dayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n var mn = this.getMonth();\n var dn = this.getDate();\n var dayOfYear = dayCount[mn] + dn;\n if(mn > 1 && this.isLeapYear()) dayOfYear++;\n return dayOfYear;\n };\n\n return DATE.getDOY();\n}\n\nexport const LOADIGNARRAY = [\n 'Connecting...',\n 'Verifying Access...',\n 'Accessing Data...',\n 'Loading Data...',\n]","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\n\nexport const apiConfirmCME = async cmeConfirmationData => {\n let form = new FormData();\n form.append(\"mcid\", cmeConfirmationData.mcid)\n form.append(\"key\", cmeConfirmationData.key);\n form.append(\"programID\", cmeConfirmationData.programID);\n\n if (typeof cmeConfirmationData.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", cmeConfirmationData.tracking.pathname);\n form.append(\"pagevia\", cmeConfirmationData.tracking.pagevia);\n form.append(\"action\", cmeConfirmationData.tracking.action);\n form.append(\"os\", cmeConfirmationData.tracking.os);\n form.append(\"ua\", cmeConfirmationData.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n form.append(\"detail\", cmeConfirmationData.programID);\n form.append(\"detailvar\", \"programID\")\n } \n\n try {\n const confrimCMEApiResponse = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"confirmCME\"\n },\n data: form\n });\n\n console.log(`confrimCMEApiResponse: `, confrimCMEApiResponse)\n\n return confrimCMEApiResponse.data[0];\n } catch (error) {\n throw error;\n }\n};\n\nexport const apiCompleteTest = async data => {\n let form = new FormData(); \n form.append('mcid', data.mcid);\n form.append('key', data.key);\n form.append('qyear', data.qyear);\n form.append('gamemode', data.gamemode);\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n if (typeof data.claimed !== 'undefined') {\n try {\n let response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"claimSASPTest\"\n },\n data: form\n });\n\n return response.data;\n } catch (error) {\n throw error;\n }\n } else if (typeof data.processed !== 'undefined') {\n try {\n let response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"processSASPTest\"\n },\n data: form\n });\n\n return response.data;\n } catch (error) {\n throw error;\n }\n } else {\n try {\n let response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"completeSASPTest\"\n },\n data: form\n });\n\n return response.data;\n } catch (error) {\n throw error;\n }\n }\n}","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiCreateDeck = async (deckData) => {\n let form = new FormData();\n\n if (typeof deckData.deckName !== 'undefined' && deckData.deckName) {\n form.append(\"deckName\", deckData.deckName);\n } else {\n return false;\n }\n\n form.append(\"mcid\", deckData.mcid)\n form.append(\"key\", deckData.key);\n form.append(\"deckPriority\", deckData.deckPriority);\n form.append(\"ispublic\", deckData.ispublic);\n form.append(\"isSpaced\", deckData.isSpaced);\n form.append(\"isHome\", deckData.isHome);\n form.append(\"gameMode\", deckData.gameMode);\n if (typeof deckData.flashCards !== 'undefined') {\n form.append(\"flashCards\", deckData.flashCards);\n } else {\n form.append(\"flashCards\", 0);\n }\n form.append('areas', deckData.areas ? deckData.areas : '');\n form.append('years', deckData.years ? deckData.years : '');\n \n\n let method = \"createDeck\";\n if (deckData.blankDeck) {\n form.append(\"blankDeck\", deckData.blankDeck ? 1 : 0);\n }\n \n if (typeof deckData.deckSummary !== 'undefined' && deckData.deckSummary) {\n form.append(\"decksummary\", deckData.deckSummary);\n } else {\n form.append(\"decksummary\", '');\n }\n\n if (typeof deckData.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", deckData.tracking.pathname);\n form.append(\"pagevia\", deckData.tracking.pagevia);\n form.append(\"action\", deckData.tracking.action);\n form.append(\"os\", deckData.tracking.os);\n form.append(\"ua\", deckData.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const createDeckResponse = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: method\n },\n data: form\n });\n\n return createDeckResponse.data;\n } catch (error) {\n throw error;\n }\n};\n\n\n","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiDeRegister = async (mcid, key, deviceID, tracking) => {\n let form = new FormData();\n\n form.append(\"mcid\", mcid);\n form.append(\"key\", key);\n\n if (typeof tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", tracking.pathname);\n form.append(\"pagevia\", tracking.pagevia);\n form.append(\"action\", 'deregister devices');\n form.append(\"os\", tracking.os);\n form.append(\"ua\", tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const request = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"deRegisterDevice\"\n },\n data: form\n });\n\n return request.data;\n } catch (error) {\n throw error;\n }\n};","import React from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { APPID, APPVERSION } from '../common/globals';\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiEditDeck = async (data) => {\n let form = new FormData();\n \n form.append(\"deckID\", data.deckID);\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n // console.log(`data: `, data);\n\n // return null;\n\n if (typeof data.deckPriority !== 'undefined') {\n form.append(\"sortOrder\", data.deckPriority);\n }\n\n if (typeof data.deckName !== 'undefined') {\n form.append(\"deckName\", data.deckName);\n }\n\n if (typeof data.decksummary !== 'undefined') {\n form.append(\"decksummary\", data.decksummary);\n }\n\n if (typeof data.gamemode !== 'undefined') {\n form.append(\"gamemode\", data.gamemode);\n }\n\n if (typeof data.isActive !== 'undefined') {\n form.append(\"isActive\", data.isActive);\n }\n\n if (typeof data.isPublic !== 'undefined') {\n form.append(\"isPublic\", data.isPublic);\n }\n\n if (typeof data.isSpaced !== 'undefined') {\n form.append(\"isSpaced\", data.isSpaced);\n }\n\n if (typeof data.isHome !== 'undefined') {\n form.append(\"isHome\", data.isHome);\n }\n\n if (typeof data.flashCards !== 'undefined') {\n form.append(\"flashCards\", data.flashCards);\n }\n\n if (data.isWrong) {\n form.append(\"isWrong\", data.isWrong ? 1 : 0);\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n \n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"editDeck\"\n },\n data: form\n });\n \n return response.data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const apiCopyDeck = async (data) => {\n let form = new FormData();\n let obj = {\n mcid: data.mcid,\n key: data.key,\n deckID: data.deckID,\n }\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"deckID\", data.deckID);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"copyDeck\"\n },\n data: form\n });\n \n let results;\n if (Array.isArray(response.data)) {\n results = response.data;\n } else { results = []; }\n\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiSubscribeDeck = async (data) => {\n let form = new FormData();\n let obj = {\n mcid: data.mcid,\n key: data.key,\n deckID: data.deckID,\n }\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"deckID\", data.deckID);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"subscribeDeck\"\n },\n data: form\n });\n \n let results;\n if (Array.isArray(response.data)) {\n results = response.data;\n } else { results = []; }\n\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiAddNote = async (data) => {\n let form = new FormData();\n\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n let obj = {\n mcid: data.mcid,\n key: data.key\n };\n\n if (typeof data.comment !== 'undefined') {\n form.append(\"comment\", data.comment);\n obj.comment = data.comment;\n }\n\n if (typeof data.deckID !== 'undefined') {\n form.append(\"deckID\", data.deckID);\n obj.deckID = data.deckID;\n }\n\n if (typeof data.yearvar !== 'undefined') {\n form.append(\"yearvar\", data.yearvar);\n obj.yearvar = data.yearvar;\n }\n\n if (typeof data.questionID !== 'undefined') {\n form.append(\"questionID\", data.questionID);\n obj.questionID = data.questionID;\n }\n\n if (typeof data.state !== 'undefined') {\n form.append(\"state\", data.state);\n obj.state = data.state;\n }\n\n if (typeof data.noteID !== 'undefined') {\n form.append(\"noteID\", data.noteID);\n obj.noteID = data.noteID;\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"noteApi\"\n },\n data: form\n });\n \n let results = [];\n if (Array.isArray(response.data)) {\n results = response.data;\n } else if (typeof response.data === 'object') { \n results.push(response.data); \n }\n\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiResetDeck = async (data) => {\n let form = new FormData();\n\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.deckID !== 'undefined') {\n form.append(\"deckID\", data.deckID);\n }\n \n if (typeof data.yearvar !== 'undefined') {\n form.append(\"yearvar\", data.yearvar);\n }\n\n if (typeof data.gameMode !== 'undefined') {\n form.append(\"gamemode\", data.gameMode);\n } else if (typeof data.gamemode !== 'undefined') {\n form.append(\"gamemode\", data.gamemode);\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"resetDeck\"\n },\n data: form\n });\n \n let results;\n if (Array.isArray(response.data)) {\n results = response.data[0].decks;\n } else { results = []; }\n\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiShareDeck = async (data) => {\n let form = new FormData();\n\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"shareWith\", data.shareWith);\n if (typeof data.deckID !== 'undefined') { form.append(\"deckID\", data.deckID); }\n if (typeof data.yearvar !== 'undefined') { form.append(\"yearvar\", data.yearvar); } \n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"shareDeck\"\n },\n data: form\n });\n \n let results;\n\n if (Array.isArray(response.data)) {\n results = response.data;\n } else { results = []; }\n\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiEmailResults = async (data) => {\n let form = new FormData();\n let share = data.shareWith;\n share = share.replace(/\\s/g, ';')\n share = share.replace(/,/g, ';')\n share = share.replace(/;;/g, ';')\n\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"sendTo\", share);\n form.append(\"gameMode\", data.gameMode);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n let obj = {\n mcid: data.mcid,\n key: data.key,\n share: share,\n deckID: null,\n yearvar: null\n }\n\n if (typeof data.deckID !== 'undefined') { form.append(\"deckID\", data.deckID); obj.deckID = data.deckID}\n if (typeof data.yearvar !== 'undefined') { form.append(\"yearvar\", data.yearvar); obj.yearvar = data.yearvar}\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"emailResults\"\n },\n data: form\n });\n \n let results;\n if (Array.isArray(response.data)) {\n results = response.data;\n } else { results = []; }\n\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiSendMessage = async (data) => {\n let form = new FormData();\n let share = data.shareWith;\n share = share.replace(/\\s/g, ';')\n share = share.replace(/,/g, ';')\n share = share.replace(/;;/g, ';')\n\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"sendTo\", share);\n form.append(\"message\", data.message);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n\n if (typeof data.deckID !== 'undefined') {\n form.append(\"deckID\", data.deckID ? data.deckID : null);\n }\n\n if (typeof data.yearvar !== 'undefined') {\n form.append(\"yearvar\", data.yearvar ? data.yearvar : null);\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n }\n \n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"emailResults\"\n },\n data: form\n });\n \n let results;\n if (Array.isArray(response.data)) {\n results = response.data;\n } else { results = []; }\n\n return results;\n } catch (error) {\n throw error;\n }\n}","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiFetchAvailableQuestions = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"yearvar\", data.yearvar);\n form.append(\"gamemode\", data.gamemode);\n form.append(\"areavar\", data.areavar);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get available questions');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n \n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getQuestionAccess\"\n },\n data: form\n });\n\n return response.data[0];\n } catch (error) {\n throw error;\n }\n};\n\n\n","import React from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { APPID, APPVERSION } from '../common/globals';\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiGetFlashCards = async (data) => {\n let form = new FormData();\n let obj = {\n mcid: data.mcid,\n key: data.key\n }\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get decks');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getFlashCards\"\n },\n data: form\n });\n \n let post;\n if (typeof response.data.decks !== 'undefined') {\n post = response.data.decks;\n } else { post = []; }\n\n return response.data;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiGetThisFlashCard = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n \n if (typeof data.year !== 'undefined' && data.year > 0) {\n form.append(\"year\", data.year);\n }\n\n if (typeof data.deckid !== 'undefined') {\n form.append(\"deckid\", data.deckid);\n } else if (typeof data.deckID !== 'undefined') {\n form.append(\"deckid\", data.deckID);\n } else if (typeof data.deckId !== 'undefined') {\n form.append(\"deckid\", data.deckId);\n }\n\n if (typeof data.questionid !== 'undefined') {\n form.append(\"questionid\", data.questionid);\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get decks');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getThisFlashCard\"\n },\n data: form\n });\n \n return response.data;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiGetDecks = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get decks');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getDecks\"\n },\n data: form\n });\n \n let temp;\n if (typeof response.data[0].decks !== 'undefined') {\n temp = response.data[0].decks;\n } else { temp = []; }\n\n return temp;\n } catch (error) {\n throw error;\n }\n};\n\nexport const apiRemoveShare = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"fkdeckid\", data.fkdeckid);\n form.append(\"owner\", data.owner ? 1 : 0);\n form.append(\"active\",0);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get decks');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"removeShareDeck\"\n },\n data: form\n });\n \n let temp;\n if (typeof response.data[0].decks !== 'undefined') {\n temp = response.data[0].decks;\n } else { temp = []; }\n\n return temp;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiGetPublicDecks = async (data) => {\n let form = new FormData();\n let obj = {\n mcid: data.mcid,\n key: data.key\n }\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get decks');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getPublicDecks\"\n },\n data: form\n });\n \n let results;\n if (typeof response.data[0].decks !== 'undefined') {\n if (!Array.isArray(response.data[0].decks)) {\n results = [];\n } else {\n results = response.data[0].decks;\n }\n } else { results = []; }\n return results;\n } catch (error) {\n throw error;\n }\n}\n\nexport const apiGetPremadeDecks = async (data) => {\n let form = new FormData();\n let obj = {\n mcid: data.mcid,\n key: data.key\n }\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", 'get decks');\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getPremadeDecks\"\n },\n data: form\n });\n \n return response.data;\n } catch (error) {\n throw error;\n }\n}","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiGetQuestion = async (request, type) => {\n let form = new FormData();\n \n form.append(\"mcid\", request.mcid);\n form.append(\"gameMode\", request.gamemode);\n form.append(\"key\", request.key);\n\n if (typeof request.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", request.tracking.pathname);\n form.append(\"pagevia\", request.tracking.pagevia);\n form.append(\"action\", 'get questions');\n form.append(\"os\", request.tracking.os);\n form.append(\"ua\", request.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n if(typeof request.deckID !== 'undefined' && (request.gamemode > 2)) {\n form.append(\"deckID\", request.deckID);\n form.append('detail', request.deckID);\n form.append('detailvar', 'deckID');\n } \n \n if (typeof request.yearvar !== 'undefined' && request.yearvar) {\n form.append(\"yearvar\", request.yearvar);\n form.append('detail', request.yearvar);\n form.append('detailvar', 'yearvar');\n }\n \n if (typeof request.areavar !== 'undefined' && request.areavar) {\n form.append(\"areavar\", request.areavar);\n }\n \n if (typeof request.questionID !== 'undefined') { \n form.append('questionID', request.questionID);\n form.append('detailvar2', request.questionID);\n }\n\n if (typeof request.previousQuestionID !== 'undefined') { \n form.append('previousQuestionID', request.previousQuestionID);\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getQuestion\"\n },\n data: form\n });\n\n let temp = response.data;\n\n console.log(`request: `, request);\n console.log(`temp: `, temp);\n\n if (Array.isArray(temp)) {\n temp = temp[0];\n } else if (typeof temp.explanation !== 'undefined' && temp.explanation !== '') {\n temp = temp;\n } else if (!Array.isArray(temp)) {\n temp = [];\n }\n\n return temp;\n\n } catch(error) {\n throw error;\n }\n}\n\nexport const apiRemoveQuestion = async (request) => {\n let form = new FormData();\n form.append(\"mcid\", request.mcid);\n form.append(\"key\", request.key);\n form.append(\"deckID\", request.deckID);\n form.append('questionID', request.questionid);\n\n if (typeof request.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", request.tracking.pathname);\n form.append(\"pagevia\", request.tracking.pagevia);\n form.append(\"action\", 'get questions');\n form.append(\"os\", request.tracking.os);\n form.append(\"ua\", request.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"removeQuestion\"\n },\n data: form\n });\n\n let temp = response.data;\n\n return temp;\n\n } catch(error) {\n throw error;\n }\n}\n\nexport const apiGetSingleQuestion = async (request, type) => {\n let form = new FormData();\n let obj = {\n mcid: request.mcid,\n questionid: request.questionid,\n key: request.key,\n };\n form.append(\"mcid\", request.mcid);\n form.append(\"gameMode\", request.gamemode);\n form.append(\"questionid\", request.questionid);\n form.append(\"key\", request.key);\n\n if (typeof request.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", request.tracking.pathname);\n form.append(\"pagevia\", request.tracking.pagevia);\n form.append(\"action\", 'get questions');\n form.append(\"os\", request.tracking.os);\n form.append(\"ua\", request.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n form.append('detail', request.questionid);\n form.append('detailvar', 'questionID');\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getSingleQuestion\"\n },\n data: form\n });\n\n let temp = response.data;\n\n if (Array.isArray(temp)) {\n temp = temp[0];\n } else if (!Array.isArray(temp)) {\n temp = [];\n }\n\n return temp;\n\n } catch(error) {\n throw error;\n }\n}","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const buttonStyles = makeStyles({\n primary: {\n borderRadius: \"3px !important\",\n border: 0,\n height: 48,\n padding: \"0 30px\",\n // boxShadow: \"0 3px 5px 2px rgba(181, 181, 181, .71)\",\n textTransform: \"capitalize\",\n fontSize: 14\n },\n label: {\n textTransform: \"capitalize\"\n },\n questionButtonsContainer: {\n padding: \"5px 20px !important\",\n textTransform: \"none !important\",\n },\n deckCardButtons: {\n padding: \"8px !important\",\n // marginTop: \"15px !important\",\n // marginLeft: \"15px !important\",\n spacing: 1,\n background: \"linear-gradient(45deg, #FCFDFC 30%, #FCFDFC 90%)\",\n color: \"rgba(152, 152, 152, 1)\"\n },\n deckCardButtonText: {\n marginTop: \"4px\",\n color: \"rgba(152, 152, 152, 1)\",\n fontSize: \"0.475rem\",\n textAlign: \"center\",\n fontWeight: \"700\"\n },\n answerButtons: {\n padding: 10\n },\n homeDeckButton: {\n width: \"5em\",\n height: \"7em !important\",\n marginLeft: \"8px\",\n marginBottom: \"8px\",\n padding: \"4px !important\",\n borderRadius: \"8px !important\",\n transition: \"none !important\",\n boxShadow: \"2px 3px 5px rgba(170,175,167, .5) !important\"\n },\n deckButtons: {\n color: \"rgba(152, 152, 152, 1)\"\n },\n homeCustomDeckButtons: {\n height: \"5em\"\n },\n otherAnswerOptions: {\n borderRadius: \"0 !important\"\n },\n firstAnswerOption: {\n borderBottomRightRadius: \"0 !important\",\n borderBottomLeftRadius: \"0 !important\"\n },\n lastAnswerOption: {\n borderTopRightRadius: \"0 !important\",\n borderTopLeftRadius: \"0 !important\"\n },\n lastHomeDeckButon: {\n paddingRight: 20\n },\n answerOptions: {\n padding: \"10px 5px\"\n }\n});\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const backgroundStyles = makeStyles({\n loginBackground: {\n background: \"rgba(178, 199, 227, 1)\"\n }\n});\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const cardStyles = makeStyles({\n root: {\n // background: \"#fff\",\n // borderRadius: 5,\n border: 0,\n // color: \"white\",\n height: \"100%\",\n padding: \"10px\"\n // boxShadow: \"0 3px 5px 2px rgba(255, 105, 135, .3)\"\n },\n questionContainer: {\n justifyContent: \"space-between\",\n padding: 10,\n border: 0,\n borderRadius: 3,\n background: \"#FFFFFF\",\n // boxShadow: \"0 3px 5px 2px rgba(181, 181, 181, .71)\",\n // height: \"100%\"\n overflowY: \"scroll\"\n },\n\n //DECK CONTAINER SECTION\n deckContainer: {\n justifyContent: \"space-between\",\n padding: 10,\n border: 0,\n borderRadius: 15,\n // boxShadow: \"0 3px 5px 2px rgba(181, 181, 181, .71)\",\n height: \"100%\"\n },\n //DECK CONTAINER SECTION ABOVE ^^\n homeDeckButtonContainer: {\n display: \"flex\",\n background: \"linear-gradient(45deg, transparent, transparent)\"\n },\n homeDeckContainer: {\n justifyContent: \"space-between\",\n padding: \"1.5em\",\n borderRadius: 15,\n background: \"#e8e8e8\",\n // boxShadow: \"0 3px 5px 2px rgba(181, 181, 181, .71)\",\n height: \"11em !important\",\n width: \"8em !important\",\n marginLeft: \"10px !important\",\n marginRight: \"0px !important\",\n marginTop: \"5px !important\",\n marginBottom: \"10px !important\"\n },\n\n gridContainer: {\n paddingBottom: 10,\n paddingTop: 10,\n paddingLeft: 5,\n paddingRight: 5\n },\n deckButtonContainer: {\n display: \"flex\",\n flexDirection: \"flex-end\",\n marginTop: 10\n },\n //Test Cards\n testCardContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n // padding: \"0px !important\",\n border: 0,\n borderRadius: \"0px !important\",\n maxWidth: \"100% !important\",\n // boxShadow: \"0 3px 5px 2px rgba(181, 181, 181, .71)\",\n height: \"100%\"\n // marginTop: \"1.5em\",\n // marginBottom: \".5em\"\n },\n testCardTextContainer: {\n display: \"flex\",\n justifyContent: \"center\"\n },\n testCardRowContainer: {\n padding: 5\n },\n testCardTextGrid: {\n width: \"100%\"\n },\n testCardDivder: {\n flexBasis: \"0% !important\",\n marginTop: \".3em\",\n height: \"85%\"\n },\n questionTextContainer: {\n border: 0,\n paddingTop: \"0px !important\",\n height: \"100%\",\n padding: \"10px\"\n }\n});\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const colorPallete = makeStyles({\n //button colors\n root: {\n color: \"black\"\n },\n deckButtons: {\n color: \"rgba(152, 152, 152, 1)\"\n },\n primary: {\n background: \"linear-gradient(45deg, #00567a 30%, #00567a 90%)\",\n color: \"#f1f5f9\"\n },\n secondaryBlue: {\n background:\n \"linear-gradient(45deg, rgba(98, 181, 229, .5), rgba(98, 181, 229, .5))\",\n color: \"rgba(91, 114, 127, .5)\"\n },\n secondaryGreen: {\n background:\n \"linear-gradient(45deg, rgba(111, 162, 135, .4), rgba(111, 162, 135, .4))\",\n color: \"rgba(93, 104, 98, 1)\"\n },\n neutralLight: {\n background: \"linear-gradient(45deg, rgba(0, 0, 0 .15), rgba(0, 0, 0 .15))\",\n color: \"rgba(105, 105, 105, 1)\"\n },\n neutralDark: {\n background: \"linear-gradient(45deg, #7c878e 30%, #7c878e 90%)\",\n color: \"#f1f5f9\"\n },\n neutralGreen: {\n background:\n \"linear-gradient(45deg, rgba(229, 240, 223, 1) 30%, rgba(229, 240, 223, 1) 90%)\",\n color: \"rgba(152, 152, 152, 1)\",\n \":hover\": {\n background:\n \"linear-gradient(45deg, rgba(229, 240, 223, 1) 30%, rgba(229, 240, 223, 1) 90%)\"\n }\n },\n neutralBlue: {\n background:\n \"linear-gradient(45deg, rgba(178, 199, 227, 1), rgba(178, 199, 227, 1))\",\n color: \"rgba(152, 152, 152, 1)\"\n },\n accentGreen: {\n background: \"linear-gradient(45deg, #a1d884 30%, #a1d884 90%)\",\n color: \"rgba(152, 152, 152, 1)\"\n },\n accentAqua: {\n background:\n \"linear-gradient(45deg, rgba(98, 181, 229, .5), rgba(98, 181, 229, .5))\",\n color: \"rgba(0, 0, 0, .5)\"\n },\n accentBlue: {\n background:\n \"linear-gradient(45deg, rgba(0, 86, 122, .45), rgba(0, 86, 122, .45))\",\n color: \"rgba(65, 84, 92, 1)\"\n },\n accentRed: {\n background:\n \"linear-gradient(45deg, rgba(214, 164, 97, .5), rgba(214, 164, 97, .5))\",\n color: \"rgba(111, 99, 82, 1)\"\n },\n accentOrange: {\n background: \"linear-gradient(45deg, #d6a461 30%, #d6a461 90%)\",\n color: \"#f1f5f9\"\n },\n accentYellow: {\n background:\n \"linear-gradient(45deg, rgba(210, 215, 85, .5), rgba(210, 215, 85, .5))\",\n color: \"rgba(110, 112, 79, 1)\"\n },\n questionButtons: {\n height: \"100%\",\n background:\n \"linear-gradient(45deg, rgba(0, 0, 0, .08) 30%, rgba(0, 0, 0, .08) 90%) !important\",\n color: \"rgba(0, 0, 0, .9) !important\",\n width: \"100%\",\n padding: \"10px !important\",\n \"&:disabled\": {\n opacity: 0.3\n }\n },\n trueQuestionButtons: {\n height: \"100%\",\n background:\n \"linear-gradient(45deg, rgba(98, 181, 229, .3) 30%, rgba(98, 181, 229, .3) 90%) !important\",\n color: \"rgba(0, 0, 0, .9)\",\n width: \"100%\",\n padding: \"10px !important\"\n },\n testTableButtons: {\n background:\n \"linear-gradient(45deg, rgba(241, 249, 255, 1), rgba(241, 249, 255, 1))\"\n },\n //Text Colors\n neutralLightText: {\n color: \"rgba(112, 112, 112, 1)\"\n },\n neutralGreenText: {\n color: \"rgba(114, 120, 111, 1)\"\n },\n neutralBlueText: {\n color: \"rgba(89, 99, 113, 1)\"\n },\n darkBlueText: {\n color: \"rgba(8, 86, 122, 1)\"\n },\n lightBlueText: {\n color: \"rgba(120, 124, 127, 1)\"\n },\n primaryText: {\n color: \"#00567a\"\n },\n accentRedText: {\n color: \"rgba(111, 99, 82, 1) !important\"\n },\n accentYellowText: {\n color: \"rgba(110, 112, 79, 1) !important\"\n },\n accentBlueText: {\n color: \"rgba(65, 84, 92, 1)\"\n },\n secondaryBlueText: {\n color: \"rgba(91, 114, 127, .5) !important\"\n },\n secondaryGreenText: {\n color: \"rgba(93, 104, 98, 1) !important\"\n },\n\n //Card Colors\n neutralBlueCard: {\n background: \"rgba(178, 199, 227, 1) !important\",\n color: \"rgba(152, 152, 152, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(144, 155, 169, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(178, 199, 227, 1) 30%, rgba(178, 199, 227, 1) 90%) !important\"\n }\n },\n neutralGreenCard: {\n background: \"rgba(229, 240, 223, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(170, 175, 167, 1) !important\",\n color: \"rgba(152, 152, 152, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(229, 240, 223, 1) 30%, rgba(229, 240, 223, 1) 90%) !important\"\n }\n },\n accentBlueCard: {\n background: \"rgba(0, 86, 122, .45) !important\",\n color: \"rgba(65, 84, 92, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(122, 141, 150, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(0, 86, 122, .45) 30%, rgba(0, 86, 122, .45) 90%) !important\"\n }\n },\n secondaryBlueCard: {\n background: \"rgba(98, 181, 229, .5) !important\",\n color: \"rgba(91, 114, 127, .5) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(140, 161, 173, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(98, 181, 229, .5) 30%, rgba(98, 181, 229, .5) 90%) !important\"\n }\n },\n secondaryGreenCard: {\n background: \"rgba(111, 162, 135, .4) !important\",\n color: \"rgba(93, 104, 98, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(151, 161, 156, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(111, 162, 135, .4) 30%, rgba(111, 162, 135, .4) 90%) !important\"\n }\n },\n neutralLightCard: {\n background: \"rgba(0, 0, 0 .15) !important\",\n color: \"rgba(105, 105, 105, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(165, 165, 165, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(0, 0, 0 .15) 30%, rgba(0, 0, 0 .15) 90%) !important\"\n }\n },\n accentYellowCard: {\n background: \"rgba(210, 215, 85, .5) !important\",\n color: \"rgba(110, 112, 79, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(168, 170, 137, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(210, 215, 85, .5) 30%, rgba(210, 215, 85, .5) 90%) !important\"\n }\n },\n accentRedCard: {\n background: \"rgba(214, 164, 97, .5) !important\",\n color: \"rgba(111, 99, 82, 1) !important\",\n border: \"1px solid !important\",\n borderColor: \"rgba(169, 157, 140, 1) !important\",\n \"&:hover\": {\n background:\n \"linear-gradient(45deg, rgba(214, 164, 97, .5) 30%, rgba(214, 164, 97, .5) 90%) !important\"\n }\n },\n //\n lightBlueCard: {\n background: \"rgba(241, 249, 255, 1)\",\n color: \"rgba(120, 124, 127, 1)\"\n },\n correctGradedButtons: {\n height: \"100%\",\n background:\n \"linear-gradient(45deg, rgba(161, 216, 132, .5) 30%, rgba(161, 216, 132, .5) 90%) !important\",\n color: \"rgba(0, 0, 0, .9)\",\n width: \"100%\",\n padding: \"10px !important\"\n },\n incorrectGradedButtons: {\n height: \"100%\",\n background:\n \"linear-gradient(45deg, rgba(192, 125, 89, .5) 30%, rgba(192, 125, 89, .5) 90%) !important\",\n color: \"rgba(0, 0, 0, .9)\",\n width: \"100%\",\n padding: \"10px !important\"\n },\n correctQuestionButtons: {\n height: \"100%\",\n background:\n \"linear-gradient(45deg, rgba(161, 216, 132, .5) 30%, rgba(161, 216, 132, .5) 90%) !important\",\n color: \"rgba(0, 0, 0, .9)\",\n width: \"100%\",\n padding: \"10px !important\"\n },\n incorrectQuestionButtons: {\n height: \"100%\",\n background:\n \"linear-gradient(45deg, rgba(192, 125, 89, .5) 30%, rgba(192, 125, 89, .5) 90%) !important\",\n color: \"rgba(0, 0, 0, .9)\",\n width: \"100%\",\n padding: \"10px !important\"\n },\n submitButtons: {\n height: \"4em\",\n background:\n \"linear-gradient(45deg, rgba(0, 0, 0, .08) 30%, rgba(0, 0, 0, .08) 90%) !important\",\n color: \"rgba(0, 0, 0, .9) !important\",\n width: \"100%\",\n marginBottom: \"15px\",\n padding: \"10px !important\",\n \"&:disabled\": {\n background:\n \"linear-gradient(45deg, rgba(0, 0, 0, .08) 30%, rgba(0, 0, 0, .08) 90%) !important\",\n color: \"rgba(0, 0, 0, .9) !important\"\n }\n }\n});\n","import { makeStyles } from \"@material-ui/core/styles\";\n\nexport const textStyles = makeStyles({\n root: {\n color: \"black\"\n },\n testCardText: {\n textAlign: \"center\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n alignContent: \"center\",\n fontSize: \"14px !important\"\n },\n italics: {\n fontStyle: \"italic\"\n },\n bold: {\n fontWeight: \"bold !important\"\n },\n testCardYearText: {\n textAlign: \"center\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n alignContent: \"center\",\n fontSize: \"20px !important\"\n },\n homeDeckCardsText: {\n textTransform: \"uppercase !important\",\n fontSize: \".9rem !important\",\n marginBottom: \"0px !important\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis !important\"\n }\n});\n","import React from \"react\";\n\nexport const AUABarSolidIcon = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUABookOpenSolid = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAChevronLeftSolid = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAFrownRegular = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAGraduationCapSolid = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAHomeIcon = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAMehIcon = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAPhotoVideoIcon = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAPlayCircle = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAPodcast = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUASmile = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUATablet = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAUniversityIcon = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAUserMD = props => {\n return (\n \n )\n}","import React from \"react\";\n\nexport const AUAYouTube = props => {\n return (\n \n )\n}","import React from \"react\";\n\nimport { buttonStyles, cardStyles, colorPallete, textStyles } from \"../styles\";\nimport { isMobileOnly, isTablet, isElectron, isAndroid, isIOS, deviceDetect, deviceType, isIOS13, isBrowser } from 'react-device-detect';\nimport { APPID, APPVERSION, APPYEAR, APPDAY } from \"./globals\";\n\nimport FormatQuoteIcon from '@material-ui/icons/FormatQuote';\nimport LocalHospitalIcon from '@material-ui/icons/LocalHospital';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\nimport DevicesIcon from '@material-ui/icons/Devices';\nimport LibraryBooksIcon from '@material-ui/icons/LibraryBooks';\nimport VideoLibrarySharpIcon from '@material-ui/icons/VideoLibrarySharp';\nimport VideoLibraryIcon from '@material-ui/icons/VideoLibrary';\nimport AssessmentIcon from '@material-ui/icons/Assessment';\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\nimport OndemandVideoIcon from '@material-ui/icons/OndemandVideo';\nimport SpeakerIcon from '@material-ui/icons/Speaker';\nimport CodeIcon from '@material-ui/icons/Code';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { \n faGraduationCap, faUniversity, faBook, faBookmark, \n faHeadphones, faNewspaper, faTabletAlt, faVideo, faTablets,\n faHome, faCog, faUserMd, faPlay, faPlayCircle, faSitemap, faFireAlt,\n faStar, faFileAlt, faFile, faFileMedicalAlt, faTimes, faBox, faSquare, faPlus, faShare, faSearch, faInbox, faCalendarAlt, faFolderPlus, faCertificate, faBookMedical, faBalanceScale, faBalanceScaleLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { trackPage } from \"../actions\";\n\nimport { \n AUABarSolidIcon, AUABookOpenSolid, AUAChevronLeftSolid,\n AUAFrownRegular, AUAGraduationCapSolid, AUAHomeIcon, AUAMehIcon,\n AUAPodcast, AUAPhotoVideoIcon, AUAPlayCircle, AUASmile,\n AUATablet, AUAUniversityIcon, AUAUserMD, AUAYouTube\n} from \"../svg\";\n\nexport const hasLegal = () => {\n const thisday = Number(localStorage.getItem('auauapp_AILegalStatementDAY')) ? Number(localStorage.getItem('auauapp_AILegalStatementDAY')) : 0;\n\n const thisyear = Number(localStorage.getItem('auauapp_AILegalStatementYEAR')) ? Number(localStorage.getItem('auauapp_AILegalStatementYEAR')) : 0;\n\n console.log(`thisyear: ${thisyear} | thisday: ${thisday}`);\n let bool = false;\n\n if (APPYEAR() > thisyear) {\n bool = true;\n } else if (APPYEAR() === thisyear && APPDAY() > thisday) {\n bool = true;\n }\n\n return bool;\n}\n\nexport const getAUAIcon = (icon) => {\n switch(icon) {\n case 'AUALegal': {\n return ; \n }\n case 'AUALegalLeft': {\n return ; \n }\n case 'AUAHeadPhones': {\n return ;\n }\n case 'AUATestingIcon': {\n return ;\n }\n case 'AUANewsIcon': {\n return ;\n }\n case 'CoursesIcon': {\n return ;\n }\n case 'CertificatesIcon': {\n return ;\n }\n case 'AUAFileIcon': {\n return ;\n }\n case 'AUAMedicalFileIcon': {\n return ;\n }\n case 'AUABarSolidIcon': {\n return \n }\n case 'AUABookOpenSolid': {\n return \n }\n case 'AUAChevronLeftSolid': {\n return \n }\n case 'AUAGraduationCapSolid': {\n return \n }\n case 'AUAHomeIcon': {\n return \n }\n case 'AUAFrownIcon':\n case 'AUAFrownRegular': {\n return \n }\n case 'AUAMehIcon': {\n return \n }\n case 'AUASmile':\n case 'AUASmileIcon': {\n return \n }\n case 'AUAPodcast': {\n return \n }\n case 'AUAPhotoVideoIcon': {\n return \n }\n case 'AUAPlayCircle': {\n return \n }\n case 'AUATablet': {\n return \n }\n case 'AUAUniversityIcon': {\n return \n }\n case 'AUAUserMD': {\n return \n }\n case 'AUAYouTube': {\n return \n }\n case 'AUAGuidelines': {\n return ;\n }\n case 'BookMarksIcon': {\n return ;\n }\n case 'InboxIcon': {\n return ;\n }\n case 'AnnualMeetingIcon': {\n return ;\n }\n case 'SearchIcon': {\n return \n }\n case 'IPOCIcon': {\n // return ;\n return ;\n }\n case 'IPOCUnclaimedIcon': {\n return ;\n }\n default: {\n return getIcon(icon);\n }\n }\n}\n\nexport const getIcon = (icon, fontSize) => {\n if (typeof fontSize === 'undefined' || fontSize === null) { fontSize = \"2.5em\"; }\n switch(icon) {\n case 'IPOCIcon': {\n // return ;\n return ;\n }\n case 'IPOCUnclaimedIcon': {\n return ;\n }\n case 'NewFolderIcon': {\n return ;\n }\n case 'InboxIcon': {\n return ;\n }\n case 'SearchIcon': {\n return \n }\n case 'ShareIcon': {\n return \n }\n case 'BookMarksIcon': {\n return ;\n }\n case 'CoursesIcon': {\n return ;\n }\n case 'AcceptIcon':\n case 'AddIcon': {\n return ;\n }\n case 'CloseIcon':\n case 'CancelIcon': {\n return ;\n }\n case 'CertificatesIcon': {\n return ;\n }\n case 'CoreCurriculumIcon':\n case 'seminalref': {\n return ;\n }\n case 'auaref': {\n return ;\n }\n case 'PodCastsIcon': \n case 'AUAHeadPhones': {\n return ;\n }\n case 'AUANewsIcon': \n case 'GuideLinesIcon': {\n return ;\n }\n case 'AppIcon':\n case 'UpdateSeriesIcon': {\n return ;\n }\n case 'CoreCurriculumVideosIcon': {\n return ;\n }\n case 'PlayCircleIcon': {\n return ;\n }\n case 'PlayIcon': {\n return ;\n }\n case 'SpeakerIcon': {\n return ;\n }\n case 'FormatQuoteIcon': {\n return ;\n }\n case 'LocalHospitalIcon': {\n return ;\n }\n case 'QuestionAnswerIcon': {\n return ;\n }\n case 'DevicesIcon': {\n return ;\n }\n case 'LibraryBooksIcon': {\n return ;\n }\n case 'VideoLibrarySharpIcon': {\n return ;\n }\n case 'VideoLibraryIcon': {\n return ;\n }\n case 'AssessmentIcon': {\n return ;\n }\n case 'PictureAsPdfIcon': {\n return ;\n }\n case 'OndemandVideoIcon': {\n return ;\n }\n case 'CodeIcon': {\n return ;\n }\n case 'HomeIcon': {\n return ;\n // return \n }\n case 'AccountCircleIcon': {\n return ;\n // return \n }\n case 'SettingsIcon': {\n return ;\n // return \n }\n default: {\n return null;\n }\n }\n}\n\nexport const clearLocalStorage = () => {\n localStorage.removeItem('sasp-hideDaily');\n localStorage.removeItem('sasp-dailyEpoch');\n localStorage.removeItem('sasp-ratingEpoch');\n localStorage.removeItem('sasp-hideVersion');\n return false;\n}\n\nexport const stylePicker = (type, category) => {\n const classes = styleCategory(category);\n switch (type) {\n case \"primary\":\n return classes.primary;\n case \"secondaryBlue\":\n return classes.secondaryBlue;\n case \"secondaryGreen\":\n return classes.secondaryGreen;\n case \"neutralLight\":\n return classes.neutralLight;\n case \"neutralDark\":\n return classes.neutralDark;\n case \"neutralGreen\":\n return classes.neutralGreen;\n case \"accentGreen\":\n return classes.accentGreen;\n case \"accentAqua\":\n return classes.accentAqua;\n case \"accentBlue\":\n return classes.accentBlue;\n case \"accentRed\":\n return classes.accentRed;\n case \"accentOrange\":\n return classes.accentOrange;\n case \"accentYellow\":\n return classes.accentYellow;\n case \"questionButtons\":\n return classes.questionButtons;\n case \"dynamicButton\":\n return classes.dynamicButton;\n case \"trueQuestionButtons\":\n return classes.trueQuestionButtons;\n default:\n return classes.primary;\n }\n};\n\nexport const getPGY = (val) => {\n switch(val) {\n case 11:\n case '11': {\n return 'PGY1'\n }\n case 12:\n case '12': {\n return 'PGY2'\n }\n case 13:\n case '13': {\n return 'PGY3'\n }\n case 14:\n case '14': {\n return 'PGY4'\n }\n case 15:\n case '15': {\n return 'PGY5 (non-chief)'\n }\n case 16:\n case '16': {\n return 'PGY5/6 (chief)'\n }\n default: \n return 'not a valid pgy level';\n }\n}\n\nexport const logErr = () => {\n // console.error();\n};\n\nexport const colorPicker = color => {\n const colors = colorPallete();\n switch (color) {\n case \"primary\":\n return colors.primary;\n case \"secondaryBlue\":\n return colors.secondaryBlue;\n case \"secondaryGreen\":\n return colors.secondaryGreen;\n case \"neutralLight\":\n return colors.neutralLight;\n case \"neutralDark\":\n return colors.neutralDark;\n case \"neutralGreenCard\":\n return colors.neutralGreenCard;\n case \"neutralGreen\":\n return colors.neutralGreen;\n case \"neutralBlue\":\n return colors.neutralBlue;\n case \"neutralBlueCard\":\n return colors.neutralBlueCard;\n case \"neutralBlueText\":\n return colors.neutralBlueText;\n case \"accentGreen\":\n return colors.accentGreen;\n case \"accentAqua\":\n return colors.accentAqua;\n case \"accentBlue\":\n return colors.accentBlue;\n case \"accentRed\":\n return colors.accentRed;\n case \"accentOrange\":\n return colors.accentOrange;\n case \"accentYellow\":\n return colors.accentYellow;\n case \"questionButtons\":\n return colors.questionButtons;\n case \"dynamicButton\":\n return colors.dynamicButton;\n case \"trueQuestionButtons\":\n return colors.trueQuestionButtons;\n case \"correctGradedButtons\":\n return colors.correctGradedButtons;\n case \"correctQuestionButtons\":\n return colors.correctQuestionButtons;\n case \"incorrectGradedButtons\":\n return colors.incorrectGradedButtons;\n case \"incorrectQuestionButtons\":\n return colors.incorrectQuestionButtons;\n case \"neutralLightCard\":\n return colors.neutralLightCard\n case \"neutralLightText\":\n return colors.neutralLightText\n case \"secondaryBlueCard\":\n return colors.secondaryBlueCard\n case \"secondaryBlueText\":\n return colors.secondaryBlueText\n case \"accentYellowCard\":\n return colors.accentYellowCard\n case \"accentYellowText\":\n return colors.accentYellowText\n case \"accentRedCard\":\n return colors.accentRedCard\n case \"accentRedText\":\n return colors.accentRedText\n case \"accentBlueCard\":\n return colors.accentBlueCard\n case \"accentBlueText\":\n return colors.accentBlueText\n case \"secondaryGreenText\":\n return colors.secondaryGreenText\n case \"secondaryGreenCard\":\n return colors.secondaryGreenCard\n case \"submitButtons\":\n return colors.submitButtons\n default:\n return;\n }\n};\n\nconst styleCategory = type => {\n switch (type) {\n case \"button\":\n return buttonStyles();\n case \"deck\":\n return cardStyles();\n case \"text\":\n return textStyles();\n default:\n return buttonStyles();\n }\n};\n\nexport const textValidate = (text, type) => {\n if (type === \"id\") {\n return /^[0-9]{8}$/.test(text);\n }\n if (type === \"email\") {\n return /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/.test(\n text\n );\n }\n if (type === \"password\") {\n return /^[\\w\\s\\W]{6,}$/.test(text);\n }\n};\n\nexport const hashString = (string) => {\n let hash = 0, i, chr;\n if (string.length === 0) return hash;\n for (i = 0; i < string.length; i++) {\n chr = string.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n}\n\nexport const deviceData = (location, action) => {\n if (typeof action !== 'undefined') { action = 'navigate'; }\n let pageVia = 'SASP ' + deviceType + ' App';\n\n let _type = 'mobile';\n\n if (isTablet) { _type = 'tablet' } else if (isElectron) { _type = 'testing' }\n\n if (isAndroid) {\n pageVia = `SASP Android ${_type} App`;\n } else if (isIOS) {\n pageVia = `SASP iOS ${_type} App`;\n } else if (isElectron) {\n pageVia = `SASP Electron ${_type} App`;\n }\n\n let device = deviceDetect();\n\n let obj = {\n pathname : location.pathname,\n pagevia : pageVia,\n action : action,\n os : 'unknown',\n ua : 'unknown',\n appid: APPID,\n appversion: APPVERSION,\n };\n\n if (isElectron || isBrowser) {\n obj.os = device.osName + ' ' + device.osVersion;\n obj.ua = device.userAgent;\n\n } else if (isIOS) {\n obj.os = device.os + ' ' + device.model + ' ' + device.osVersion;\n obj.ua = device.ua;\n } else if (isAndroid) {\n obj.os = 'android';\n obj.ua = 'android';\n\n if (typeof device.os !== 'undefined' && typeof device.model !== 'undefined' && typeof device.osVersion !== 'undefined') {\n obj.os = device.os + ' ' + device.model + ' ' + device.osVersion;\n } else if (typeof device.osName !== 'undefined') {\n obj.os = device.osName + ' ' + device.osVersion;\n }\n\n if (typeof device.ua !== 'undefined') {\n obj.ua = device.ua;\n } else if (typeof device.userAgent !== 'undefined') {\n obj.ua = device.userAgent;\n }\n }\n\n return obj;\n}\n\nexport const getSASPURI = (year) => {\n return 'https://auau.auanet.org/content/self-assessment-study-program-sasp-' + year;\n}\n\nexport const getSASPFacultyURI = (year) => {\n return 'https://auau.auanet.org/content/self-assessment-study-program-sasp-' + year + '#group-tabs-node-course-default2';\n}\n\nexport const getPastThreeYearsArr = () => {\n let arr = [];\n\n const d = new Date();\n const y = d.getFullYear();\n\n for (let i = 0; i < 3; i-- ) {\n arr.push(y - i);\n }\n\n return arr;\n}\n\nexport const remoteURL = (uri) => {\n if (window.cordova) {\n if (window.cordova.InAppBrowser) {\n let type = '_blank';\n return window.cordova.InAppBrowser.open(uri, type, 'location=yes');\n } \n }\n\n return null;\n}\n\nexport const makeList = (arrs) => {\n let r = '';\n let c = 0;\n for (const index in arrs) {\n if (arrs[index]) {\n if (c > 0) {\n r += ',';\n }\n\n r += index;\n c++;\n }\n }\n return r;\n}\n\nexport const scrollTop = (id, offset) => {\n if (typeof id === 'undefined') { id = 'root'; }\n if (typeof offset === 'undefined') { offset = 54; }\n\n let elem = document.getElementById(id);\n\n if (elem) {\n elem.scrollTo({top: offset, behavior: \"smooth\"});\n }\n\n \n return null;\n}\n\nexport const killCopy = () => {\n return false;\n}\n\nexport const reEnable = () => {\n return true;\n}\n\nexport const preventCopy = () => {\n\n return false;\n if (isElectron || isBrowser) {\n document.onselectstart = new Function (\"return false\")\n\n if (window.sidebar) {\n document.onmousedown = killCopy\n document.onclick = reEnable\n }\n } else {\n return false;\n } \n}\n\nexport const masterHandleClose = (target, r, a, t, id) => {\n if (typeof id === 'undefined') {id = 1} \n if (typeof t === 'undefined') { t = 'sasp-hideDaily'}\n\n let elem = document.getElementById(target);\n elem.classList.remove(r);\n localStorage.setItem(t, id);\n\n if (typeof a !== 'undefined') {\n elem.classList.add(a);\n }\n\n return null;\n}\n\nexport const clearStorage = (item) => {\n if (typeof item !== 'undefined' && localStorage.getItem(item) !== null) {\n localStorage.removeItem(item);\n } else if (item === 'org.auanet.auau.sasp') {\n // localStorage.clear();\n clearLocalStorage();\n localStorage.removeItem('user_details');\n localStorage.removeItem('login_dt');\n localStorage.removeItem('auth_feedback');\n }\n\n return null;\n}\n\nexport const getThisYear = () => {\n let _d = new Date();\n let _y = _d.getFullYear();\n\n return _y;\n}\n\nexport const checkDailyEpoch = (target, interval) => {\n if (typeof target === 'undefined') { target = 'sasp-dailyEpoch'; }\n if (typeof interval === 'undefined') { interval = 1; }\n\n if (localStorage.getItem(target) === null) { \n let d = Date.now();\n\n localStorage.setItem(target, d);\n return true;\n } else {\n let d = Date.now();\n\n let p = Number(localStorage.getItem(target));\n\n let _d = new Date(d);\n let _p = new Date(p);\n\n _d.setHours(0);\n _d.setMinutes(0);\n _d.setSeconds(0);\n _d.setMilliseconds(0);\n\n _p.setHours(0);\n _p.setMinutes(0);\n _p.setSeconds(0);\n _p.setMilliseconds(0);\n\n let diff = (_d - _p);\n diff = Math.ceil(Math.abs((_d - _p) / 1000 * 60 * 60 * 24));\n\n if (diff >= interval || localStorage.getItem(target) === null) {\n localStorage.setItem(target, d);\n return true;\n } else {\n return false;\n }\n }\n}\n\nexport const getLoadingPhrases = (int) => {\n const str = [\n 'Checking Authorization...',\n 'Making Database Connection...',\n 'Verifying Access...',\n 'Accessing Resident Results...',\n 'Loading Results (resident)...',\n 'Loading Results (peer group)...',\n 'Loading Results (user)...',\n 'Calculating Rankings...',\n 'Syncing Data...',\n 'Finalizing Setup...',\n ];\n\n if (int < 10) {\n return str[int];\n }\n\n // console.log(`int: ${int} | mod: ${int & 7} | str: ${str[int % 7]}`);\n\n return str[9];\n}\n\nexport const alertDismissed = (func) => {\n func();\n return null;\n}\n\nexport const alertNotification = (obj) => {\n if (navigator.notification) {\n let func = () => {\n\n }\n if (typeof obj.callback === 'function') { func = obj.callback; }\n switch (obj.type) {\n default: {\n navigator.notification.alert(\n obj.message, // message\n alertDismissed(func), // callback\n obj.title, // title\n obj.buttonName // buttonName\n );\n }\n }\n }\n\n return null;\n}\n\nexport const createMarkup = props => {\n return { __html: props };\n};\n\nexport const reloadPage = (bool) => {\n \n return window.location.reload(bool);;\n};\n\nexport const setColorObj = (type) => {\n let r;\n\n switch (type) {\n default: {\n r = {\n deck: \"neutralGreenCard\",\n text: \"neutralGreenText\",\n button: \"neutralGreenCard\"\n }\n }\n }\n return r;\n};","import { INSTANCE_TOKEN, IOS_TOKEN } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nexport const showMessage = (msg) => {\n}\n\nexport const closeAlert = () => {\n return null\n}\n\nexport const webNotifFunc = async (fcm_messages) => {\n try {\n if (Notification.permission !== 'granted') {\n await Notification.requestPermission().then((permission) => {\n });\n await fcm_messages.requestPermission();\n }\n\n const token = await fcm_messages.firebaseDependencies.installations.getToken();\n\n if (localStorage.getItem(INSTANCE_TOKEN) !== token) {\n localStorage.setItem(INSTANCE_TOKEN, token);\n } \n } catch (e) {\n let _emsg = '';\n\n if (e.hasOwnProperty('code') && e.code === 'messaging/permission-default') {\n _emsg = 'You need to allow the site to send notifications';\n } else if (e.hasOwnProperty('code') && e.code === 'messaging/permission-blocked') {\n _emsg = 'Currently, the site is blocked from sending notifications. \\nPlease unblock the same in your browser settings';\n } else {\n _emsg = 'Unable to subscribe you to notifications';\n }\n\n if (navigator.notification) {\n navigator.notification.alert(\n _emsg, \n closeAlert, \n 'Error', \n 'Close'\n );\n } else {\n }\n }\n\n return navigator.serviceWorker.addEventListener(\"message\", ({data}) => {\n showMessage(data);\n });\n}\n\nexport const iosNotifFunc = () => {\n try {\n if (window.FCMPlugin) {\n window.FCMPlugin.getToken(function(fcmToken){\n localStorage.setItem(INSTANCE_TOKEN, fcmToken);\n });\n\n window.FCMPlugin.onTokenRefresh(function(fcmToken){\n localStorage.setItem(INSTANCE_TOKEN, fcmToken);\n });\n\n window.FCMPlugin.onNotification(function(data){\n if(data.wasTapped){\n } else {\n }\n });\n\n } else if (window.FirebasePlugin) {\n }\n \n } catch (e) {\n let _emsg = 'Firebase not avaiable...';\n if (navigator.notification) {\n navigator.notification.alert(\n _emsg, \n closeAlert, \n 'Error', \n 'Close'\n );\n } else {\n }\n } \n}\n\nexport const androidNotifFunc = () => {\n try {\n if (window.FCMPlugin) {\n window.FCMPlugin.getToken(function(fcmToken){\n localStorage.setItem(INSTANCE_TOKEN, fcmToken);\n });\n\n window.FCMPlugin.onTokenRefresh(function(fcmToken){\n localStorage.setItem(INSTANCE_TOKEN, fcmToken);\n });\n\n window.FCMPlugin.onNotification(function(data){\n if(data.wasTapped){\n } else {\n }\n });\n } else if (window.FirebasePlugin) {\n } \n } catch (e) {\n let _emsg = 'Firebase not avaiable...';\n if (navigator.notification) {\n navigator.notification.alert(\n _emsg, \n closeAlert, \n 'Error', \n 'Close'\n );\n } else {\n }\n } \n}\n\nexport const setContainer = (bool) => {\n return { padding: \"0 16px 32px\", margin: \"calc(56px + env(safe-area-inset-top)) 0px 64px\", width: \"calc(100% - 32px)\", overflowY: \"auto\", overflowZ: \"hidden\"};\n\n if (bool) {\n if (isBrowser && !isElectron) {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n } else {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n }\n \n } else {\n if (isBrowser && !isElectron) {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n } else {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n }\n }\n}","import React from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { APPID, APPVERSION } from \"../common\";\nimport { BASE_AXIOS } from \"../config\";\n \nexport const apiGetSASPResidencyProgram = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getSASPResidencyProgram\"\n },\n data: form\n });\n\n if (typeof response.data !== 'object') {\n return null\n }\n \n return response.data; \n\n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n\nexport const apiSendSASPResidentAccess = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"residentid\", data.residentid);\n form.append(\"programid\", data.programid);\n form.append(\"accesslevel\", 1);\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"sendSASPResidentAccess\"\n },\n data: form\n });\n\n if (typeof response.data !== 'object') {\n return null\n }\n \n return response.data; \n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n\nexport const apiGetSASPResidenctData= async (data) => {\n console.log(data);\n \n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"residentid\", data.residentid);\n form.append(\"programid\", data.programid);\n form.append(\"accesslevel\", data.accesslevel);\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getSASPResidentData\"\n },\n data: form\n });\n\n console.log(response);\n\n if (typeof response.data !== 'object') {\n return null\n }\n \n return response.data; \n } catch (e) {\n console.log(e);\n throw e;\n }\n}\n\nexport const apiGetUserDetails = async (mcid, key, data) => {\n let form = new FormData();\n form.append(\"mcid\", mcid);\n form.append(\"key\", key);\n\n if (typeof data !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.pathname);\n form.append(\"pagevia\", data.pagevia);\n form.append(\"action\", data.action);\n form.append(\"os\", data.os);\n form.append(\"ua\", data.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const getUserDetailsResponse = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getUserDetails\"\n },\n data: form\n });\n\n console.log('mcid: ', mcid);\n console.log('key: ', key);\n console.log('getUserDetailsResponse: ', getUserDetailsResponse);\n\n if (typeof getUserDetailsResponse.data === 'string') {\n return ( )\n }\n let local = JSON.stringify(getUserDetailsResponse.data);\n localStorage.setItem('user_details', local);\n\n return getUserDetailsResponse.data;\n } catch (error) {\n throw error;\n }\n};\n\nexport const apiUpdateUser = async (data) => {\n\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"allowshare\", data.allowShare);\n form.append(\"allowsearch\", data.allowSearch);\n form.append(\"allowleaderboard\", data.allowLeaderboard);\n form.append(\"isDaily\", data.isDaily);\n form.append(\"hideOldData\", data.hideOldData);\n form.append(\"displayname\", data.displayName);\n form.append(\"yst\", data.yst);\n form.append(\"tl\", data.tl);\n form.append(\"allowProgram\", data.allowProgram ? 1 : 0);\n form.append(\"isResident\", data.isResident ? data.allowProgram : 0);\n form.append(\"appversion\", APPVERSION)\n\n if (typeof data.pkid !== 'undefined') {\n form.append(\"pkid\", data.pkid);\n form.append('type', 'ACCESSREQUEST')\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"editUserProfile\"\n },\n data: form\n });\n\n return response.data;\n } catch (e) {\n throw e;\n }\n}\n\nexport const apiGetLeaderboard = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.timespan !== 'undefined') {\n form.append('timespan', data.timespan);\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const leaderboardResults = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getLeaderboard\"\n },\n data: form\n });\n\n return leaderboardResults.data;\n } catch (e) {\n throw (e);\n }\n}\n\nexport const apiGetAccessList = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.programid !== 'undefined' && data.programid !== null) {\n form.append('programid', data.programid);\n }\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const accessListResults = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getAccessList\"\n },\n data: form\n });\n\n return accessListResults.data;\n } catch (e) {\n throw (e);\n } \n}\n\nexport const apiUpdateNotification = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n form.append(\"pkid\", data.pkid);\n form.append(\"state\", data.state);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const notifResults = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"updateNotification\"\n },\n data: form\n });\n\n return notifResults.data;\n } catch (e) {\n throw (e);\n } \n}\n\nexport const apiGetDailyQuestion = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n try {\n const notifResults = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getDailyQuestion\"\n },\n data: form\n });\n\n return notifResults.data;\n } catch (e) {\n throw (e);\n } \n}\n\nexport const apiRateApp = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n\n try {\n const results = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"updateRateApp\"\n },\n data: form\n });\n\n return results.data;\n } catch (e) {\n throw (e);\n } \n}\n\nexport const apiTrackPage = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid);\n form.append(\"key\", data.key);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n \n if (typeof data.tracking.detail !== 'undefined') {\n form.append(\"detail\", data.tracking.detail);\n }\n\n if (typeof data.tracking.detailvar !== 'undefined') {\n form.append(\"detailvar\", data.tracking.detailvar);\n }\n\n if (typeof data.tracking.detailvar2 !== 'undefined') {\n form.append(\"detailvar2\", data.tracking.detailvar2);\n }\n } \n\n try {\n const results = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"trackUsage\"\n },\n data: form\n });\n\n return results.data;\n } catch (e) {\n throw (e);\n } \n}","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiPutResponse = async (data) => {\n let form = new FormData();\n form.append(\"mcid\", data.mcid)\n form.append(\"key\", data.key);\n form.append(\"gamemode\", data.gamemode);\n form.append(\"optionSelected\", data.optionSelected);\n form.append(\"questionID\", data.questionID);\n\n if (typeof data.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", data.tracking.pathname);\n form.append(\"pagevia\", data.tracking.pagevia);\n form.append(\"action\", data.tracking.action);\n form.append(\"os\", data.tracking.os);\n form.append(\"ua\", data.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n if (typeof data.deckID !== 'undefined') { \n form.append(\"deckID\", data.deckID);\n }\n \n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"putResponse\"\n },\n data: form\n });\n \n return response.data[0];\n } catch (error) {\n throw error;\n }\n};\n\n\n","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiGetAllQuestions = async (userData) => {\n let form = new FormData();\n form.append(\"mcid\", userData.mcid);\n form.append(\"key\", userData.key);\n form.append(\"yearvar\", userData.yearvar);\n form.append(\"gamemode\", userData.gamemode);\n form.append(\"areavar\", userData.areavar);\n \n if (typeof userData.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", userData.tracking.pathname);\n form.append(\"pagevia\", userData.tracking.pagevia);\n form.append(\"action\", userData.tracking.action);\n form.append(\"os\", userData.tracking.os);\n form.append(\"ua\", userData.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n } \n \n try {\n const getAllQuestionsResponse = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getallquestions\"\n },\n data: form\n });\n\n console.log(`data: `, userData);\n console.log(`response: `, getAllQuestionsResponse);\n \n return getAllQuestionsResponse.data[0];\n } catch (error) { \n throw error;\n }\n};","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiGetQuestionResults = async (request, type) => {\n let form = new FormData();\n form.append(\"mcid\", request.mcid);\n form.append(\"gameMode\", request.gamemode);\n form.append(\"key\", request.key);\n\n if(typeof request.deckID !== 'undefined' && request.deckID !== null) {\n form.append(\"deckID\", request.deckID);\n if (typeof request.yearvar === 'undefined' && request.deckID !== null) {\n form.append('detail', request.deckID);\n form.append('detailvar', 'deckID');\n }\n }\n \n if (typeof request.questionID !== 'undefined') { \n form.append('questionID', request.questionID);\n form.append('detailvar2', request.questionID)\n } else if (typeof request.questionid !== 'undefined') { \n form.append('questionID', request.questionid);\n form.append('detailvar2', request.questionid)\n }\n\n if(typeof request.yearvar !== 'undefined') {\n form.append(\"yearvar\", request.yearvar);\n if (typeof request.deckID === 'undefined' && request.yearvar !== null) {\n form.append('detail', request.yearvar);\n form.append('detailvar', 'yearvar');\n }\n }\n\n if (typeof request.tracking !== 'undefined') {\n form.append(\"tracking\", 1);\n form.append(\"pathname\", request.tracking.pathname);\n form.append(\"pagevia\", request.tracking.pagevia);\n form.append(\"action\", 'get question results');\n form.append(\"os\", request.tracking.os);\n form.append(\"ua\", request.tracking.ua);\n form.append(\"appid\", APPID);\n form.append(\"appversion\", APPVERSION);\n }\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"getQuestionResults\"\n },\n data: form\n });\n\n let temp = response.data;\n if (typeof temp === 'string') { temp = JSON.parse(temp)}\n\n return temp[0];\n\n } catch(error) {\n throw error;\n }\n}","import { APPID, APPVERSION } from \"../common/globals\";\nimport { BASE_AXIOS } from \"../config\";\n\nexport const apiPutNextReviewDate = async (request, type) => {\n let form = new FormData();\n let obj = {\n mcid: request.mcid,\n gameMode: request.gamemode,\n key: request.key,\n deckID : request.deckID,\n questionID : request.questionID,\n hourvar : request.hourvar,\n };\n\n form.append(\"mcid\", request.mcid);\n form.append(\"gameMode\", request.gamemode);\n form.append(\"key\", request.key);\n form.append(\"deckID\", request.deckID);\n form.append(\"questionID\", request.questionID);\n form.append(\"hourvar\", request.hourvar);\n\n try {\n const response = await BASE_AXIOS().request({\n method: \"POST\",\n params: {\n method: \"putNextReviewDate\"\n },\n data: form\n });\n let temp = response.data;\n\n return temp[0];\n\n } catch(error) {\n throw error;\n }\n}","export const getIOSDevice = (model) => {\n let r = '';\n if (model.includes('iPhone')) {\n r = 'iphone';\n } else if (model.includes('iPad')) {\n r = 'ipad';\n }\n\n return r;\n}\n\nexport const apiGetDevice = () => {\n try {\n let data = {\n platform: '',\n modal: '',\n uuid: ''\n };\n\n if (window.cordova) {\n if (window.device) {\n switch(window.device.platform.toLowerCase()) {\n case 'browser': {\n data.platform = 'browser';\n data.modal = window.device.model;\n data.version = window.device.version;\n break;\n }\n case 'android': {\n data.platform = 'android';\n data.manufacturer = window.device.manufacturer;\n data.modal = window.device.modal;\n data.uuid = window.device.uuid;\n break;\n }\n case 'ios': {\n data.platform = 'ios';\n data.type = getIOSDevice(window.device.modal);\n data.modal = window.device.modal;\n data.uuid = window.device.uuid;\n break;\n }\n }\n }\n }\n\n return data;\n } catch (e) {\n throw e\n } \n}\n\nexport const apiSetPrevPageDetails = (data) => {\n try {\n return data;\n } catch (e) {\n throw e\n } \n}","import React from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { \n apiConfirmCME, apiDeRegister, apiGetUserDetails, \n apiLoginUser, apiUpdateUser, apiGetLeaderboard, \n apiGetAccessList, apiUpdateNotification, apiGetDailyQuestion,\n apiRateApp, apiSendSASPResidentAccess,\n apiGetSASPResidencyProgram,\n apiGetSASPResidenctData\n} from \"../api\";\nimport { hashString, clearStorage } from \"../common\";\nimport { \n SASP_LEADREBOARD, SASP_LEADREBOARD_FAILED, \n CME_CONFIRMATION, CME_CONFIRMATION_FAILED, \n DEREGISTER, DEREGISTER_FAILED, \n GET_USER_DETAILS, GET_USER_DETAILS_FAILED, \n LOGIN_USER_FAIL, LOGIN_USER_SUCCESS, \n SEND_SUCCESS_LOGIN_FEEDBACK, \n LOGOUT_SUCCESS, LOGOUT_FAILURE, \n UPDATE_PROFILE, UPDATE_PROFILE_FAIL, \n SHARE_USERS, SHARE_USERS_FAILED, \n NOTIFICATIONS, NOTIFICATIONS_FAILED,\n PERSISTANT_LOGIN, PERSISTANT_LOGIN_FAIL, \n DAILY_USER, DAILY_USER_FAIL, RATE_APP, RATE_APP_FAILED, GET_RESIDENCY_PROGRAM, \n GET_RESIDENCY_PROGRAM_FAILED, GET_RESIDENT_DATA, GET_RESIDENT_DATA_FAILED\n} from \"./types\";\n\nexport const getDailyQuestion = (data) => async dispatch => {\n const response = await apiGetDailyQuestion(data);\n try {\n dispatch({\n type: DAILY_USER,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: DAILY_USER_FAIL,\n payload: e\n })\n }\n}\n\nexport const persistantLogin = () => dispatch => {\n const _af = JSON.parse(localStorage.getItem('auth_feedback'));\n\n try {\n dispatch(login_success(_af));\n } catch (error) {\n dispatch(login_fail(error));\n }\n}\n\nexport const login = ({ id_email, password }) => async dispatch => {\n let id = id_email.includes(\"@\") ? \"\" : id_email;\n let email = id_email.includes(\"@\") ? id_email : \"\";\n\n let deviceName = window.navigator.platform;\n let concatString = deviceName + id;\n let deviceid = hashString(concatString);\n\n\n if (window.cordova) {\n if (window.device) {\n switch(window.device.platform.toLowerCase()) {\n case 'browser': {\n deviceName = window.device.model + '(' + window.device.version + ')';\n break;\n }\n case 'android': {\n deviceName = window.device.platform + ' (' + window.device.manufacturer + ' ' + window.device.version + ')';\n deviceid = window.device.uuid;\n break;\n }\n default: {\n deviceName = window.device.platform + ' (' + window.device.model + ' ' + window.device.version + ')';\n deviceid = window.device.uuid;\n break;\n }\n }\n }\n }\n\n let profileData = {\n mcid: id,\n email: email,\n password: password,\n deviceName: deviceName,\n deviceid: deviceid,\n appID: \"org.auanet.auau.sasp\"\n };\n try {\n const response = await apiLoginUser(profileData);\n\n if (typeof response === 'string') {\n let _error = {\n errorCode:Math.floor(Math.random() * 11) + 19,\n errorMessage: 'There was an error with the AUA app servers. Please try again later.',\n errorKey: Math.floor((Math.random() * 1600000) + 16000000).toString(16)\n };\n dispatch(login_fail(_error));\n return null;\n }\n\n let _json = JSON.stringify(response);\n\n if (response.authorized === '1' || response.authorized === 1) {\n let _date = new Date();\n let _d = Number(Date.parse(_date));\n let _offset = 1000 * 60 * 60 * 24 * 30;\n _d += _offset\n\n localStorage.setItem('login_dt', _d);\n localStorage.setItem('auth_feedback', _json);\n } else {\n }\n \n dispatch(login_success(response));\n } catch (e) {\n let error = {\n errorCode: Math.floor(Math.random() * 11) + 9,\n errorMessage: \"There was an error with the AUA app servers. Please try again later.\",\n errorKey: Math.floor((Math.random() * 1600000) + 16000000).toString(16)\n }\n dispatch(login_fail(error));\n }\n};\n\nexport const testApi = async () => {\n const response = await apiLoginUser({\n mcid: \"01006473\",\n email: \"\",\n password: \"Aua2017\"\n });\n};\n\nconst login_success = code => async dispatch => {\n let error = {\n errorMessage: \"\",\n errorCode: \"\"\n };\n\n if (typeof code === 'undefined') {\n return ( )\n }\n\n clearStorage('sasp-hideVersion');\n clearStorage('sasp-ratingEpoch');\n \n if (code.errorID === \"\") {\n if (code.totalDevices > 2) {\n dispatch({\n type: DEREGISTER\n });\n\n dispatch({\n type: SEND_SUCCESS_LOGIN_FEEDBACK,\n payload: code\n });\n \n return ;\n } else {\n dispatch({\n type: SEND_SUCCESS_LOGIN_FEEDBACK,\n payload: code\n })\n dispatch({\n type: LOGIN_USER_SUCCESS\n });\n\n localStorage.removeItem('sasp-hideDaily');\n }\n } else if (code.errorID === \"0\") {\n dispatch({\n type: SEND_SUCCESS_LOGIN_FEEDBACK,\n payload: code\n })\n dispatch({\n type: LOGIN_USER_SUCCESS\n });\n } else if (code.errorID === \"3\") {\n error = {\n errorMessage:\n \"Uh Oh. We don't have a record of your purchase for this product. Please contact customer service\",\n errorCode: \"3\"\n };\n dispatch({\n type: LOGIN_USER_FAIL,\n payload: error\n });\n } else if (code.errorID === \"4\" || code.errorID === \"2\" || code.errorID === \"1\") {\n error = {\n errorMessage:\n \"There was a problem with your username or password. Please try again.\",\n errorCode: code.errorID\n };\n dispatch({\n type: LOGIN_USER_FAIL,\n payload: error\n });\n } else {\n error = {\n errorMessage:\n \"There was a problem with your username or password. Please try again.\",\n errorCode: \"No error code\"\n };\n dispatch({\n type: LOGIN_USER_FAIL,\n payload: error\n });\n }\n};\n\nconst login_fail = error => {\n return {\n type: LOGIN_USER_FAIL,\n payload: error\n };\n};\n\nexport const deRegister = (mcid, key) => async dispatch => {\n clearStorage('sasp-dailyEpoch');\n clearStorage('sasp-hideVersion');\n clearStorage('sasp-ratingEpoch');\n clearStorage('login_dt');\n clearStorage('user_details');\n clearStorage('auth_feedback');\n\n try {\n const response = await apiDeRegister(mcid, key);\n dispatch({\n type: LOGIN_USER_SUCCESS\n });\n return \n // return ;\n } catch (error) {\n dispatch({\n type: DEREGISTER_FAILED,\n payload: error\n });\n }\n};\n\nexport const getUserDetails = (mcid, key, tracking) => async dispatch => {\n try {\n const response = await apiGetUserDetails(mcid, key, tracking);\n\n console.log('getUserDetails: ' ,response)\n\n if (typeof response.statuscode !== 'undefined') {\n if (response.statuscode.toString() === '403') {\n dispatch(logout())\n } else {\n dispatch({\n type: GET_USER_DETAILS,\n payload: response[0]\n });\n }\n } else {\n dispatch({\n type: GET_USER_DETAILS,\n payload: response[0]\n });\n } \n } catch (error) {\n /*dispatch({\n type: GET_USER_DETAILS_FAILED,\n payload: error\n });*/\n\n dispatch(logout());\n }\n};\n\nexport const confirmCME = (cmeConfirmationData, tracking) => async dispatch => {\n try {\n const confirmCMEResponse = await apiConfirmCME(cmeConfirmationData);\n\n dispatch({\n type: CME_CONFIRMATION\n })\n } catch(error) {\n dispatch({\n type: CME_CONFIRMATION_FAILED,\n payload: error\n })\n }\n};\n\nexport const logout = () => async dispatch => {\n if (localStorage.length > 0 ) {\n // localStorage.clear();\n clearStorage('org.auanet.auau.sasp');\n }\n\n try {\n dispatch({\n type: LOGOUT_SUCCESS\n });\n return ;\n } catch (e) {\n dispatch({\n type: LOGOUT_FAILURE,\n payload: e\n })\n }\n}\n\nexport const sendSASPResidentAccess = (data) => async dispatch => {\n try {\n const response = await apiSendSASPResidentAccess(data); \n\n dispatch({\n type: GET_RESIDENCY_PROGRAM,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: GET_RESIDENCY_PROGRAM_FAILED,\n payload: e\n })\n }\n}\n\nexport const getSASPResidencyProgram = (data) => async dispatch => {\n try {\n const response = await apiGetSASPResidencyProgram(data); \n\n dispatch({\n type: GET_RESIDENCY_PROGRAM,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: GET_RESIDENCY_PROGRAM_FAILED,\n payload: e\n })\n }\n}\n\nexport const getSASPResidentData = (data) => async dispatch => {\n try {\n const response = await apiGetSASPResidenctData(data); \n \n dispatch({\n type: GET_RESIDENT_DATA,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: GET_RESIDENT_DATA_FAILED,\n payload: e\n })\n }\n}\n\nexport const updateUserProfile = (data) => async dispatch => {\n try {\n const response = await apiUpdateUser(data);\n dispatch({\n type: UPDATE_PROFILE,\n payload: response[0]\n })\n\n return ;\n } catch (e) {\n dispatch({\n type: UPDATE_PROFILE_FAIL,\n payload: e\n })\n }\n}\n\nexport const getLeaderboard = (data) => async dispatch => {\n try {\n const response = await apiGetLeaderboard(data);\n dispatch({\n type: SASP_LEADREBOARD,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: SASP_LEADREBOARD_FAILED,\n payload: e\n })\n }\n}\n\nexport const getAccessList = (data) => async dispatch => {\n const response = await apiGetAccessList(data);\n try {\n dispatch({\n type: SHARE_USERS,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: SHARE_USERS_FAILED,\n payload: e\n })\n }\n}\n\nexport const updateNotification = (data) => async dispatch => {\n const response = await apiUpdateNotification(data);\n try {\n dispatch({\n type: NOTIFICATIONS,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: NOTIFICATIONS_FAILED,\n payload: e\n })\n }\n}\n\nexport const updateRating = (data) => async dispatch => {\n const response = await apiRateApp(data);\n try {\n dispatch({\n type: RATE_APP,\n payload: response\n })\n } catch (e) {\n dispatch({\n type: RATE_APP_FAILED,\n payload: e\n })\n }\n}","export const LOGIN_USER_FAIL = \"login_user_fail\";\nexport const LOGIN_USER_SUCCESS = \"login_user_success\";\nexport const SEND_SUCCESS_LOGIN_FEEDBACK = \"send_success_login_feedback\";\nexport const UPDATE_HEADER_INFO = \"update_header_info\";\nexport const GET_DECKS = \"get_decks\";\nexport const GET_DECKS_FAILED = \"get_decks_failed\";\nexport const EDIT_DECK = \"edit_deck\";\nexport const EDIT_DECK_FAILED = \"edit_deck_failed\";\nexport const ADD_QUESTION_TO_DECK = \"add_question_to_deck\";\nexport const ADD_QUESTION_TO_DECK_FAILED = \"add_question_to_deck_failed\";\nexport const CREATE_DECK = \"create_deck\";\nexport const CREATE_DECK_FAILED = \"create_deck_failed\";\nexport const GET_QUESTION = \"get_question\";\nexport const GET_QUESTION_FAILED = \"get_question_failed\";\nexport const GET_SKIP_QUESTION = \"get_skip_question\";\nexport const GET_SKIP_QUESTION_FAILED = \"get_skip_question_failed\";\nexport const GET_QUESTION_RESULTS = \"get_question_results\";\nexport const GET_QUESTION_RESULTS_FAILED = \"get_question_results_failed\";\nexport const PUT_RESPONSE = \"put_response\";\nexport const PUT_RESPONSE_FAILED = \"put_response_failed\";\nexport const PUT_NEXT_REVIEW_RESPONSE = \"put_next_review_response\";\nexport const PUT_NEXT_REVIEW_RESPONSE_FAILED = \"put_next_review_response_failed\";\nexport const DEREGISTER = \"deregister\";\nexport const DEREGISTER_FAILED = \"deregister_failed\";\nexport const GET_USER_DETAILS = \"get_user_details\";\nexport const GET_USER_DETAILS_FAILED = \"get_user_details_failed\";\nexport const CME_CONFIRMATION = \"cme_confirmation\";\nexport const CME_CONFIRMATION_FAILED = \"cme_confirmation_failed\";\nexport const FETCH_AVAILABLE_QUESTIONS = \"fetch_available_questions\";\nexport const FETCH_AVAILABLE_QUESTIONS_FAILED = \"fetch_available_questions_failed\";\nexport const GET_QUESTION_COUNT = \"get_question_count\";\nexport const GET_QUESTION_COUNT_FAILED = \"get_question_count_failed\";\nexport const UPDATE_FOOTER_INFO = \"update_footer_info\";\nexport const LOGOUT_SUCCESS = \"logout_success\";\nexport const LOGOUT_FAILURE = \"logout_failure\";\nexport const GET_PUBLIC_DECKS = 'get_public_decks';\nexport const GET_PUBLIC_DECKS_FAILED = 'get_public_decks_failed';\nexport const COPY_DECKS = 'set_public_decks';\nexport const COPY_DECKS_FAILED = 'set_public_decks_failed';\nexport const UPDATE_PROFILE = 'update_profile';\nexport const UPDATE_PROFILE_FAIL = 'update_profile_fail';\nexport const ADD_NOTE_TO_DECK_FAILED = 'add_note_to_deck_failed';\nexport const ADD_NOTE_TO_DECK = 'add_note_to_deck'; \nexport const ADD_NOTE_TO_QUESTION_FAILED = 'add_note_to_question_failed';\nexport const ADD_NOTE_TO_QUESTION = 'add_note_to_question'; \nexport const SASP_LEADREBOARD = 'sasp_leaderboard';\nexport const SASP_LEADREBOARD_FAILED = 'sasp_leaderboard_failed';\nexport const GET_DEVICE_DATA = 'device_data';\nexport const GET_DEVICE_DATA_FAILED = 'device_data_failed';\nexport const SHARE_USERS = 'share_users';\nexport const SHARE_USERS_FAILED = 'share_users_failed';\nexport const SEARCH_USERS = 'search_users';\nexport const SEARCH_USERS_FAILED = 'search_users_failed';\nexport const SHARE_DECKS = 'share_decks';\nexport const SHARE_DECKS_FAILED = 'share_decks_failed';\nexport const EMAIL_RESULTS = 'email_results';\nexport const EMAIL_RESULTS_FAILED = 'email_results_failed';\nexport const NOTIFICATIONS = 'notifications';\nexport const NOTIFICATIONS_FAILED = 'notifications_failed';\n\nexport const TRACK_PAGE = 'track_page';\nexport const TRACK_PAGE_FAILED = 'track_page_failed';\n\nexport const COMPLETE_SASP_TEST = 'complete_sasp_test';\nexport const COMPLETE_SASP_TEST_FAIL = 'complete_sasp_test_fail';\n\nexport const PERSISTANT_LOGIN = 'persistant_login';\nexport const PERSISTANT_LOGIN_FAIL = 'persistant_login_fail';\n\nexport const PREV_PAGE_DATA = 'prev_page_data';\nexport const PREV_PAGE_DATA_FAILED = 'prev_page_data_failed';\n\nexport const REMOVE_QUESTION_FROM_DECK = 'remove_question_from_deck';\nexport const REMOVE_QUESTION_FROM_DECK_FAILED = 'remove_question_from_deck_failed';\n\nexport const DAILY_USER = 'daily_user';\nexport const DAILY_USER_FAIL = 'daily_user_fail';\n\nexport const GET_FLASH_CARDS = \"get_flash_cards\";\nexport const GET_FLASH_CARDS_FAILED = \"get_flash_cards_failed\";\n\nexport const GET_FLASH_CARD = \"get_flash_card\";\nexport const GET_FLASH_CARD_FAILED = \"get_flash_card_failed\";\n\nexport const RATE_APP = \"rate_app\";\nexport const RATE_APP_FAILED = \"rate_app_failed\";\n\nexport const GET_PRE_MADE = 'get_pre_made';\nexport const GET_PRE_MADE_FAILED = 'get_pre_made_failed';\n\nexport const SEND_MESSAGE = 'send_message';\nexport const SEND_MESSAGE_FAILED = 'send_message_failed';\n\nexport const GET_RESIDENCY_PROGRAM = 'get_residency_program';\nexport const GET_RESIDENCY_PROGRAM_FAILED = 'get_residency_program_failed';\n\nexport const GET_RESIDENT_DATA = 'get_resident_data';\nexport const GET_RESIDENT_DATA_FAILED = 'get_resident_data _failed';\n","import React from 'react';\nimport { Redirect } from \"react-router-dom\";\nimport { \n apiCreateDeck, apiEditDeck, apiGetDecks, \n apiGetPublicDecks, apiCopyDeck, apiAddNote, \n apiResetDeck, apiSubscribeDeck, apiShareDeck, \n apiEmailResults, apiGetFlashCards, apiGetThisFlashCard, \n apiRemoveShare, apiGetPremadeDecks, apiSendMessage\n} from \"../api\";\n\nimport { \n ADD_NOTE_TO_DECK_FAILED, ADD_NOTE_TO_DECK, \n CREATE_DECK, CREATE_DECK_FAILED, EDIT_DECK, \n EDIT_DECK_FAILED, GET_DECKS, GET_DECKS_FAILED, \n GET_PUBLIC_DECKS, GET_PUBLIC_DECKS_FAILED, \n COPY_DECKS, COPY_DECKS_FAILED, SHARE_DECKS, \n SHARE_DECKS_FAILED, EMAIL_RESULTS, EMAIL_RESULTS_FAILED, \n GET_FLASH_CARDS, GET_FLASH_CARDS_FAILED, \n GET_FLASH_CARD, GET_FLASH_CARD_FAILED, GET_PRE_MADE,\n GET_PRE_MADE_FAILED, SEND_MESSAGE, SEND_MESSAGE_FAILED\n} from \"./types\";\n\nexport const getPremadeDecks = (data) => async dispatch => {\n try {\n const response = await apiGetPremadeDecks(data);\n\n dispatch({\n type: GET_PRE_MADE,\n payload: response\n });\n } catch (e) {\n dispatch({\n type: GET_PRE_MADE_FAILED,\n payload: e\n });\n }\n}\n\nexport const getFlashCards = (data) => async dispatch => {\n let results = {\n mcid: data.mcid,\n key: data.key\n }\n\n try {\n const response = await apiGetFlashCards(results);\n dispatch({\n type: GET_FLASH_CARDS,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_FLASH_CARDS_FAILED,\n payload: error\n });\n }\n}\n\nexport const getThisFlashCard = (data) => async dispatch => {\n try {\n const response = await apiGetThisFlashCard(data);\n dispatch({\n type: GET_FLASH_CARD,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_FLASH_CARD_FAILED,\n payload: error\n });\n }\n}\n\nexport const getDecks = (data) => async dispatch => {\n let results = {\n mcid: data.mcid,\n key: data.key\n }\n try {\n const response = await apiGetDecks(results);\n dispatch({\n type: GET_DECKS,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_DECKS_FAILED,\n payload: error\n });\n }\n}\n\nexport const removeShareDeck = (data) => async dispatch => {\n try {\n const response = await apiRemoveShare(data);\n dispatch({\n type: GET_DECKS,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_DECKS_FAILED,\n payload: error\n });\n }\n}\n\nexport const editDeck = (data) => async dispatch => {\n try {\n const response = await apiEditDeck(data);\n\n dispatch({\n type: EDIT_DECK,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: EDIT_DECK_FAILED,\n payload: error\n });\n }\n}\n\nexport const createDeck = (data) => async dispatch => {\n try {\n const response = await apiCreateDeck(data);\n dispatch({\n type: CREATE_DECK,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: CREATE_DECK_FAILED,\n payload: error\n });\n }\n}\n\nexport const getPublicDecks = (data) => async dispatch => {\n try {\n const getPublicDeckResponse = await apiGetPublicDecks(data);\n dispatch({\n type: GET_PUBLIC_DECKS,\n payload: getPublicDeckResponse\n });\n } catch (error) {\n dispatch({\n type: GET_PUBLIC_DECKS_FAILED,\n payload: error\n });\n }\n}\n\nexport const copyDeck = (data) => async dispatch => {\n try {\n const response = await apiCopyDeck(data);\n dispatch({\n type: COPY_DECKS,\n payload: response\n });\n\n // return ;\n } catch (error) {\n dispatch({\n type: COPY_DECKS_FAILED,\n payload: error\n });\n }\n}\n\nexport const subscribeDeck = (data) => async dispatch => {\n try {\n const response = await apiSubscribeDeck(data);\n dispatch({\n type: GET_DECKS,\n payload: response\n });\n\n // return ;\n } catch (error) {\n dispatch({\n type: GET_DECKS_FAILED,\n payload: error\n });\n }\n}\n\nexport const addNote = (data) => async dispatch => {\n try {\n const response = await apiAddNote(data);\n dispatch({\n type: ADD_NOTE_TO_DECK,\n payload: response\n });\n\n // return ;\n } catch (error) {\n dispatch({\n type: ADD_NOTE_TO_DECK_FAILED,\n payload: error\n });\n }\n}\n\nexport const resetDeck = (data) => async dispatch => {\n try { \n const response = await apiResetDeck(data);\n dispatch({\n type: GET_DECKS,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_DECKS_FAILED,\n payload: error\n });\n }\n}\n\nexport const shareDeck = (data) =>async dispatch => {\n try {\n const response = await apiShareDeck(data);\n dispatch({\n type: SHARE_DECKS,\n payload: response\n });\n\n } catch (e) {\n dispatch({\n type: SHARE_DECKS_FAILED,\n payload: e\n });\n }\n}\n\nexport const emailResults = (data) =>async dispatch => {\n try {\n const response = await apiEmailResults(data);\n dispatch({\n type: EMAIL_RESULTS,\n payload: response\n });\n\n } catch (e) {\n dispatch({\n type: EMAIL_RESULTS_FAILED,\n payload: e\n });\n }\n}\n\nexport const sendMessage = (data) =>async dispatch => {\n try {\n const response = await apiSendMessage(data);\n dispatch({\n type: SEND_MESSAGE,\n payload: response\n });\n\n } catch (e) {\n dispatch({\n type: EMAIL_RESULTS_FAILED,\n payload: e\n });\n }\n}","import { \n apiGetAllQuestions,\n apiAddQuestionToDeck, \n apiFetchAvailableQuestions, \n apiGetQuestion, apiGetSingleQuestion,\n apiPutResponse, apiRemoveQuestion,\n apiGetSkipQuestion,\n apiGetQuestionResults,\n apiPutNextReviewDate,\n apiCompleteTest,\n apiAnswerQuestion\n} from \"../api\";\nimport { \n GET_QUESTION_RESULTS, GET_QUESTION_RESULTS_FAILED, \n GET_SKIP_QUESTION, GET_SKIP_QUESTION_FAILED, \n GET_QUESTION_COUNT, GET_QUESTION_COUNT_FAILED, \n ADD_QUESTION_TO_DECK, ADD_QUESTION_TO_DECK_FAILED, \n FETCH_AVAILABLE_QUESTIONS, FETCH_AVAILABLE_QUESTIONS_FAILED, \n GET_QUESTION, GET_QUESTION_FAILED, \n PUT_RESPONSE, PUT_RESPONSE_FAILED, \n PUT_NEXT_REVIEW_RESPONSE, PUT_NEXT_REVIEW_RESPONSE_FAILED,\n COMPLETE_SASP_TEST, COMPLETE_SASP_TEST_FAIL,\n REMOVE_QUESTION_FROM_DECK, REMOVE_QUESTION_FROM_DECK_FAILED\n} from \"./types\";\n\nexport const submitCME = (data) => async dispatch => {\n try {\n let response = await apiCompleteTest(data);\n\n dispatch({\n type: COMPLETE_SASP_TEST,\n payload: response\n });\n } catch (e) {\n dispatch({\n type: COMPLETE_SASP_TEST_FAIL,\n payload: e\n });\n }\n}\n\nexport const getQuestion = (data, type) => async dispatch => {\n try {\n let response = await apiGetQuestion(data, type);\n dispatch({\n type: GET_QUESTION,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_QUESTION_FAILED,\n payload: error\n });\n }\n};\n\nexport const removeQuestion = (data) => async dispatch => {\n try {\n let repsonse = await apiRemoveQuestion(data);\n dispatch({\n type: REMOVE_QUESTION_FROM_DECK,\n payload: repsonse\n });\n\n } catch(error) {\n dispatch({\n type: REMOVE_QUESTION_FROM_DECK_FAILED,\n payload: error\n });\n }\n};\n\nexport const getSingleQuestion = (data, type) => async dispatch => {\n try {\n let response = await apiGetSingleQuestion(data, type);\n dispatch({\n type: GET_QUESTION,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_QUESTION_FAILED,\n payload: error\n });\n }\n};\n\nexport const getQuestionResults = (data, type) => async dispatch => {\n try {\n let response = await apiGetQuestionResults(data, type);\n dispatch({\n type: GET_QUESTION_RESULTS,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: GET_QUESTION_RESULTS_FAILED,\n payload: error\n });\n }\n};\n\nexport const skipThisQuestion = (data, type) => async dispatch => {\n try {\n let obj = await apiGetSkipQuestion(data);\n dispatch({\n type: GET_SKIP_QUESTION,\n payload: obj\n });\n } catch (e) {\n dispatch({\n type: GET_SKIP_QUESTION_FAILED,\n payload: e\n });\n }\n}\n\nexport const putResponse = data => async dispatch => {\n try {\n let response = await apiPutResponse(data);\n dispatch({\n type: PUT_RESPONSE,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: PUT_RESPONSE_FAILED,\n payload: error\n });\n }\n};\n\nexport const fetchAvailableQuestions = (data) => async dispatch => {\n try{\n let fetchAvailableQuestionsResponse = await apiFetchAvailableQuestions(data);\n dispatch({\n type: FETCH_AVAILABLE_QUESTIONS,\n payload: fetchAvailableQuestionsResponse\n });\n } catch (error) {\n dispatch({\n type: FETCH_AVAILABLE_QUESTIONS_FAILED,\n payload: error\n });\n }\n};\n\nexport const getAllQuestions = (data) => async dispatch => {\n try {\n let getAllQuestionCountResponse = await apiGetAllQuestions(data);\n dispatch({\n type: GET_QUESTION_COUNT,\n payload: getAllQuestionCountResponse\n });\n } catch (error) {\n dispatch({\n type: GET_QUESTION_COUNT_FAILED,\n payload: error\n });\n }\n};\n\nexport const addQuestionToDeck = (data) => async dispatch => {\n try {\n let response = await apiAddQuestionToDeck(data);\n dispatch({\n type: ADD_QUESTION_TO_DECK,\n payload: response\n });\n\n } catch(error) {\n dispatch({\n type: ADD_QUESTION_TO_DECK_FAILED,\n payload: error\n });\n }\n};\n\nexport const putNextReviewDate = data => async dispatch => {\n try {\n let put = await apiPutNextReviewDate(data);\n dispatch({\n type: PUT_NEXT_REVIEW_RESPONSE,\n payload: put\n });\n } catch (error) {\n dispatch({\n type: PUT_NEXT_REVIEW_RESPONSE_FAILED,\n payload: error\n });\n }\n};\n\nexport const answerQuestion = data => async dispatch => {\n try {\n let response = await apiAnswerQuestion(data);\n dispatch({\n type: PUT_RESPONSE,\n payload: response\n });\n } catch (error) {\n dispatch({\n type: PUT_RESPONSE_FAILED,\n payload: error\n });\n }\n};","import { UPDATE_HEADER_INFO } from \"./types\";\n\nexport const updateHeaderInfo = data => async dispatch => {\n if (typeof data.iconOne === 'undefined') { data.iconOne = 'home'; }\n if (typeof data.iconTwo === 'undefined') { data.iconTwo = 'menu'; }\n if (typeof data.color === 'undefined') { data.color = '#00567a'; }\n switch (data.route) {\n case \"home\": {\n await dispatch({\n type: UPDATE_HEADER_INFO,\n payload: { headerText: \"SASP\", iconOne: \"Home\", iconTwo: \"menu\", backgroundcolor: data.color }\n });\n break;\n }\n\n default: {\n await dispatch({\n type: UPDATE_HEADER_INFO,\n payload: { headerText: data.name, iconOne: data.iconOne, iconTwo: data.iconTwo, backgroundcolor: data.color }\n });\n break;\n } \n }\n};","import { \n SASP_LEADREBOARD, SASP_LEADREBOARD_FAILED, \n CME_CONFIRMATION_FAILED, DEREGISTER, DEREGISTER_FAILED, \n GET_USER_DETAILS, GET_USER_DETAILS_FAILED, \n LOGIN_USER_FAIL, LOGIN_USER_SUCCESS, \n SEND_SUCCESS_LOGIN_FEEDBACK, LOGOUT_SUCCESS, \n LOGOUT_FAILURE, UPDATE_PROFILE, UPDATE_PROFILE_FAIL, \n SHARE_USERS, SHARE_USERS_FAILED, NOTIFICATIONS_FAILED,\n DAILY_USER, DAILY_USER_FAIL, GET_RESIDENCY_PROGRAM, \n GET_RESIDENCY_PROGRAM_FAILED, GET_RESIDENT_DATA, GET_RESIDENT_DATA_FAILED\n} from \"../actions\";\n\n//TODO add reducers for user_details and cme_confirmations\n\nconst INITIAL_STATE = {\n auth: false,\n errorMessage: \"\",\n errorCode: \"\",\n holdDevice: 1,\n auth_feedback: [],\n user_details: {\n cmeYears: 'No SASP Purchased',\n newMessages: 0\n },\n cme_confirmations: [],\n leaderboard: [],\n accessList: [],\n dailyQuestion: {},\n isDaily: 0,\n program: null,\n resident: null\n};\n\nexport default (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case GET_RESIDENT_DATA:\n return { ...state, resident: action.payload }\n case GET_RESIDENCY_PROGRAM:\n return { ...state, program: action.payload }\n case LOGIN_USER_FAIL:\n return {\n ...state,\n auth: false,\n errorMessage: action.payload.errorMessage,\n errorCode: action.payload.errorCode\n };\n case LOGIN_USER_SUCCESS:\n return { ...state, auth: true, errorMessage: \"\", errorCode: \"\", holdDevice: 1 };\n case SEND_SUCCESS_LOGIN_FEEDBACK:\n return { ...state, auth_feedback: action.payload };\n case DEREGISTER: \n return { ...state, holdDevice: 0 }\n case LOGOUT_SUCCESS:\n // return { ...state } \n return { ...state, auth: false, errorMessage: \"\", errorCode: \"\", holdDevice: 1, auth_feedback: [], user_details: { cmeYears: 'No SASP Purchased' }, cme_confirmations: [], }\n case DEREGISTER_FAILED:\n return { ...state, errorMessage: action.payload };\n case GET_USER_DETAILS:\n return { ...state, user_details: action.payload };\n case UPDATE_PROFILE: {\n return { ...state }\n }\n case SASP_LEADREBOARD: \n return { ...state, leaderboard: action.payload}\n case SHARE_USERS:\n return { ...state, accessList: action.payload }\n case DAILY_USER:\n return { ...state, isDaily: action.payload.isDaily, dailyQuestion: action.payload.question };\n \n case DAILY_USER_FAIL:\n case GET_RESIDENCY_PROGRAM_FAILED:\n case GET_USER_DETAILS_FAILED:\n case CME_CONFIRMATION_FAILED:\n case LOGOUT_FAILURE: \n case UPDATE_PROFILE_FAIL:\n case SASP_LEADREBOARD_FAILED:\n case SHARE_USERS_FAILED:\n case NOTIFICATIONS_FAILED:\n case GET_RESIDENT_DATA_FAILED: \n return { ...state, error: action.payload }\n default:\n return state;\n }\n};\n","import { CREATE_DECK, CREATE_DECK_FAILED, \n EDIT_DECK, EDIT_DECK_FAILED, \n GET_DECKS, GET_DECKS_FAILED, \n GET_PUBLIC_DECKS, GET_PUBLIC_DECKS_FAILED, \n COPY_DECKS, COPY_DECKS_FAILED, \n SHARE_USERS_FAILED, EMAIL_RESULTS_FAILED, \n SHARE_DECKS, SHARE_DECKS_FAILED, EMAIL_RESULTS,\n REMOVE_QUESTION_FROM_DECK, REMOVE_QUESTION_FROM_DECK_FAILED,\n GET_FLASH_CARDS, GET_FLASH_CARDS_FAILED, GET_PRE_MADE, GET_PRE_MADE_FAILED\n} from \"../actions\"; \n\nconst INITIAL_STATE = {\n deckList: [],\n flashCards: [],\n publicDecks: [],\n newDeckInfo: [],\n copyDeckInfo: {},\n error: \"\",\n notes: {},\n serverMsg: {},\n premade: []\n};\n\nexport default (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case GET_PRE_MADE: \n return { ...state, premade: action.payload, error: '' };\n case GET_DECKS:\n return { ...state, deckList: action.payload, error: '' };\n case EDIT_DECK:\n return { ...state, error: '' };\n case SHARE_DECKS:\n return { ...state, error: '' };\n case CREATE_DECK:\n return {...state, newDeckInfo: action.payload, error: ''};\n case GET_PUBLIC_DECKS:\n return { ...state, publicDecks: action.payload, error: '' };\n case GET_PUBLIC_DECKS_FAILED:\n return { ...state, error: action.payload, error: '' };\n case COPY_DECKS:\n return { ...state, copyDeckInfo: action.payload, error: '' };\n case EMAIL_RESULTS:\n return { ...state, notes: action.payload, error: '' };\n case REMOVE_QUESTION_FROM_DECK:\n return { ...state, serverMsg: action.payload, error: '' };\n case GET_FLASH_CARDS:\n return { ...state, flashCards: action.payload, error: '' }\n \n case GET_PRE_MADE_FAILED:\n case REMOVE_QUESTION_FROM_DECK_FAILED:\n case GET_FLASH_CARDS_FAILED:\n case CREATE_DECK_FAILED:\n case GET_DECKS_FAILED:\n case COPY_DECKS_FAILED:\n case EDIT_DECK_FAILED:\n case GET_PUBLIC_DECKS_FAILED:\n case SHARE_USERS_FAILED:\n case SHARE_DECKS_FAILED:\n case EMAIL_RESULTS_FAILED:\n return { ...state, error: action.payload };\n default:\n return state;\n }\n};\n\n//TODO think about whether to fire getdecks after edit/create deck again.\n//I think yes...\n","import { UPDATE_HEADER_INFO, UPDATE_FOOTER_INFO } from \"../actions\";\n\nconst INITIAL_STATE = {\n headerText: \"SASP\",\n iconOne: \"\",\n iconTwo: \"\",\n footerOne: \"rankings\",\n footerTwo: \"myDecks\",\n footerThree: \"inbox\",\n};\n\nexport default (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case UPDATE_HEADER_INFO:\n return {\n ...state,\n headerText: action.payload.headerText,\n iconOne: action.payload.iconOne,\n iconTwo: action.payload.iconTwo,\n backgroundcolor: action.payload.backgroundcolor\n };\n\n case UPDATE_FOOTER_INFO:\n return {\n ...state,\n footerOne: action.payload.footerOne,\n footerTwo: action.payload.footerTwo,\n footerThree: action.payload.footerThree,\n }\n \n default:\n return state;\n }\n};\n","import { \n GET_QUESTION_RESULTS, GET_QUESTION_RESULTS_FAILED, \n GET_SKIP_QUESTION, GET_SKIP_QUESTION_FAILED, \n GET_QUESTION_COUNT, GET_QUESTION_COUNT_FAILED, \n FETCH_AVAILABLE_QUESTIONS, FETCH_AVAILABLE_QUESTIONS_FAILED, \n GET_QUESTION, GET_QUESTION_FAILED, \n PUT_RESPONSE, PUT_RESPONSE_FAILED,\n COMPLETE_SASP_TEST, COMPLETE_SASP_TEST_FAIL,\n GET_FLASH_CARD, GET_FLASH_CARD_FAILED\n} from \"../actions\";\n\nconst INITIAL_STATE = {\n question: [],\n sessionAnsweredQuestion: [],\n error: \"\",\n available_questions: [],\n get_question_count: [],\n get_question_results: {},\n deck_results: [],\n flashCard: {}\n};\n\nexport default (state = INITIAL_STATE, action) => {\n switch (action.type) {\n case PUT_RESPONSE:\n return { ...state, sessionAnsweredQuestion: action.payload, error: '' };\n case GET_QUESTION:\n return { ...state, question: action.payload, error: '' };\n case GET_QUESTION_RESULTS:\n return { ...state, get_question_results: action.payload, error: '' };\n case GET_SKIP_QUESTION:\n return { ...state, question: action.payload, error: '' };\n case FETCH_AVAILABLE_QUESTIONS:\n return {...state, available_questions: action.payload, error: '' }\n case GET_QUESTION_COUNT:\n return {...state, get_question_count: action.payload, error: '' }\n case GET_FLASH_CARD:\n return {...state, flashCard: action.payload, error: '' }\n\n case GET_FLASH_CARD_FAILED:\n case GET_QUESTION_COUNT_FAILED:\n case COMPLETE_SASP_TEST_FAIL:\n case PUT_RESPONSE_FAILED:\n case GET_QUESTION_RESULTS_FAILED:\n case GET_SKIP_QUESTION_FAILED:\n case GET_QUESTION_FAILED:\n case FETCH_AVAILABLE_QUESTIONS_FAILED:\n return {...state, error: action.payload}\n default:\n return state;\n }\n};\n","import { \n GET_DEVICE_DATA, GET_DEVICE_DATA_FAILED,\n PREV_PAGE_DATA, PREV_PAGE_DATA_FAILED, SEND_MESSAGE, SEND_MESSAGE_FAILED\n} from \"../actions\";\n\nconst INITIAL_STATE = {\n device: {\n platform: '',\n modal: ''\n },\n helperIcons: {\n spaced:\"Spaced Questions allow you to determine the next time this qestion will be shown to you.
You can select 1 hour, 1 day, 1 week, 2 weeks, or 1 month.
\",\n open:\"
Answers, Explanations and References will be presented after each question.
\",\n public:\"A Public deck is shown on the master of list of Decks available to anyone.
Users may select to subscribe to the Deck or may a copy of the Deck.
\",\n home:\"This deck will be pinned to the Home page for easy access.
\",\n flashcards:\"For Study purposes only. Question is presented followed by “flipping” over to display the correct answer only, rationale and references.
\"\n },\n prevPage: {},\n sendMessage: null\n}\n\nexport default (state = INITIAL_STATE, action) => {\n switch(action.type) {\n case GET_DEVICE_DATA: {\n return { ...state, device: action.payload}\n }\n\n case PREV_PAGE_DATA: {\n return { ...state, prevPage: action.payload}\n }\n\n case SEND_MESSAGE: {\n return {\n ...state, sendMessage: action.payload\n }\n }\n\n case PREV_PAGE_DATA_FAILED:\n case GET_DEVICE_DATA_FAILED: \n case SEND_MESSAGE_FAILED: {\n return { ...state, error: action.payload }\n }\n default: {\n return state; \n }\n }\n}","import { combineReducers } from \"redux\";\nimport AuthReducer from \"./AuthReducer\";\nimport decksReducer from \"./decksReducer\";\nimport StyleReducer from \"./StyleReducer\";\nimport QuestionReducer from \"./questionsReducer\";\nimport DeviceReducer from \"./DeviceReducer\";\n\nconst SASPApp = combineReducers({\n auth: AuthReducer,\n style: StyleReducer,\n decks: decksReducer,\n question: QuestionReducer,\n device: DeviceReducer\n});\n\nexport default SASPApp;","import { applyMiddleware, createStore } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport thunk from 'redux-thunk';\nimport reducers from \"./reducers\";\n\nconst store = createStore(reducers, composeWithDevTools(applyMiddleware(thunk)));\n\nexport { store };\n\n","import Button from \"@material-ui/core/Button\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { logErr } from \"../common\";\nimport { buttonStyles } from \"../styles\";\nimport \"../styles/globalStyles.css\";\n\nexport const ButtonDefault = props => {\n const classes = buttonStyles();\n return (\n \n {props.children}\n \n );\n};\n","import ButtonBase from \"@material-ui/core/ButtonBase\";\nimport CheckIcon from \"@material-ui/icons/Check\";\nimport ClearIcon from \"@material-ui/icons/Clear\";\nimport clsx from \"clsx\";\nimport React, { useEffect, useState } from \"react\";\nimport { buttonStyles, colorPallete } from \"../styles\";\nimport \"../styles/globalStyles.css\";\n\nexport const DynamicButton = props => {\n const classes = buttonStyles();\n const colors = colorPallete();\n const [color, setColor] = useState(colors.neutralDark);\n const [active, toggleActive] = useState(props.active);\n const [endIcon, updateEndIcon] = useState(false);\n const [startIcon, updatestartIcon] = useState(false);\n // const [trueClass, setClass] = useState(props.trueClass);\n\n // const dynamicChange = props => {\n // props();\n // return color === classes.neutralDark\n // ? setColor(classes.accentGreen)\n // : setColor(classes.neutralDark);\n // };\n\n const setEndIcon = endIcon => {\n //TODO set colors of icons to be selected dynamically\n // console.log(\"endIcon\", endIcon);\n switch (endIcon) {\n case \"check\":\n // console.log(\"check fired\");\n return ;\n case \"wrong\":\n // console.log(\"wrong fired\");\n return ;\n default:\n return false;\n }\n };\n\n useEffect(() => {\n setColor(props.selected === true ? props.trueColor : props.falseColor);\n }, [props.selected]);\n\n useEffect(() => {\n // console.log(\"dynamic use effect fired\", props.endIcon);\n updateEndIcon(props.endIcon !== false ? setEndIcon(props.endIcon) : false);\n }, [props.endIcon]);\n\n return (\n props.onClick()}\n >\n \n {startIcon !== false ? startIcon : null} {props.children}{\" \"}\n {endIcon !== false ? endIcon : null}\n
\n \n );\n};\n","import React from \"react\";\nimport { colorPicker, logErr } from \"../common\";\nimport { ButtonDefault } from \"./Button\";\nimport { DynamicButton } from \"./DynamicButton\";\nimport \"../styles/masterStyles.css\";\n\nconst buttonPicker = props => {\n switch (props.button) {\n case \"DynamicButton\":\n return (\n \n {props.children}\n \n );\n default:\n return (\n \n {props.children}\n \n );\n }\n};\n\nexport const SaspButton = props => {\n return buttonPicker({\n className: props.className || \"defaultButton\",\n button: props.button,\n color: props.color || \"primary\",\n children: props.children,\n variant: props.variant || \"text\",\n disabled: props.disabled || false,\n disabledElevation: props.disabledElevation || false,\n disableFocusRipple: props.disableFocusRipple || false,\n endIcon: props.endIcon || false,\n fullWidth: props.fullWidth || false,\n href: props.href || \"\",\n size: props.size || \"medium\",\n startIcon: props.startIcon || \"\",\n onClick: props.onClick || logErr(),\n selected: props.selected || false,\n trueColor: props.trueColor || \"accentGreen\",\n falseColor: props.falseColor || \"neutralDark\",\n trueClass: props.trueClass || \"dynamicButton\"\n });\n};\n","import {\n Checkbox,\n Container,\n FormControlLabel,\n FormGroup,\n Grid\n} from \"@material-ui/core\";\nimport React from \"react\";\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { SaspButton } from \"./SaspButton\";\n\n//TODO create a select all button for questions\nexport const ChooseQuestionsForm = props => {\n const [checkQuestions, setQuestions] = React.useState(props.questionObj);\n\n const createMarkup = props => {\n return { __html: props };\n };\n\n const mapQuestions = props => {\n // console.log(\"mapQuestions fired\", checkQuestions);\n return Object.keys(props.questions).map((question, index) => {\n return (\n \n
\n
\n }\n // label={question.questiontext}\n />\n
\n );\n });\n };\n\n //TODO refactor to make this actually work properly\n const handleChange = name => event => {\n setQuestions({ ...checkQuestions, [name]: event.target.checked });\n };\n\n const selectAllQuestions = (data) => {\n try {\n // console.log('data: ', data);\n for (const item in data) {\n let name = data[item].questionID;\n setQuestions({ ...checkQuestions, [name]: true});\n }\n } catch (e) {\n // console.log('error: ', e);\n }\n }\n\n if (props.questionCount && props.questionCount > 0) {\n return (\n \n \n \n \n
\n selectAllQuestions(props.questions)}\n />\n }\n />\n
\n
Select All
\n
\n \n {mapQuestions(props)}
\n \n \n\n props.createDeck(checkQuestions)}\n >\n Create Deck\n \n \n \n );\n } else {\n return (\n Sorry, we couldn't find any questions that matched your search.
\n );\n }\n};\n\n//TODO style this page & user feedback\n//TODO add questions/map the data. finish wiring up the service\n","import React from \"react\";\nimport \"../styles/globalStyles.css\";\n\nexport const CounterWidget = props => {\n return (\n \n {props.count} {props.count != 1 ? \"questions\" : \"question\"}\n
\n );\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Modal from '@material-ui/core/Modal';\nimport InfoIcon from '@material-ui/icons/Info';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: 'absolute',\n backgroundColor: theme.palette.background.paper,\n border: \"2px solid #00567a\",\n borderRadius: \"8px\",\n boxShadow: theme.shadows[5],\n padding: \"8px 16px 16px\",\n maxHeight: `68vh`,\n width: '75vw',\n overflow: 'auto',\n outline: \"none\"\n },\n}));\n\nconst ModalIcon = props => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const createMarkup = props => {\n return { __html: props };\n };\n\n const body = (\n \n
{props.title} \n
\n {/*
*/}\n
\n );\n\n return (\n \n \n \n \n \n {body}\n \n
\n );\n \n}\n\nexport default ModalIcon;","import {\n Checkbox,\n Chip,\n Container,\n FormControl,\n FormControlLabel,\n FormGroup,\n Grid,\n Input,\n InputLabel,\n MenuItem,\n Select,\n Switch,\n TextField,\n Typography,\n Divider\n} from \"@material-ui/core\";\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport React from \"react\";\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { SaspButton } from \"./SaspButton\";\nimport { CounterWidget } from \"./CounterWidget\"\nimport ModalIcon from \"./ModalIcon\";\n\nimport { CopyrightWidget } from \".\";\nimport { getThisYear } from \"../common\";\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n maxWidth: 300,\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n backgroundColor: '#00567a',\n color: '#fff' \n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n}));\n\nfunction getStyles(index, key, theme) {\n return {\n fontWeight:\n key.indexOf(index) === -1\n ? theme.typography.fontWeightRegular\n : theme.typography.fontWeightMedium,\n };\n}\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\nexport const DeckFormWidget = props => {\n const [name, changeName] = React.useState(\"\");\n const [summary, changeSummary] = React.useState(\"\");\n const [checkYears, setCheckedYears] = React.useState(props.yearsObj);\n const [checkAreas, setCheckedAreas] = React.useState(props.areaObj);\n const [checkKeyword, setCheckedKeyword] = React.useState(props.keywords);\n const [checkQuestions] = React.useState(props.questionObj);\n const [myYears, setMyYears] = React.useState([]);\n const [myAreas, setMyAreas] = React.useState([]);\n const classes = useStyles();\n const theme = useTheme();\n const selectYears = Object.keys(props.yearsObj).reverse(); \n\n const [state, setState] = React.useState({\n isHome: true,\n openBook: true,\n isPublic: false,\n isSpaced: false,\n blankDeck: false,\n flashCards: false,\n questionCount: props.questionCount\n });\n\n\n const handleChange = name => event => {\n //TODO refactor the handle changes to replace/update property instead of adding new \"true\" ones--w.o. mutating state\n //TODO refactor this handlechange to be faster\n if (name.toString().charAt(0) === 2) {\n setCheckedYears({ ...checkYears, [name]: event.target.checked });\n } else {\n setCheckedAreas({ ...checkAreas, [name]: event.target.checked });\n }\n };\n\n const updateChange = (obj) => { \n switch(obj.type) {\n case 'year': {\n checkYears[obj.name] = obj.bool;\n break;\n }\n case 'area': {\n checkAreas[obj.name] = obj.bool;\n break;\n }\n }\n }\n\n const updateCount = async () => {\n let obj = {\n mcid: props.user_details.mcid,\n key: props.user_details.key,\n yearvar: myYears,\n gamemode: state.openBook ? 3 : 4,\n areavar: myAreas,\n };\n let c = await props.getQuestionCount(obj);\n setState({...state, questionCount: c});\n }\n\n const handleSwitchChange = (event) => {\n setState({ ...state, [event.target.name]: event.target.checked });\n }\n\n const handleYearChange = (event) => {\n let val = event.target.value;\n setMyYears(val);\n let test = Object.keys(checkYears);\n for (const i in test) {\n updateChange({type: 'year', name: test[i].toString(), bool: val.includes(test[i].toString())});\n }\n }\n\n const handleAreaChange = (event) => {\n let val = event.target.value; \n setMyAreas(val);\n let test = Object.keys(checkAreas)\n for (const i in test) {\n updateChange({type: 'area', name: test[i].toString(), bool: val.includes(test[i].toString())});\n }\n }\n\n //TODO refactor to incorporate these into 1 handlechange function\n const handleKeyChange = name => event => {\n setCheckedKeyword({ ...checkKeyword, [name]: event.target.checked });\n };\n\n const handleNameChange = event => {\n changeName(event.target.value);\n };\n\n const handleSummaryChange = event => {\n changeSummary(event.target.value);\n };\n\n const mapYears = props => {\n let i = -1;\n return props.SASPYears.map((year, index) => {\n if (year.useravailable === 1) {\n i++;\n return (\n \n }\n label={year.ProductYear}\n />\n );\n }\n });\n };\n\n const mapAreas = props => {\n return props.availableAreas.map((area, index) => {\n return (\n \n }\n label={area.AreaDescription}\n />\n );\n });\n };\n\n //TODO repair this. It is not working/updating the checkboxes correctly\n const mapKeywords = props => {\n return Object.keys(props.keywords).map((keyword, index) => {\n return (\n \n }\n label={keyword}\n />\n );\n });\n };\n\n const icon = props.icons;\n\n return (\n \n \n \n \n {/* Create Deck */}\n Create Deck \n \n \n\n \n \n \n\n \n \n \n\n \n \n Subscription Years \n }\n renderValue={(selected) => (\n \n {selected.map((value) => (\n \n ))}\n
\n )}\n MenuProps={MenuProps}\n >\n {selectYears.map((year) => (\n \n {year}\n \n ))}\n \n \n \n\n Keywords \n \n \n {mapKeywords(props)}
\n \n \n\n \n \n Topics \n }\n renderValue={(selected) => (\n \n {selected.map((value) => (\n \n ))}\n
\n )}\n MenuProps={MenuProps}\n >\n {props.availableAreas.map((item) => (\n \n {item.AreaDescription}\n \n ))}\n \n \n \n\n \n {/* \n Options\n */}\n \n Options \n \n \n \n \n \n \n }\n label=\"Add to Home\"\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Open Book\"\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Spaced Learning\"\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Public\"\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Flashcards\"\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Blank Deck\"\n />\n \n \n
\n \n\n \n props.gapFunc({\n years: checkYears, \n areas: checkAreas, \n keywords: checkKeyword, \n name: name, \n summary: summary,\n isHome: state.isHome,\n isPublic: state.isPublic,\n isSpaced: state.isSpaced, \n flashCards: state.flashCards,\n openBook: state.openBook,\n blankDeck: state.blankDeck\n })}\n >\n Create Deck\n \n\n {/* \n props.sendQuestions(\n checkYears, \n checkAreas,\n checkKeyword,\n name,\n summary\n )\n }\n >\n Get Questions\n */}\n
\n \n\n \n \n );\n};\n\n//TODO add validation on submit button/disabled until ready...i.e. at least 1 button must be clicked\n//TODO style this page","import React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport PlayCircleFilledIcon from \"@material-ui/icons/PlayCircleFilled\";\nimport { \n Card, CardHeader, CardContent, CardActions, \n IconButton, Typography, Slide } from \"@material-ui/core\";\nimport { masterHandleClose, createMarkup, checkDailyEpoch } from \"../common\";\n\nimport { isMobile, isIOS, isAndroid, deviceDetect, deviceType } from 'react-device-detect';\nimport \"../styles/masterStyles.css\";\n\nconst DailyBanner = props => {\n if (props.auth && props.isDaily && checkDailyEpoch('sasp-dailyEpoch', 1)) {\n localStorage.removeItem('sasp-hideDaily');\n let classes = 'aua-top-banner anchor active background-blue';\n let qName = `SASP ${props.dailyQuestion.year} Question ${props.dailyQuestion.number}`\n\n if (isAndroid) { classes += ' android'} \n else if (isIOS) { classes += ' ios'}\n \n return (\n \n \n
\n masterHandleClose('DailyBanner', 'active', 'inactive', 'sasp-hideDaily')}\n style={{backgroundColor: '#00567a', transform:\"scale(0.5)\"}}\n >\n \n \n }\n className=\" padding-bottom-0\"\n />\n\n \n \n \n\n \n \n \n \n \n \n \n \n
\n \n \n );\n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => {\n // console.log('state: ', state);\n const { auth, isDaily, dailyQuestion } = state.auth;\n return { auth, isDaily, dailyQuestion };\n};\n\nconst DailyBannerCard = connect(mapStateToProps)(withRouter(DailyBanner));\n\nexport { DailyBannerCard }\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Card, CardHeader, IconButton, Slide } from \"@material-ui/core\";\nimport { masterHandleClose, APPVERSION } from \"../common\";\nimport { isBrowser, isIOS, isAndroid } from 'react-device-detect';\nimport \"../styles/masterStyles.css\";\n\nconst VersionBanner = props => { \n if (props.auth && typeof props.user_details.appversion !== 'undefined') {\n let classes = 'aua-top-banner anchor active index100';\n let AppStoreVar = '.';\n let appversion = APPVERSION;\n\n if (isAndroid) { \n classes += ' android'; \n AppStoreVar = ' for Android Devices on the Play Store.'; \n appversion = props.user_details.appversion.android; \n } else if (isIOS) { \n classes += ' ios'; \n AppStoreVar = ' for iOS devices on the App Store.'; \n appversion = props.user_details.appversion.ios; \n } else {\n appversion += ' (Electron/Web app)'\n }\n if (!isBrowser || props.user_details.mcid === '00863273') {\n let subh = `SASP version ${appversion} is now available${AppStoreVar} Update your app today!`;\n return (\n \n \n masterHandleClose('VersionBanner', 'active', 'inactive', 'sasp-hideVersion')}\n style={{backgroundColor: '#00567a', transform:\"scale(0.5)\"}}\n >\n \n \n }\n />\n \n \n );\n } else {\n return null;\n }\n \n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => {\n const { auth, user_details } = state.auth;\n return { auth, user_details };\n};\n\nconst VersionBannerCard = connect(mapStateToProps)(withRouter(VersionBanner));\n\nexport { VersionBannerCard }\n","import React from \"react\";\nimport \"../styles/progressStyles.css\";\n\nconst Filler = props => {\n let fillerClass = 'filler ';\n if ( typeof props.className !== 'undefined' ) {fillerClass += props.className }\n return
;\n};\n\nexport const ProgressBar = props => {\n let progressClass = 'progress-bar';\n if ( typeof props.className !== 'undefined' ) { progressClass = 'progress-bar progress-bar-small'}\n const progressBarContainerStyle = props.progressBarContainerStyle || {\n border: 0\n };\n return (\n \n \n
\n );\n};\n","import Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport PlayCircleFilledIcon from \"@material-ui/icons/PlayCircleFilled\";\nimport PollIcon from \"@material-ui/icons/Poll\";\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { colorPicker } from \"../common\";\nimport { buttonStyles, cardStyles } from \"../styles\";\nimport { ProgressBar } from \"./ProgressBar\";\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\nimport { isMobileOnly } from 'react-device-detect';\n\nexport const DeckCard = props => {\n // if (!props.index) {\n // }\n \n const cards = cardStyles();\n const buttons = buttonStyles();\n \n let _obj = {\n pathname: props.flashcard ? \"/showFlashCard\" : \"/questionScreen\",\n }\n\n if (props.flashcard) {\n _obj.deckid = props.deckID;\n _obj.year = 0;\n } else {\n _obj.deckID = props.deckID;\n _obj.gameMode = typeof props.gameMode !== 'undefined' ? props.gameMode : 3;\n }\n\n return (\n \n \n \n \n {props.deckName || \"Deck #1\"}\n \n \n\n \n \n Your progress {props.owner ? null : ( (subscription) )}\n \n {props.isWrong \n ? ( )\n : ( )\n }\n \n\n \n
\n
{Number(props.gameMode) != 4 ? \"Open Book\" : \"Closed Book\"}
\n
\n\n {props.isWrong || props.totalQuestions === 0\n ? null\n : (\n
\n
props.copyDeck()}\n >\n \n \n\n
\n Copy\n
\n \n )\n }\n <>\n {props.totalQuestions\n ? (\n <>\n
\n\n
\n \n \n
\n Settings\n
\n \n \n
\n
\n \n \n
\n Summary\n
\n \n\n
\n
\n \n \n
\n Deck\n
\n \n >\n ) : (\n
\n\n
\n \n \n
\n Settings\n
\n \n ) \n }\n >\n
\n \n \n );\n};\n","import Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport SearchIcon from '@material-ui/icons/Search';\nimport AddIcon from '@material-ui/icons/Add';\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { colorPicker } from \"../common\";\nimport { buttonStyles, cardStyles } from \"../styles\";\n\nimport \"../styles/masterStyles.css\";\n\nexport const PublicDeckCard = props => {\n const cards = cardStyles();\n const buttons = buttonStyles();\n\n const addDeck = (id) => {\n props.addDeck(id);\n }\n\n return (\n \n \n \n \n {props.deckName || \"Deck #1\"}\n \n \n\n \n \n
\n {Number(props.gameMode) != 4 ? \"Open Book\" : \"Closed Book\"}\n
\n\n
\n {props.value ? props.value : '0'} {(props.value != 1) ? 'Questions' : 'Question'}\n
\n
\n \n \n \n
\n
\n \n \n \n \n
addDeck(props.deckID)}\n >\n \n \n
\n \n \n );\n};","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Modal from '@material-ui/core/Modal';\nimport InfoIcon from '@material-ui/icons/Info';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: 'absolute',\n backgroundColor: theme.palette.background.paper,\n border: \"2px solid #00567a\",\n borderRadius: \"8px\",\n boxShadow: theme.shadows[5],\n padding: \"8px 16px 16px\",\n maxHeight: `95vh`,\n width: '75vw',\n overflow: 'auto',\n outline: \"none\"\n },\n}));\n\nconst ModalImages = props => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const createMarkup = props => {\n return { __html: props };\n };\n\n const body = (\n \n
{props.title} Images \n
\n {props.qImages.map((item, index) => {\n // console.log('item: ', item);\n // console.log('index: ', index);\n let alt = props.title + ' image ' + index;\n return (\n <>\n
\n
\n
\n
\n
\n >\n )}\n )}\n
\n
\n );\n\n return(\n \n \n View Images\n \n \n {body}\n \n
\n )\n}\n\nexport default ModalImages;","import React from \"react\";\nimport { \n Card, CardActions, CardContent, CardHeader, \n IconButton, Grid, Typography, Divider \n} from \"@material-ui/core\";\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { createMarkup } from \"../common\";\nimport ModalImages from \"../components/ModalImages\";\nimport ReactCardFlip from 'react-card-flip';\n\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n maxWidth: 345,\n },\n media: {\n height: 0,\n paddingTop: '56.25%', // 16:9\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest,\n }),\n },\n expandOpen: {\n transform: 'rotate(180deg)',\n }\n}));\n\nexport const FlashCard = props => {\n const classes = useStyles();\n const [expanded, setExpanded] = React.useState(false);\n const [flipped, setFlipped] = React.useState(false);\n\n const handleExpandClick = () => {\n setExpanded(!expanded);\n };\n\n const handleFlipCard = (bool) => {\n console.log(`bool: `, bool);\n setFlipped(bool);\n }\n\n const showQuestion = () => {\n return (\n \n
\n \n )\n }\n\n const flipCard = () => {\n handleFlipCard(true);\n }\n\n const flipCardBack = () => {\n handleFlipCard(false);\n }\n\n console.log(`flipped: `, flipped);\n\n return (\n \n \n flipCard()}\n style={{backgroundColor: '#00567a', transform:\"scale(0.67)\"}}\n >\n \n \n }\n\n style={{\n backgroundColor: \"#f1f3f5\"\n }}\n />\n \n {showQuestion()}\n \n \n props.backFunc()}\n >\n \n \n\n <>\n {typeof props.obj.imgs !== 'undefined' && props.obj.imgs.length > 0\n ? (\n \n \n
\n ) : null\n }\n >\n\n props.nextFunc()}\n >\n \n \n \n \n\n \n flipCardBack()}\n style={{backgroundColor: '#00567a', transform:\"scale(0.67)\"}}\n >\n \n \n \n }\n\n style={{\n backgroundColor: \"#f1f3f5\"\n }}\n />\n\n \n \n \n Answer\n \n \n \n \n\n \n \n Explanation\n \n \n
\n \n\n \n \n References\n \n \n
\n \n \n\n \n props.backFunc()}\n >\n \n \n\n <>\n {typeof props.obj.imgs !== 'undefined' && props.obj.imgs.length > 0\n ? (\n \n \n
\n ) : null\n }\n >\n\n props.nextFunc()}\n >\n \n \n \n \n \n );\n};","import Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport PlayCircleFilledIcon from \"@material-ui/icons/PlayCircleFilled\";\nimport PollIcon from \"@material-ui/icons/Poll\";\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { colorPicker } from \"../common\";\nimport { buttonStyles, cardStyles } from \"../styles\";\nimport { ProgressBar } from \"./ProgressBar\";\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\nimport { isMobileOnly } from 'react-device-detect';\n\nexport const FlashCardWidget = props => {\n // if (!props.index) {\n // console.log('\\nSTARTING FlashCardWidget \\nprops: \\n', props);\n // }\n \n const cards = cardStyles();\n const buttons = buttonStyles();\n\n let summary = `${props.deck.count} flashcards for ${props.deck.name}`;\n\n if (props.deck.summary !== '') {\n summary = props.deck.summary;\n }\n\n return (\n \n \n \n \n {props.deck.name || \"Flashcard Deck #1\"}\n \n \n\n \n
\n\n
\n
\n \n \n
\n Start\n
\n \n
\n \n \n );\n};\n","import { BottomNavigation, BottomNavigationAction } from \"@material-ui/core\";\nimport HomeIcon from \"@material-ui/icons/Home\";\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport StyleIcon from \"@material-ui/icons/Style\";\nimport InboxIcon from '@material-ui/icons/Inbox';\nimport EmojiEventsIcon from '@material-ui/icons/EmojiEvents';\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { NavLink } from \"react-router-dom\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport \"../styles/navStyles.css\";\nimport \"../styles/masterStyles.css\";\n\n//TODO style appropriately and see how to simulate tabs\n//TODO set display to none when on splash screen.\n\nconst Foot = props => {\n const [value, setValue] = React.useState(0);\n\n const footerIcon = icon => {\n switch (icon) {\n case \"rankings\":\n return (\n }\n to=\"/leaderboard\"\n component={NavLink}\n />\n )\n\n case \"inbox\": \n return (\n }\n to=\"/notifications\"\n component={NavLink}\n />\n )\n\n case \"myDecks\": \n return (\n }\n to=\"/myDecks\"\n component={NavLink}\n />\n )\n\n case \"settings\":\n return (\n }\n to=\"/settings\"\n component={NavLink}\n />\n );\n default:\n return (\n }\n to=\"/home\"\n component={NavLink}\n />\n );\n }\n };\n \n if (props.auth && props.user_details) {\n const { footerOne, footerTwo, footerThree } = props;\n // console.log('\\nSTARTING \\nfooter props: ', props, '\\n... ENDING'); // console.log('');\n return (\n {\n setValue(newValue);\n }}\n showLabels\n id=\"MainFooter\"\n >\n {footerIcon('home')}\n {/* {footerIcon(footerOne)} */}\n {footerIcon(footerTwo)}\n {footerIcon(footerThree)}\n\n {\n Number(props.user_details.newMessages)\n ? (\n !
\n )\n : null\n }\n \n );\n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => {\n const { auth, user_details } = state.auth;\n const { footerOne, footerTwo, footerThree } = state.style;\n return { auth, user_details, footerOne, footerTwo, footerThree };\n};\n\nconst Footer = connect(mapStateToProps)(Foot);\n\nexport { Footer };\n","import { AppBar, Typography, Toolbar, IconButton, BottomNavigation, BottomNavigationAction } from \"@material-ui/core\";\nimport HomeIcon from \"@material-ui/icons/Home\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport SettingsIcon from \"@material-ui/icons/Settings\";\nimport ChevronLeftRoundedIcon from '@material-ui/icons/ChevronLeftRounded';\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\nimport React from \"react\";\nimport { Link, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { MenuDrawer } from \"../components\";\nimport \"../styles/navStyles.css\";\n\nconst Head = props => {\n const handleBack = () => {\n // props.history.goBack();\n if (typeof props.history !== 'undefined') {\n props.history.goBack();\n } else {\n return false;\n }\n }\n\n // console.log('props:', props)\n\n let cmeYears = null;\n\n if (typeof props.user_details.labstest !== 'undefined') {\n cmeYears = props.user_details.cmeYears;\n }\n\n if (props.auth) {\n const { iconOne, iconTwo, headerText, backgroundcolor } = props;\n const iconSelector = icon => {\n switch (icon) {\n case \"menu\":\n return (\n \n );\n\n case \"back\":\n return (\n \n \n \n )\n\n case \"search\":\n return (\n \n \n \n );\n case \"home\":\n return (\n \n \n \n \n \n );\n\n case \"profile\":\n return (\n \n \n \n \n \n );\n\n case \"settings\":\n return (\n \n \n \n \n \n );\n default:\n return (\n \n \n \n );\n }\n };\n\n return (\n \n \n {iconSelector(iconOne)}\n\n \n {headerText || \"SASP\"}\n \n\n {iconSelector(iconTwo)}\n \n \n );\n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => {\n // console.log('state: ', state);\n const { auth, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n return { headerText, iconOne, iconTwo, auth, backgroundcolor, user_details };\n};\n\nconst Header = connect(mapStateToProps)(withRouter(Head));\n\nexport { Header }\n","import Grid from \"@material-ui/core/Grid\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { colorPicker } from \"../common\";\nimport { buttonStyles, cardStyles, textStyles } from \"../styles\";\n\n//TODO currently not printing first record.\n\nexport const HomeDeckCard = props => {\n const cards = cardStyles();\n const buttons = buttonStyles();\n const texts = textStyles();\n\n if (props.length === 0) {\n return (\n \n \n \n \n \n \n \n \n Create Deck\n \n \n \n \n \n );\n } else {\n // console.log('\\nSTARTING Home ... \\nprops: ', props);\n if (Number(props.index) === -1) {\n return (\n <>\n \n \n \n \n \n \n \n \n Create Deck\n \n \n \n \n \n >\n );\n } else {\n // console.log(props);\n let __uri = props.flashcard ? \"/showFlashCard\" : \"/questionScreen\";\n // console.log(`deckid ${props.deckID} url: `, __uri, '\\n');\n let _obj = {\n pathname: __uri,\n gameMode: props.gamemode ? props.gamemode : 3\n }\n\n if (props.flashcard) {\n _obj.deckid = props.deckID;\n _obj.year = 0;\n } else {\n _obj.deckID = props.deckID;\n }\n\n if (props.totalQs === 0) {\n _obj.pathname = '/home';\n return null\n }\n\n // console.log(_obj);\n\n return (\n <>\n \n \n \n \n \n {props.deckName || `Deck ${props.index}`}\n \n \n \n \n \n >\n );\n }\n }\n};\n","import React from 'react';\nimport { Link } from \"react-router-dom\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport Modal from '@material-ui/core/Modal';\nimport InfoIcon from '@material-ui/icons/Info';\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: 'absolute',\n backgroundColor: theme.palette.background.paper,\n border: \"2px solid #00567a\",\n borderRadius: \"8px\",\n boxShadow: theme.shadows[5],\n padding: \"8px 16px 16px\",\n maxHeight: `68vh`,\n width: '75vw',\n overflow: 'auto',\n outline: \"none\"\n },\n}));\n\nconst ModalWidget = props => {\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n const createMarkup = props => {\n return { __html: props };\n };\n\n const body = (\n \n
{props.title} \n
\n \n {typeof props.action !== 'undefined' && props.action === 'question'\n ? (\n
\n
\n {\n props.setPrevPageDetails()\n }}\n >\n Answer Question\n \n
\n
\n ) : null\n }\n\n
\n );\n\n return(\n \n \n {props.text}\n \n \n {body}\n \n
\n )\n}\n\nexport default ModalWidget;","import React, { useState } from \"react\";\nimport { SaspButton } from \"./SaspButton\";\nimport AddIcon from '@material-ui/icons/Add';\nimport RemoveIcon from '@material-ui/icons/Remove';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport { NextPrevButton, ReviewSlider, CopyrightWidget, LabsComponent } from \"../components\";\nimport Popover from '@material-ui/core/Popover';\nimport { buttonStyles, cardStyles } from \"../styles\";\nimport \"../styles/questionStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { TextField, List, ListItem, ListItemIcon, Checkbox, FormControlLabel, FormGroup, Container, Divider, Grid, Button, Fab, Typography,} from \"@material-ui/core\";\nimport ModalImages from \"../components/ModalImages\";\nimport ModalWidget from \"../components/ModalWidget\";\nimport { remoteURL, scrollTop } from \"../common\";\nimport { isMobile, deviceDetect, deviceType, isElectron, isIOS, isAndroid } from 'react-device-detect';\n\n\n//TODO restyle submit button. it's invisible when hidden right now\n\nexport const QuestionCard = props => {\n //TODO rename nextToggle and optionSelected. It's confusing as is. Disabled should be\n //toggleNext, and optionSelected should be disabled\n // console.log('PROPS:\\n', props);\n\n const classes = cardStyles();\n const buttons = buttonStyles();\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [value, setValue] = useState('');\n\n const handleFABClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleFABRemove = async () => {\n const removeCallBack = async (index) => {\n console.log('button: ', index);\n // console.log('props: ', props);\n let obj = {\n mcid: props.question.mcid,\n key: props.myKey,\n deckID: props.deckID,\n questionid: props.question.questionID\n }\n\n if (isAndroid) {\n switch (index) {\n case 1: {\n return props.removeQuestion(obj);\n }\n default: {\n return false;\n }\n }\n } else if (isIOS) {\n switch (index) {\n case 1: {\n return props.removeQuestion(obj);\n }\n default: {\n return false;\n }\n }\n } else {\n switch (index) {\n case 0: {\n return props.removeQuestion(obj);\n }\n default: {\n return false;\n }\n }\n }\n \n }\n\n return navigator.notification.confirm(`Are you sure you want to remove Question ${props.question.questionNumber} from this deck?`, removeCallBack, 'Remove Question', ['Remove', 'Cancel']);\n \n };\n \n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const open = Boolean(anchorEl);\n const id = open ? 'simple-popover' : undefined;\n\n let [nextToggle, toggleNext] = useState(false);\n let [optionSelected, toggleOptionSelected] = useState(true);\n let [buttonOptions, toggleButtons] = useState({\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false\n });\n\n let [answerGrade, gradeAnswers] = useState({\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n 4: false\n });\n \n let [dynamicStyle, changeStyles] = useState({\n 0: {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n },\n 1: {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n },\n 2: {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n },\n 3: {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n },\n 4: {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n }\n });\n\n const onSubmit = async(props, next) => {\n scrollTop('questionDiv', 0);\n await setValue('');\n let elem = document.getElementById('questioncomment-multiline-flexible');\n if (elem) {\n elem.classList.remove('active-text-field');\n }\n\n if (props.gameMode === 2 && 1 === 1) {\n for (let i = 0; i < Object.values(answerGrade).length; i++) {\n if (Object.values(buttonOptions)[i] === true) {\n toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n props.updateOption(props.answers[i].AnswerOptionID);\n }\n }\n\n if (!optionSelected) {\n toggleOptionSelected(false);\n }\n\n toggleNext((nextToggle = false));\n return props.goNext(true);\n } else if (props.gameMode !== 2 && next === true ) {\n for (let i = 0; i < Object.values(answerGrade).length; i++) {\n toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n changeStyles(old => {\n let updated = {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n };\n return { ...old, [i]: updated };\n });\n gradeAnswers(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n\n if (!optionSelected) {\n toggleOptionSelected(true);\n }\n }\n\n goNext();\n\n return toggleNext((nextToggle = false));\n } else {\n for (let i = 0; i < Object.values(answerGrade).length; i++) {\n if (Object.keys(buttonOptions)[i] === i) {\n if (props.answers[i].AnswerOptionCorrect === 1) {\n gradeAnswers(old => {\n let updated = \"check\";\n return { ...old, [i]: updated };\n });\n changeStyles(old => {\n let updated = {\n trueClass: \"correctGradedButtons\",\n trueColor: \"correctQuestionButtons\",\n falseColor: \"correctGradedButtons\"\n };\n return { ...old, [i]: updated };\n });\n if (Object.values(buttonOptions)[i] === true) {\n toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n } else {\n toggleButtons(old => {\n let updated = true;\n return { ...old, [i]: updated };\n });\n }\n }\n if (Object.values(buttonOptions)[i] === true) {\n props.updateOption(props.answers[i].AnswerOptionID);\n if (props.answers[i].AnswerOptionCorrect === 0) {\n gradeAnswers(old => {\n let updated = \"wrong\";\n return { ...old, [i]: updated };\n });\n changeStyles(old => {\n let updated = {\n trueClass: \"incorrectGradedButtons\",\n trueColor: \"incorrectQuestionButtons\",\n falseColor: \"incorrectGradedButtons\"\n };\n return { ...old, [i]: updated };\n });\n toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n }\n }\n }\n }\n toggleNext((nextToggle = !nextToggle));\n }\n };\n\n const handleClick = index => {\n for (let i = 0; i < Object.values(buttonOptions).length; i++) {\n if (index === i && buttonOptions[i] !== true) {\n toggleButtons(old => {\n let updated = true;\n return { ...old, [index]: updated };\n });\n } else {\n toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n }\n }\n if (optionSelected === true) {\n toggleOptionSelected(false);\n }\n };\n\n const renderQuestions = props => {\n if (props.answers) {\n return props.answers.map((item, index) => {\n let gridClass = classes.questionButtonsContainer;\n if (nextToggle && !answerGrade[index]) {\n gridClass = 'hidden';\n }\n return (\n \n handleClick(index)}\n selected={buttonOptions[index]}\n button=\"DynamicButton\"\n disabled={nextToggle}\n style={{ height: \"100%\", justifyContent: \"flex-start\" }}\n >\n {/* TODO EDIT this typography to match better */}\n {item.AnswerOptionLetter}.
\n
\n \n \n );\n });\n } else {\n return (\n <>\n \n handleClick(0)}\n selected={buttonOptions[0]}\n >\n Choice 1\n \n \n \n handleClick(1)}\n selected={buttonOptions[1]}\n >\n Choice 2\n \n \n \n handleClick(2)}\n selected={buttonOptions[2]}\n >\n Choice 3\n \n \n \n handleClick(3)}\n selected={buttonOptions[3]}\n >\n Choice 4\n \n \n \n handleClick(4)}\n selected={buttonOptions[4]}\n >\n Choice 5\n \n \n >\n );\n }\n };\n\n const goToQuestion = async (id, type) => {\n scrollTop('questionDiv', 0);\n \n for (let i = 0; i < Object.values(buttonOptions).length; i++) {\n await toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n \n await changeStyles(old => {\n let style = {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n };\n return { ...old, [i]: style };\n });\n }\n \n await setValue('');\n await toggleNext(false);\n props.skipQuestion(id, type);\n }\n\n const goNext = async () => {\n scrollTop('questionDiv', 0);\n \n for (let i = 0; i < Object.values(buttonOptions).length; i++) {\n await toggleButtons(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n\n await gradeAnswers(old => {\n let updated = false;\n return { ...old, [i]: updated };\n });\n \n await changeStyles(old => {\n let style = {\n trueClass: \"questionButtons\",\n trueColor: \"trueQuestionButtons\",\n falseColor: \"questionButtons\"\n };\n return { ...old, [i]: style };\n });\n }\n \n await setValue('');\n await toggleNext(false);\n\n props.goNext()\n }\n\n const addQuestion = async (obj) => {\n if (obj.send) {\n await props.addToDecks(obj.questionID, obj.deckID);\n if (obj.id) {\n let element = document.getElementById(obj.id);\n if (element) {\n try {\n element.className = \"hidden\"\n } catch (e) {\n }\n }\n }\n }\n }\n\n const createMarkup = props => {\n return { __html: props };\n };\n\n const handleChange = (event) => {\n setValue(event.target.value);\n };\n\n const handleBlur = async (event) => {\n let obj = {\n mcid: props.question.mcid,\n key: props.myKey,\n comment: value,\n gameMode: Number(props.gameMode),\n questionID: props.question.questionID\n }\n\n switch(Number(props.gameMode)) {\n case 1:\n case 2: {\n obj.yearvar = props.question.availableyears;\n break;\n }\n\n case 3:\n case 4: {\n obj.deckID = props.deckID;\n break;\n }\n }\n\n let elem = document.getElementById('questioncomment-multiline-flexible');\n if (elem) {\n elem.classList.add('active-text-field');\n }\n // console.log(\"add active-text-field\\n\", elem);\n await props.addNote(obj);\n }\n\n let temp = props.deckList.find(item => item.deckID === props.deckID);\n // console.log('temp: \\n', temp);\n let owner = 0;\n if (typeof temp !== 'undefined') {\n owner = Number(temp.owner);\n } \n\n let questionName = props.gameMode < 3 ? 'Question ' + props.question.questionNumber : props.deckText;\n let referenceURI = 'https://university.auanet.org/mobileapps/sasp/resources/references.cfm?questionid=' + props.question.questionID + '&questionnumber=' + props.question.questionNumber + '&id=' + props.question.mcid + '&key=' + props.myKey;\n\n let isspaced = null;\n let _thisdeck = props.deckList.filter(item => item.deckID === props.deckID);\n\n if (_thisdeck.length > 0) {\n isspaced = _thisdeck[0].isspaced;\n }\n\n return (\n \n \n
\n {questionName}\n
\n\n {props.gameMode < 3 || owner\n ? (\n
\n <>\n {owner\n ? (\n
handleFABRemove()}\n InDecks={props.question.InDecks}\n >\n \n \n ) : null\n }\n >\n
\n \n \n
\n \n \n \n addQuestion({\n questionID: props.question.questionID, \n gameMode: props.question.gameMode,\n deckID: null,\n send: event.target.checked\n })}\n />\n }\n label=\"Add to All Decks\"\n />\n \n \n \n \n\n {props.deckList.map((row, index) => (\n \n \n addQuestion({\n gameMode: props.question.gameMode, \n deckID: row.deckID,\n questionID: props.question.questionID,\n send: event.target.checked,\n id:\"FABList_\" + row.deckID\n })}\n className='text-grey'\n checked={(props.question.InDecks.includes(row.deckID)) ? true : false}\n />\n }\n label={row.deckname.length ? row.deckname : `My Deck ${index}`}\n />\n \n \n ))}\n
\n \n\n
\n \n )\n : (\n
\n handleFABRemove()}\n InDecks={props.question.InDecks}\n >\n \n \n\n \n
\n )\n }\n
\n\n
\n\n \n { props.question.qImages.length > 0\n ? (\n \n )\n : null\n }\n
\n\n \n {renderQuestions(props)}\n \n\n \n\n \n {props.prevID != '0'\n && props.prevID != null\n && props.gameMode < 3\n ? (\n goToQuestion(props.prevID, 'prev')}\n />\n )\n : (\n {return false}}\n />\n )\n }\n\n {!nextToggle ? (\n optionSelected ? (\n \n Submit\n \n ) : (\n <>\n {props.gameMode === 2 || props.gameMode === 4\n ? (\n onSubmit(props, true)}\n >\n Submit\n \n )\n : (\n onSubmit(props, false)}\n >\n Submit\n \n )\n }\n >\n )\n ) : (\n onSubmit(props, true)}\n >\n Next\n \n )}\n\n {props.nextID != '0' \n && props.gameMode < 3\n && props.prevID != null\n ? (\n goToQuestion(props.nextID, 'next')}\n />\n )\n : (\n goNext()}\n />\n )\n }\n
\n\n {typeof props.refsMats !== 'undefined' && props.refsMats\n ? (\n \n \n
\n ) : null\n }\n\n {nextToggle\n ? (\n <>\n \n \n \n Add Note\n \n \n \n \n \n \n \n\n \n {isspaced \n ? (\n \n \n \n \n ) : null\n }\n\n {props.explanation.questionExplanation \n ? (\n \n \n Explanation\n \n \n
\n \n\n \n References\n \n \n \n
\n \n ) \n : (\n \n \n Sorry, we are having trouble fetching the explanation for this\n question.\n \n \n )\n }\n \n >\n ) : null}\n \n );\n};","import Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { cardStyles, colorPallete, textStyles } from \"../styles\";\nimport StarIcon from '@material-ui/icons/Star';\n\nexport const TestTableCard = props => {\n const cards = cardStyles();\n const textStyle = textStyles();\n const colors = colorPallete();\n const classes = props.className || null;\n\n const determineCards = props => {\n if (props.useravailable == 1) {\n let obLink = {\n pathname : props.openpercentage < 100 ? '/questionScreen' : '/testResultScreen',\n testYear : props.testYear,\n gameMode : 1\n }\n\n let cbLink = {\n pathname : props.closedpercentage < 100 ? '/questionScreen' : '/testResultScreen',\n testYear : props.testYear,\n gameMode : 2\n }\n\n if (props.openpercentage >= 100) {\n obLink.deckID = 0;\n }\n\n if (props.closedpercentage >= 100) {\n cbLink.deckID = 0;\n }\n \n return (\n <>\n \n \n \n
\n \n \n \n Open Book\n ({props.openpercentage}%) \n \n \n \n
\n {/*//TODO pass open vs. closed book props & year information down */}\n
\n \n {props.openProgress || \"RESUME\"}\n \n \n
\n \n \n
\n \n \n \n
\n \n \n \n Closed Book\n ({props.closedpercentage}%) \n \n \n \n \n {props.closedProgress || \"BEGIN\"}\n \n \n \n
\n
\n \n \n >\n );\n } else {\n return (\n \n \n Purchase this year online\n \n \n );\n }\n };\n\n return (\n \n \n \n \n {props.testYear || \"2020\"}\n {/* <>\n {\n props.openProgress.toLowerCase() === 'details' || \n props.closedProgress.toLowerCase() === 'details'\n ? (\n \n \n \n ) : null\n } \n > */}\n \n \n {determineCards(props)}\n \n \n );\n};\n","import React, { Component } from \"react\";\nimport Skeleton from \"react-loading-skeleton\";\n\nclass SkeletonImage extends Component {\n state = {\n image: \"\"\n };\n\n handleImageLoaded() {\n this.setState({ image: \"loaded\" });\n }\n\n render() {\n return (\n \n {!this.state.image && (\n
\n )}\n
\n
\n );\n }\n}\n\nexport { SkeletonImage };\n","import React from 'react';\nimport InfoIcon from '@material-ui/icons/Info';\nimport CachedIcon from '@material-ui/icons/Cached';\nimport ShareIcon from '@material-ui/icons/Share';\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DoneIcon from '@material-ui/icons/Done';\nimport { SaspButton } from \"./SaspButton\";\nimport {\n Chip,\n FormControl,\n Grid,\n Input,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Typography,\n Divider,\n Modal\n} from \"@material-ui/core\";\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport useAutocomplete from '@material-ui/lab/useAutocomplete';\nimport NoSsr from '@material-ui/core/NoSsr';\nimport CheckIcon from '@material-ui/icons/Check';\nimport CloseIcon from '@material-ui/icons/Close';\nimport styled from 'styled-components';\nimport \"../styles/masterStyles.css\";\n\nconst Label = styled('label')`\n padding: 0 0 4px;\n line-height: 1.5;\n display: block;\n`;\n\nconst InputWrapper = styled('div')`\n width: 100%;\n border: 1px solid #d9d9d9;\n background-color: #fff;\n border-radius: 4px;\n padding: 1px;\n display: flex;\n flex-wrap: wrap;\n\n &:hover {\n border-color: #40a9ff;\n }\n\n &.focused {\n border-color: #00567a;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n\n & input {\n font-size: 14px;\n height: 30px;\n box-sizing: border-box;\n padding: 4px 6px;\n width: 0;\n min-width: 30px;\n flex-grow: 1;\n border: 0;\n margin: 0;\n outline: 0;\n }\n`;\n\nconst Tag = styled(({ label, onDelete, ...props }) => (\n \n {label} \n \n
\n))`\n display: flex;\n align-items: center;\n height: 24px;\n margin: 2px;\n line-height: 22px;\n background-color: #00567a;\n color: #f1f5f9;\n border: 1px solid #00567a;\n border-radius: 4px;\n box-sizing: content-box;\n padding: 0 4px 0 10px;\n outline: 0;\n overflow: hidden;\n\n &:focus {\n border-color: #40a9ff;\n background-color: #e6f7ff;\n }\n\n & span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n & svg {\n font-size: 12px;\n cursor: pointer;\n padding: 4px;\n }\n`;\n\nconst Listbox = styled('ul')`\n width: calc(100% - 32px);\n margin: 2px 0 0;\n padding: 0;\n position: absolute;\n list-style: none;\n background-color: #fff;\n overflow: auto;\n max-height: 50vh;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1;\n\n & li {\n padding: 5px 12px;\n display: flex;\n\n & span {\n flex-grow: 1;\n }\n\n & svg {\n color: transparent;\n }\n }\n\n & li[aria-selected='true'] {\n background-color: #fafafa;\n font-weight: 600;\n\n & svg {\n color: #1890ff;\n }\n }\n\n & li[data-focus='true'] {\n background-color: #e6f7ff;\n cursor: pointer;\n\n & svg {\n color: #000;\n }\n }\n`;\n\nconst useStyles = makeStyles((theme) => ({\n paper: {\n position: 'absolute',\n backgroundColor: theme.palette.background.paper,\n border: `2px solid #00567a`,\n borderRadius: \"8px\",\n boxShadow: theme.shadows[5],\n padding: \"8px 16px 16px\",\n maxHeight: '90vh',\n minHeight: \"45vh\",\n width: '90vw',\n maxWidth: \"300px\",\n overflow: 'auto',\n outline: \"none\"\n },\n formControl: {\n margin: theme.spacing(1),\n width: \"100%\"\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n backgroundColor: '#00567a',\n color: '#fff' \n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n}));\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: \"100%\",\n },\n },\n};\n\nconst setShareList = (arr) => {\n let r = [];\n for (const item of arr) {\n r.push({title: item.displayName, value: item.mcid});\n }\n // console.log('shareList: ', r);\n return r;\n} \n\nconst ModalForm = props => {\n let cClasses;\n if (typeof props.cClasses == 'undefined') {\n cClasses = 'margin-right-32';\n } else {\n cClasses = props.cClasses;\n }\n // console.log('\\nSTARTING ModalForm ... \\nprops: ', props);\n const shareList = setShareList(props.accessList.shareList);\n const {\n getRootProps,\n getInputLabelProps,\n getInputProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n groupedOptions,\n value,\n focused,\n setAnchorEl,\n } = useAutocomplete({\n id: 'shareWith-AC',\n defaultValue: [],\n multiple: true,\n options: shareList,\n getOptionLabel: (option) => option.title,\n });\n\n const classes = useStyles();\n const [open, setOpen] = React.useState(false);\n const [sendTo, setSend] = React.useState('');\n const [note, setNote] = React.useState('');\n const [subject, setSubject] = React.useState('');\n const [emailError, setEmail] = React.useState(false);\n const [noteError, setNoteError] = React.useState(false);\n const [shareWith, setShareWith] = React.useState([]);\n\n const handleOpen = () => {\n setOpen(true);\n };\n\n const handleShareWith = (event) => {\n let val = event.target.value;\n setShareWith(val);\n }\n\n const handleEmail = () => {\n let bool = true;\n let t = sendTo.toString();\n\n if (t.length < 5) {\n setEmail(false);\n return false;\n }\n\n t = t.replace(/\\s/g, ',')\n t = t.replace(/;/g, ',')\n t = t.replace(/,,/g, ',')\n let em = t.split(',');\n\n // console.log('\\nSTARTING handleEmail()');\n // console.log('sendTo: ', sendTo);\n // console.log('t: ', t);\n // console.log('em: ', em);\n\n for (let i of em) {\n if (/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(i)) { bool = false; }\n // console.log('handleEmail [' + i + ']: ', bool);\n setEmail(bool);\n }\n\n }\n\n const handleClose = () => {\n setSubject('');\n setSend('');\n setEmail(false);\n setOpen(false);\n };\n\n const handleChange = type => event => {\n switch(type) {\n case 'sendTo': {\n setSend(event.target.value);\n break;\n }\n case 'subject': {\n setSubject(event.target.value);\n break;\n }\n case 'email': {\n setSend(event.target.value);\n // handleEmail();\n break;\n }\n case 'note': {\n setNote(event.target.value);\n break;\n }\n }\n }\n\n const handleSubmit = (data) => event => {\n if (data.type == 'email' && emailError) {\n return false;\n }\n\n let obj = {\n key: props.myKey,\n mcid: props.mcid,\n type: data.type,\n shareWith: ''\n }\n\n if (props.deckID) { obj.deckID = props.deckID; }\n else { obj.yearvar = props.yearvar; }\n\n switch (obj.type) {\n case 'email': {\n if (sendTo.length <= 5) {\n // console.log('invalid email address');\n setEmail(true);\n return false;\n }\n \n if (sendTo != '') {\n obj.shareWith = sendTo;\n }\n \n if (subject != '') {\n obj.message = subject;\n }\n break;\n }\n case 'share': {\n let cnt = 0;\n for (let item of value) {\n if (cnt) { obj.shareWith += ','}\n obj.shareWith += item.value;\n cnt++;\n }\n break;\n }\n case 'note': {\n obj.note = note;\n obj.noteID = props.noteID;\n obj.state = 2;\n break;\n }\n case 'removeNote': {\n obj.noteID = props.noteID;\n obj.state = 0;\n break;\n }\n case 'complete': {\n obj.qyear = data.qyear;\n obj.gamemode = data.gamemode;\n break;\n }\n }\n props.func(obj);\n\n handleClose();\n return null;\n };\n\n const createMarkup = props => {\n return { __html: props };\n };\n\n const form = (text) => {\n let str;\n let textstr = props.textstr;\n\n switch(props.type) {\n case 'email': {\n str = (\n <>\n \n {emailError \n ? (\n \n )\n : (\n \n )\n }\n \n \n\n \n \n Cancel\n \n\n \n Email Now\n \n
\n >\n )\n break;\n }\n case 'share': {\n str = (\n <>\n \n \n \n
\n Share With \n \n {value.map((option, index) => (\n \n ))}\n \n \n
\n {groupedOptions.length > 0 \n ? (\n
\n {groupedOptions.map((option, index) => (\n \n {option.title} \n \n \n ))}\n \n ) \n : null\n }\n
\n \n \n \n\n \n \n Cancel\n \n\n \n Share {textstr}\n \n
\n >\n )\n break;\n }\n case 'reset': {\n str = (\n <>\n \n Are you sure want to reset this {textstr}?
\n \n\n \n\n \n \n Cancel\n \n\n \n Reset Now\n \n
\n >\n )\n break;\n }\n case 'complete': {\n str = (\n <>\n \n Are you sure want to complete this {textstr}?
\n \n\n \n\n \n \n Cancel\n \n\n \n Complete Now\n \n
\n >\n )\n break;\n }\n case 'removeNote': {\n str = (\n <>\n \n Are you sure want to remove this note?
\n \n\n \n\n \n \n Cancel\n \n\n \n Remove\n \n
\n >\n )\n break;\n }\n case 'note': {\n // if (typeof props.note !== 'undefined') { setNote(props.note) }\n // console.log('\\nSTARTING note: ', props);\n str = (\n <>\n \n {noteError \n ? (\n \n )\n : (\n \n )\n }\n \n \n\n \n \n Cancel\n \n\n \n Edit Now\n \n
\n >\n )\n break;\n }\n default: {\n return null;\n }\n }\n\n if (typeof str == 'object') {\n return (\n \n {str}\n
\n )\n } \n }\n\n const body = (\n \n
{props.title} \n
\n \n
\n {form('in div...')}\n
\n
\n );\n\n const button = () => {\n let btn;\n let btnClass=\"icon-widget\";\n \n if (props.text) {\n switch(props.type) {\n case 'email': {\n btn = (\n \n )\n break;\n }\n case 'complete': {\n btn = (\n \n )\n break;\n }\n case 'reset': {\n btn = (\n \n )\n break;\n }\n case 'share': {\n btn = (\n \n )\n break;\n }\n case 'note': {\n btn = (\n \n // <>{props.text}>\n )\n break;\n }\n case 'removeNote': {\n btnClass = \"icon-widget background-orange\";\n btn = (\n \n // <>{props.text}>\n )\n break;\n }\n default: {\n btn = (\n \n )\n break;\n }\n }\n\n return (\n \n
{btn}
\n
{props.title}
\n
\n )\n } else {\n switch(props.type) {\n case 'email': {\n btn = (\n \n )\n break;\n }\n case 'complete': {\n btn = (\n \n )\n break;\n }\n case 'reset': {\n btn = (\n \n )\n break;\n }\n case 'share': {\n btn = (\n \n )\n break;\n }\n case 'note': {\n btn = (\n \n // <>{props.text}>\n )\n break;\n }\n case 'removeNote': {\n btnClass = \"icon-widget background-orange\";\n btn = (\n \n // <>{props.text}>\n )\n break;\n }\n default: {\n btn = (\n \n )\n break;\n }\n }\n\n return (\n \n
\n \n {btn}\n \n
\n\n {props.subtitle\n ? (
{props.subtitle}
)\n : null\n }\n
\n )\n }\n \n };\n\n return (\n \n {button()}\n \n {body}\n \n
\n )\n}\n\nexport default ModalForm;","import React, { useState } from \"react\";\nimport { Redirect, Link } from 'react-router-dom';\nimport \"../styles/questionStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport ModalWidget from \"../components/ModalWidget\";\nimport ModalForm from \"../components/ModalForm\";\nimport { \n Container, Divider, Grid, Typography, TextField, \n Table, TableBody, TableCell, TableContainer, \n TableHead, TableRow, Paper, Popover, ListItem, \n List, Fab \n} from \"@material-ui/core\"\nimport CloseIcon from '@material-ui/icons/Close';\nimport { isElectron, isMobileOnly, isAndroid, isIOS } from 'react-device-detect';\nimport { LoadingCard, CopyrightWidget } from \"../components\";\nimport { alertNotification, scrollTop, getThisYear, APPVERSION } from \"../common\";\n\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\n\nexport const CompleteCard = props => {\n // console.log('props: ', props);\n const [value, setValue] = useState('');\n const [anchorEl, setAnchorEl] = useState(false);\n var conObj = {};\n /*\n gameMode={Number(props.gameMode)}\n deckID={Number(props.results.deckID)}\n yearvar={props.results.availableyears}\n mcid={props.user_details.mcid}\n myKey={props.user_details.key}\n */\n const handleSubmit = async (obj) => {\n let data = {\n mcid: obj.mcid,\n key: obj.key\n }\n\n if (typeof obj.yearvar !== 'undefined') {\n data.yearvar = obj.yearvar;\n data.gameMode = props.gameMode;\n } else if (typeof obj.deckID !== 'undefined') { \n data.deckID = obj.deckID;\n }\n\n switch(obj.type) {\n case 'reset': {\n await props.resetDeck(data);\n\n alertNotification({\n message: 'You have reset this test.',\n title: 'SASP App Message',\n buttonName: 'Done'\n });\n\n scrollTop('completeScreen-div', 0);\n\n return \n }\n\n case 'share': {\n data.shareWith = obj.shareWith;\n scrollTop('completeScreen-div', 0);\n\n alertNotification({\n message: 'You have shared this deck with another user.',\n title: 'SASP App Message',\n buttonName: 'Done'\n });\n\n return props.shareDeck(data);\n }\n\n case 'email': {\n data.shareWith = obj.shareWith;\n data.results = props.results;\n data.gameMode = props.results.gameMode;\n\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n scrollTop('completeScreen-div', 0);\n\n alertNotification({\n message: 'You have emailed your results to another user.',\n title: 'SASP App Message',\n buttonName: 'Done'\n });\n\n return props.emailResults(data);\n }\n\n case 'note': {\n data.noteID = obj.noteID;\n data.state = obj.state;\n data.comment = obj.comment;\n return props.addNote(data);\n } \n\n case 'complete': {\n data.qyear = obj.qyear;\n data.gamemode = obj.gamemode;\n // document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n scrollTop('completeScreen-div', 0);\n\n alertNotification({\n message: 'Results have been submitted. An email will be sent to you shortly to complete the Evaluation and Claim CME.',\n title: 'SASP App Message',\n buttonName: 'Done'\n });\n\n props.setComplete(0);\n\n return props.submitCME(data);\n }\n\n default: {\n // document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n scrollTop('completeScreen-div', 0);\n return null;\n }\n }\n }\n\n const onConfirm = (index) => {\n index = Number(index);\n let _obj = {\n mcid: props.mcid,\n key: props.myKey,\n fkdeckid: conObj.deckuserid,\n active: 0,\n owner: conObj.owner\n }\n if (isAndroid) {\n switch (index) {\n case 1: {\n props.removeShare(_obj);\n return null;\n }\n default: {\n return false;\n }\n }\n } else if (isIOS) {\n switch (index) {\n case 1: {\n props.removeShare(_obj);\n return null;\n }\n default: {\n return false;\n }\n }\n } else {\n switch (index) {\n case 1: {\n props.removeShare(_obj);\n return null;\n }\n default: {\n return false;\n }\n }\n }\n }\n\n const handleFABClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n \n const handleClose = () => {\n setAnchorEl(false);\n };\n \n let text = '';\n let header = '';\n\n if (props.gameMode < 3) { \n let year = (props.question.QuestionYear ? props.question.QuestionYear : props.question.availableyears);\n text = \"You have completed SASP \" + props.testYear; \n header = 'SASP ' + props.testYear;\n } else if (typeof props.deckID !== 'undefined') { \n let thisDeck = props.deckList.find(item => item.deckID == props.deckID);\n\n if (typeof thisDeck !== 'undefined') {\n text = 'You have completed: ' + thisDeck.deckname; \n header = thisDeck.deckname; \n } else {\n text = \"\"; \n header = 'SASP';\n } \n } else { text = 'You have completed this Deck'; header = 'SASP' }\n\n const handleChange = (event) => {\n setValue(event.target.value); \n };\n\n const handleBlur = async (event) => {\n \n let obj = {\n mcid: props.user_details.mcid,\n key: props.user_details.key,\n note: value,\n gameMode: Number(props.gameMode)\n }\n\n switch(Number(props.gameMode)) {\n case 1:\n case 2: {\n obj.yearvar = props.results.availableyears;\n break;\n }\n\n case 3:\n case 4: {\n obj.deckID = props.deckID;\n break;\n }\n }\n\n await props.addNote(obj);\n }\n\n let resObj = [{\n name: 'Deck Name',\n result: '0/0',\n percentage: 0,\n correct: 0,\n incorrect: 0,\n answered: 0,\n total: 0,\n }];\n let notes = [];\n\n let resultDetails = [];\n function compare(a, b) {\n if (a.qNumber > b.qNumber) { return 1 }\n else if (a.qNumber < b.qNumber) { return -1 }\n else { return 0 }\n }\n\n if (typeof props.results.questions !== 'undefined') {\n let temp = props.results.questions.filter(item => item.isActiveQuestion == '1');\n resultDetails = [...temp].sort(compare);\n const answeredObj = temp.filter(item => Number(item.totalResponses) > 0);\n const correctObj = temp.filter(item => Number(item.correctAnswers) > 0);\n const incorrectObj = temp.filter(item => Number(item.IncorrectAnswers) > 0);\n notes = props.user_details.notes.notes.filter(item => props.results.questionlist.includes(item.questionID));\n \n let per = Math.trunc((props.results.getCorrectRecordCount / temp.length) * 100);\n // per = Math.trunc((props.results.correctAnswer / temp.length) * 100);\n \n resObj = [{\n name: header,\n result: correctObj.length + '/' + temp.length,\n percentage: per,\n correct: correctObj,\n incorrect: incorrectObj,\n answered: answeredObj,\n total: temp.length\n }];\n }\n\n const cleanText = (text) => {\n let r = '' + text + '
';\n r = r.replace(/\\n/g, '
');\n r = r.replace(/\\r/g, '
');\n r = r.replace(/<\\/p>
<\\/p>
/g, '
');\n return r;\n }\n\n const createMarkup = props => {\n let temp = props;\n if (!props.includes('
')) { temp = cleanText(temp); }\n return { __html: temp };\n };\n\n const fabCSS = {\n margin: \"0 0 0 8px\", \n color: \"#f1f3f5\", \n backgroundColor:\"#00567a\"\n }\n\n const createFAB = (props) => {\n return (\n <>\n \n \n \n \n \n {props.deckID > 1\n ? (\n \n 2 ? 'Deck' : 'Test')}\n textstr={props.gameMode > 2 ? 'Deck' : 'Test'}\n gameMode={Number(props.gameMode)}\n deckID={Number(props.results.deckID)}\n yearvar={props.results.availableyears}\n mcid={props.user_details.mcid}\n myKey={props.user_details.key}\n accessList={props.accessList}\n cClasses={''}\n text={true}\n />\n \n ) : null\n }\n\n \n 2 ? 'Deck' : 'Test')}\n textstr={props.gameMode > 2 ? 'Deck' : 'Test'}\n gameMode={Number(props.gameMode)}\n deckID={Number(props.results.deckID)}\n yearvar={props.results.availableyears}\n mcid={props.user_details.mcid}\n myKey={props.user_details.key}\n accessList={props.accessList}\n cClasses={''}\n text={true}\n />\n \n\n \n 2 ? 'Deck' : 'Test'}\n gameMode={Number(props.gameMode)}\n deckID={Number(props.results.deckID)}\n yearvar={props.results.availableyears}\n mcid={props.user_details.mcid}\n myKey={props.user_details.key}\n accessList={props.accessList}\n // style={{margin: \"0 !important;\"}}\n cClasses={''}\n text={true}\n />\n \n\n \n {(props.results.completed == 0 && props.showComplete && validyear)\n ? (\n 2 ? 'Deck' : 'Test'}\n gameMode={Number(props.gameMode)}\n deckID={Number(props.results.deckID)}\n yearvar={props.results.availableyears}\n mcid={props.user_details.mcid}\n myKey={props.user_details.key}\n accessList={props.accessList}\n // yearvar={props.results.availableyears}\n id=\"complete-widget\"\n cClasses={''}\n text={true}\n />\n ) : null\n }\n \n
\n \n > \n \n )\n }\n\n let validyear = 0;\n let _d = new Date();\n let tempYear = _d.getFullYear() - 2;\n\n if (props.testYear >= tempYear) {\n validyear = 1;\n }\n \n let shareObj = [];\n\n if (props.deck !== null && typeof props.deck.shared !== 'undefined') {\n if (Array.isArray(props.deck.shared)) {\n shareObj = props.deck.shared\n }\n }\n\n if (!props.show) {\n return (\n \n );\n } else {\n const optClassText = (isMobileOnly || isElectron) ? 'width100 flex-row-between' : 'width100 flex-row-start';\n\n return (\n \n \n \n {header}\n {createFAB(props)} \n \n \n \n\n {(!props.showComplete && validyear) \n ? (\n \n In order to claim CME for this year you must answer at least 50% of the questions correctly.
\n\n \n {\n let data = {\n mcid: props.mcid,\n key: props.myKey,\n type: 'reset'\n }\n\n if (typeof props.yearvar !== 'undefined'){\n data.yearvar = props.testYear.toString();\n data.shareWith = '';\n // data.gameMode = props.gameMode;\n } else if (typeof props.testYear !== 'undefined'){\n data.yearvar = props.testYear.toString();\n data.shareWith = '';\n // data.gameMode = props.gameMode;\n } else if (typeof props.deckID !== 'undefined') { \n data.deckID = props.deckID;\n }\n\n handleSubmit(data)\n }}\n\n className=\"text-blue text-bold text-strong\"\n >Click Here to restart the test and try again.\n
\n \n ) : null\n }\n\n \n \n Overview\n \n \n \n\n \n \n \n \n Deck Name \n Answered \n Current Score \n \n \n \n {resObj.map((row) => (\n \n {row.name} \n {row.result} \n {props.results.isWrong\n ? (— )\n : (\n \n {row.percentage}% \n {/* / {props.totalscore}% */}\n )\n }\n \n ))}\n \n
\n \n \n \n \n \n\n {props.results.stats\n ? (\n <>\n \n \n Summary\n \n \n \n \n \n \n \n Type of Question \n Questions (#) \n Score (%) \n\n {APPVERSION > '2.11.6'\n ? (\n All Users (%) \n ) : null\n }\n \n \n \n \n {props.results.stats.areas\n ? (\n <>\n {APPVERSION > '2.11.6'\n ? (\n \n \n Problem Area \n \n \n ): (\n \n \n Problem Area \n \n \n )}\n\n {props.results.stats.areas.map((row,index) => (\n \n {row.text} \n {row.questions} \n \n {row.percentage.trim()}\n \n {APPVERSION > '2.11.6'\n ? (\n {row.overall.trim()} ) \n :null\n }\n \n ))}\n >\n ) : null\n }\n\n {props.results.stats.patients\n ? (\n <>\n {APPVERSION > '2.11.6'\n ? (\n \n \n Problem Area \n \n \n ): (\n \n \n Problem Area \n \n \n )}\n\n\n {props.results.stats.patients.map((row,index) => (\n \n {row.text} \n {row.questions} \n \n {row.percentage.trim()}\n \n {APPVERSION > '2.11.6'\n ? (\n {row.overall.trim()} ) \n :null\n }\n \n ))}\n >\n ) : null\n }\n \n
\n \n >\n )\n : null\n }\n\n \n \n Results\n \n \n \n\n \n \n \n \n Question \n Correct \n Incorrect \n Attempts \n \n \n \n {resultDetails.map((row) => (\n \n \n Explanation ${row.qExplanation}
`}\n color='#00567a'\n action={row.action}\n questionid={row.QuestionID}\n setPrevPageDetails={() => {\n props.setPrevPageDetails(props);\n }}\n />\n \n \n {row.correctAnswers}\n \n \n {row.IncorrectAnswers}\n \n \n {row.totalResponses}\n \n \n ))}\n \n
\n \n \n \n Participant Profile (don't know format)
\n \n \n\n {props.deck !== null && typeof props.deck.shared !== 'undefined'\n ? (\n <>\n \n Shared With \n \n \n <>\n {shareObj.length\n ? (\n \n \n \n \n User \n Active \n {/* */}\n \n \n \n {shareObj.map((row) => (\n \n \n <>\n {row.active\n ? (\n {\n if (navigator.notification && row.active) {\n conObj = row;\n navigator.notification.confirm(\n `Are you sure that you want to remove ${row.displayname}'s access from this deck?`,\n onConfirm,\n 'SASP'\n )\n }\n }}\n className=\"text-blue\"\n >\n {row.displayname}\n \n )\n : (<>{row.displayname}>)\n }\n \n > \n \n \n <>\n {row.active\n ? (\n {\n if (navigator.notification && row.active) {\n conObj = row;\n navigator.notification.confirm(\n `Are you sure that you want to remove ${row.displayname}'s access from this deck?`,\n onConfirm,\n 'SASP'\n )\n }\n }}\n className=\"text-blue\"\n >\n {row.active ? 'Yes' : 'No'}\n \n )\n : (<>{row.active ? 'Yes' : 'No'}>)\n }\n \n >\n \n {/* — */}\n \n ))}\n \n
\n \n )\n : (\n You have not shared this deck with anyone.
\n )\n } \n >\n >\n ) : null\n }\n\n \n Notes \n \n \n \n \n \n {\n notes.length \n ? (\n notes.map((row) => (\n <>\n \n \n {row.qYear + 'Q' + row.qNumber}\n \n\n \n {row.dateStr}\n \n \n \n handleSubmit({\n noteID:row.noteID,\n mcid: props.user_details.mcid,\n key: props.user_details.key,\n state: 0,\n comment: row.comment,\n type: 'note'\n })}\n />\n \n \n\n \n \n
\n \n \n >\n ))\n )\n : (\n \n \n No Comments\n \n \n )\n }\n \n
\n \n \n \n \n );\n }\n};","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport List from '@material-ui/core/List';\nimport { Divider } from \"@material-ui/core\";\nimport ListItem from '@material-ui/core/ListItem';\nimport AddBoxIcon from \"@material-ui/icons/AddBox\";\nimport InfoIcon from '@material-ui/icons/Info';\nimport SchoolIcon from '@material-ui/icons/School';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport HomeIcon from \"@material-ui/icons/Home\";\nimport StyleIcon from \"@material-ui/icons/Style\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport ArchiveIcon from '@material-ui/icons/Archive';\nimport GroupIcon from '@material-ui/icons/Group';\nimport LocalLibraryIcon from '@material-ui/icons/LocalLibrary';\nimport \"../styles/navStyles.css\";\n\nconst useStyles = makeStyles({\n fullList: {\n width: 'auto',\n },\n});\n\nconst NavDrawer = props => {\n const classes = useStyles();\n const [state, setState] = React.useState({\n top: false,\n left: false,\n cme: {\n cmeTitle: '',\n cmeProgram: '',\n cmeShow: 0,\n cmeBody: ''\n }\n });\n\n const toggleDrawer = (anchor, open) => (event) => {\n if (event && event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) {\n return;\n }\n setState({ ...state, [anchor]: open });\n }\n\n let cmeText = [];\n \n if (props.cmeYears) { \n let _arr = props.cmeYears.reverse(); \n for (let i of _arr) {\n let tcme = '20' + i.programID.replace('SASP', '') + ' (' + i.programID + ')';\n let _tobj = i;\n _tobj.title = tcme;\n _tobj.year = '20' + i.programID.replace('SASP', '');\n _tobj.year = Number(_tobj.year);\n\n cmeText.push(_tobj)\n }\n }\n\n const loc = {\n pathname: '/error',\n prevLoc: {\n pathname: '/menu',\n detail: 'testing',\n user: props.user_details.displayname\n }\n };\n\n const list = (anchor) => (\n \n
\n \n \n \n \n \n \n \n \n\n {typeof props.user_details.program !== 'undefined' && props.user_details.program.isprogram\n ? (\n \n \n \n \n \n \n \n \n\n ) : null\n }\n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n
\n
\n\n {props.cmeYears\n ? (\n <>\n
\n {cmeText.map((cme) => (\n \n {\n\n }\n \n \n \n \n \n \n \n ))}\n
\n
\n >\n ) : null\n }\n\n
\n \n \n \n \n \n \n \n \n\n {props.user_details.mcid === '00863273'\n ? (\n \n \n \n \n \n \n \n \n ) : null\n }\n
\n
\n\n {props.user_details.isProgram && 1 === 0\n ? (\n <>\n
\n \n \n \n \n \n \n \n \n
\n
\n >\n ) : null\n\n \n }\n
\n );\n\n return (\n \n {['right'].map((anchor) => (\n
\n \n {/* \n \n
*/}\n \n {list(anchor)}\n \n \n ))}\n
\n )\n}\n\nconst mapStateToProps = state => {\n const { auth, user_details } = state.auth;\n return { auth, user_details };\n};\n\nconst MenuDrawer = connect(mapStateToProps)(NavDrawer);\n\nexport { MenuDrawer }","import React from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport RefreshIcon from '@material-ui/icons/Refresh';\nimport CachedIcon from '@material-ui/icons/Cached';\nimport ShareIcon from '@material-ui/icons/Share';\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\nimport ModalForm from \"../components/ModalForm\";\nimport \"../styles/questionStyles.css\";\nimport \"../styles/masterStyles.css\";\n\nexport const NextPrevButton = props => {\n // console.log('NextPrevButtonProps: \\n', props);\n const func = (type) => {\n // console.log('\\nNextPrevButton clicked...');\n return props.func();;\n }\n if (typeof props.gameMode !== 'undefined') {\n if (props.gameMode < 3) {\n if (props.prev) {\n return (\n func('prev')}\n >\n \n \n )\n } else if (props.next) {\n return (\n func('next')}\n >\n \n \n )\n } else {\n return (\n
\n )\n }\n } else if (props.gameMode > 2) {\n if (props.refresh) {\n return (\n func('refresh')}\n >\n \n \n )\n } else {\n return (\n
\n )\n }\n } \n } else if (typeof props.sharable !== 'undefined') {\n // console.log('\\nSTARTING NextPrevButton ... \\nprops: \\n', props);\n return (\n \n )\n\n switch(props.type) {\n case 'email': {\n return (\n \n )\n }\n\n case 'reset': {\n return (\n \n // func('reset')}\n // >\n // \n // \n )\n }\n\n case 'share': {\n return (\n \n // func('reset')}\n // >\n // \n // \n )\n }\n\n default: {\n return (\n
\n )\n }\n\n }\n }\n}; ","import {\n Checkbox,\n Chip,\n Container,\n FormControl,\n FormControlLabel,\n FormLabel,\n FormHelperText,\n FormGroup,\n Grid,\n Input,\n InputLabel,\n MenuItem,\n Select,\n Switch,\n TextField,\n Typography,\n Divider\n} from \"@material-ui/core\";\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport React from \"react\";\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { SaspButton } from \"./SaspButton\";\nimport { CounterWidget } from \"./CounterWidget\"\nimport ModalIcon from \"../components/ModalIcon\";\n\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n maxWidth: 300,\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n backgroundColor: '#00567a',\n color: '#fff' \n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n}));\n\nfunction getStyles(index, key, theme) {\n return {\n fontWeight:\n key.indexOf(index) === -1\n ? theme.typography.fontWeightRegular\n : theme.typography.fontWeightMedium,\n };\n}\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\nexport const EditDeckForm = props => {\n console.log('\\nSTARTING EditDeckForm... \\nprops: \\n', props);\n\n const [name, changeName] = React.useState(props.name);\n const [summary, changeSummary] = React.useState(props.summary);\n const [checkYears, setCheckedYears] = React.useState(props.yearsObj);\n const [checkAreas, setCheckedAreas] = React.useState(props.areaObj);\n const [checkKeyword, setCheckedKeyword] = React.useState(props.keywords);\n const [checkQuestions, setQuestions] = React.useState(props.questionObj);\n const [myYears, setMyYears] = React.useState([]);\n const [myAreas, setMyAreas] = React.useState([]);\n const classes = useStyles();\n const theme = useTheme();\n const selectYears = Object.keys(props.yearsObj);\n\n const [state, setState] = React.useState({\n isHome: props.isHome,\n openBook: props.openBook,\n isPublic: props.isPublic,\n isSpaced: props.isSpaced,\n flashCards: props.flashCards,\n questionCount: props.questionCount,\n name: props.name,\n summary: props.summary,\n questionObj: props.questionObj,\n yearText:props.yearText,\n areaText:props.areaText\n });\n\n const updateChange = (obj) => { \n switch(obj.type) {\n case 'year': {\n checkYears[obj.name] = obj.bool;\n break;\n }\n case 'area': {\n checkAreas[obj.name] = obj.bool;\n break;\n }\n }\n }\n\n const updateCount = async () => {\n let obj = {\n mcid: props.user_details.mcid,\n key: props.user_details.key,\n yearvar: myYears,\n gamemode: state.openBook ? 3 : 4,\n areavar: myAreas,\n };\n let c = await props.getQuestionCount(obj);\n setState({...state, questionCount: c});\n }\n\n const handleSwitchChange = (event) => {\n console.log(state);\n setState({ ...state, [event.target.name]: event.target.checked });\n props.setProps(event.target.name, event.target.checked);\n }\n\n const handleYearChange = (event) => {\n let val = event.target.value;\n setMyYears(val);\n let test = Object.keys(checkYears);\n for (const i in test) {\n updateChange({\n type: 'year', \n name: test[i].toString(), \n bool: val.includes(test[i].toString())\n });\n }\n }\n\n const handleAreaChange = (event) => {\n let val = event.target.value; \n setMyAreas(val);\n let test = Object.keys(checkAreas)\n for (const i in test) {\n updateChange({type: 'area', name: test[i].toString(), bool: val.includes(test[i].toString())});\n }\n }\n\n //TODO refactor to incorporate these into 1 handlechange function\n const handleKeyChange = name => event => {\n setCheckedKeyword({ ...checkKeyword, [name]: event.target.checked });\n };\n\n const handleNameChange = event => {\n // console.log('handleNameChange event');\n changeName(event.target.value);\n };\n\n const handleSummaryChange = event => {\n changeSummary(event.target.value);\n };\n\n const handleQuestionChange = name => event => {\n setQuestions({ ...checkQuestions, [name]: event.target.checked });\n // console.log('name: ', name);\n // console.log('event.target.checked: ', event.target.checked);\n let temp = props.questionObj\n temp[name] = event.target.checked;\n \n let questionData = {\n mcid: props.auth_feedback.mcid,\n key: props.auth_feedback.key,\n deckID: props.deckID,\n questionID: name,\n isActiveQuestion: (event.target.checked ? 1 : 0)\n };\n props.addQuestionToDeck(questionData);\n props.setProps( 'questionObj', temp );\n };\n\n const createMarkup = props => {\n if (!props.includes(''; }\n return { __html: props };\n };\n\n const mapQuestions = props => {\n // console.log('props.results: ', props.results);\n if (props.questionArr) {\n return Object.keys(props.questionArr).map((question) => {\n return (\n \n \n \n }\n />\n \n \n \n SASP {props.questionArr[question].qYear} Question {props.questionArr[question].qNumber}\n
\n
\n \n \n )\n });\n }\n };\n\n const mapKeywords = props => {\n return Object.keys(props.keywords).map((keyword, index) => {\n return (\n \n }\n label={keyword}\n />\n );\n });\n };\n\n const ownerDiv = (data) => {\n // console.log('ownerDiv props: ', data);\n return (\n <>\n
\n props.gapFunc({\n years: checkYears, \n areas: checkAreas, \n keywords: checkKeyword, \n name: (name === '' ? state.name : name), \n summary: (summary === '' ? state.summary : summary),\n isHome: state.isHome,\n isPublic: state.isPublic,\n isSpaced: state.isSpaced, \n openBook: state.openBook,\n questionObj: state.questionObj,\n isActive: 1,\n flashCards: state.flashCards,\n deckID: 0\n })}\n >\n Update Deck\n \n\n props.gapFunc({\n years: checkYears, \n areas: checkAreas, \n keywords: checkKeyword, \n name: (name === '' ? props.name : name), \n summary: (summary === '' ? props.summary : summary),\n isHome: props.isHome,\n isPublic: props.isPublic,\n isSpaced: props.isSpaced, \n openBook: props.openBook,\n questionObj: props.questionObj,\n isActive: 0\n })}\n >\n Delete Deck\n \n
\n \n \n Questions \n \n \n\n {props.questionArr.length\n ? (\n \n \n \n \n \n \n \n \n \n \n \n {mapQuestions(props)}\n \n
\n \n \n \n ) : (\n \n There are no questions associated with this deck.
\n \n )\n }\n \n >\n ) \n }\n\n const icon = props.icons;\n\n return (\n \n \n \n \n Edit Deck \n \n \n\n \n {props.results.owner \n ? (\n \n ) \n : (\n \n )}\n \n\n \n {props.results.owner \n ? (\n \n )\n : (\n \n
Deck Summary
\n
{summary}
\n
\n )\n }\n \n\n {!props.results.isWrong\n ? (\n <>\n \n Subscription Years
\n {props.yearText()}
\n \n\n \n Topics
\n {props.areaText()}
\n \n >\n )\n : null\n }\n \n Options \n \n \n \n \n \n }\n label=\"Add to Home\"\n />\n \n \n\n \n
\n \n\n \n \n \n \n {props.results.owner \n ? (\n }\n label=\"Open Book\"\n />\n ) : (\n }\n label=\"Open Book\"\n disabled={true}\n />\n )\n }\n \n \n \n\n \n
\n \n\n \n \n \n \n {props.results.owner \n ? (\n }\n label=\"Spaced Learning\"\n />\n ) \n : (\n }\n label=\"Spaced Learning\"\n disabled={true}\n />\n ) \n }\n \n \n\n \n
\n \n\n \n \n \n \n {props.results.owner \n ? (\n }\n label=\"Public\"\n />\n ) \n : (\n }\n label=\"Public\"\n disabled={true}\n />\n ) \n }\n \n \n\n \n
\n \n \n \n \n \n \n }\n label=\"Flashcards\"\n /> \n \n \n\n \n
\n \n\n {props.results.owner\n ? (\n ownerDiv(props.results)\n ) \n : (\n \n props.gapFunc({\n years: checkYears, \n areas: checkAreas, \n keywords: checkKeyword, \n name: (name === '' ? props.name : name), \n summary: (summary === '' ? props.summary : summary),\n isHome: props.isHome,\n isPublic: props.isPublic,\n isSpaced: props.isSpaced, \n openBook: props.openBook,\n questionObj: props.questionObj,\n isActive: 0\n })}\n >\n Unsubscribe\n \n
\n )\n }\n\n \n \n );\n};","import {\n Container,\n FormControl,\n FormControlLabel,\n FormGroup,\n Grid,\n Switch,\n Typography,\n Divider\n} from \"@material-ui/core\";\nimport { makeStyles } from '@material-ui/core/styles';\nimport React from \"react\";\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { SaspButton } from \"./SaspButton\";\nimport { CounterWidget } from \"./CounterWidget\"\nimport ModalIcon from \"../components/ModalIcon\";\n\nconst useStyles = makeStyles((theme) => ({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n maxWidth: 300,\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n chip: {\n margin: 2,\n backgroundColor: '#00567a',\n color: '#fff' \n },\n noLabel: {\n marginTop: theme.spacing(3),\n },\n}));\n\nfunction getStyles(index, key, theme) {\n return {\n fontWeight:\n key.indexOf(index) === -1\n ? theme.typography.fontWeightRegular\n : theme.typography.fontWeightMedium,\n };\n}\n\nconst ITEM_HEIGHT = 48;\nconst ITEM_PADDING_TOP = 8;\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n};\n\nexport const ViewDeckForm = props => {\n const [name, changeName] = React.useState(props.name);\n const [summary, changeSummary] = React.useState(props.summary);\n const [checkYears, setCheckedYears] = React.useState(props.yearsObj);\n const [checkAreas, setCheckedAreas] = React.useState(props.areaObj);\n const [checkKeyword, setCheckedKeyword] = React.useState(props.keywords);\n const [myYears, setMyYears] = React.useState([]);\n const [myAreas, setMyAreas] = React.useState([]);\n const classes = useStyles();\n const selectYears = Object.keys(props.yearsObj);\n\n const [state, setState] = React.useState({\n isHome: props.isHome,\n openBook: props.openBook,\n isPublic: props.isPublic,\n isSpaced: props.isSpaced,\n questionCount: props.questionCount,\n name: props.name,\n summary: props.summary,\n questionObj: props.questionObj,\n yearText:props.yearText,\n areaText:props.areaText\n });\n\n const icon = props.icons;\n\n return (\n \n \n \n \n {name} \n \n \n\n \n Deck Summary
\n {summary}
\n \n\n \n Subscription Years
\n {props.yearText()}
\n \n\n \n Topics
\n {props.areaText()}
\n \n\n \n \n \n \n }\n label=\"Add to Home\"\n disabled={true}\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Open Book\"\n disabled={true}\n />\n \n \n\n \n
\n \n\n \n \n \n \n }\n label=\"Spaced Learning\"\n disabled={true}\n />\n \n \n\n \n
\n \n\n \n props.gapFunc({\n copy: 1\n })}\n >\n Copy Deck\n \n\n {props.deckList.find(item => item.deckID === props.deckID) ? (\n props.gapFunc({\n copy: 0\n })}\n >\n Unsubscribe\n \n ) : (\n props.gapFunc({\n copy: 0\n })}\n >\n Subscribe\n \n )}\n \n
\n \n \n );\n};","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Divider from '@material-ui/core/Divider';\nimport Slider from '@material-ui/core/Slider';\nimport \"../styles/masterStyles.css\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: \"100%\",\n },\n margin: {\n height: theme.spacing(3),\n },\n}));\n\nconst marks = [\n {\n value: 1,\n label: '1 hr',\n },\n {\n value: 2,\n label: '1 d',\n },\n {\n value: 3,\n label: '1 wk',\n },\n {\n value: 4,\n label: '2 wks',\n },\n {\n value: 5,\n label: '1 mon',\n },\n];\n\nfunction valuetext(value) {\n switch(value) {\n case 1: {\n return '1 hr'\n }\n case 2: {\n return '1 d'\n }\n case 3: {\n return '1 wk'\n }\n case 4: {\n return '2 wks'\n }\n case 5: {\n return '1 mon'\n }\n }\n}\n\nfunction labelText (value) {\n return '';\n switch(value) {\n case 1: {\n return 'Repeat'\n }\n case 2: {\n return 'Difficult'\n }\n case 3: {\n return 'Moderate'\n }\n case 4: {\n return 'Easy'\n }\n case 5: {\n return 'Very Easy'\n }\n }\n}\n\nconst getValue = (value) => {\n switch(value) {\n case 1: {\n return 1;\n }\n case 2: {\n return 24;\n }\n case 3: {\n return 168;\n }\n case 4: {\n return 336;\n }\n case 5: {\n return 720;\n }\n default: {\n return 24;\n }\n }\n}\n\nexport const ReviewSlider = props => {\n const classes = useStyles();\n\n const handleChange = name => (event, value) => {\n let time = getValue(value);\n let obj = {\n hourvar: time,\n deckID: (props.deckID ? props.deckID : null),\n mcid: (props.mcid ? props.mcid : null),\n key: (props.myKey ? props.myKey : null),\n questionID: (props.questionID ? props.questionID : null),\n };\n\n if (!obj.mcid || !obj.key || !obj.deckID || !obj.questionID ) {\n return false;\n } else {\n props.putNextReviewDate(obj);\n\n return false;\n }\n\n }\n\n if (props.gameMode != 3) {\n return null;\n } else {\n // console.log('\\nSTARTING ReviewSlider ....\\nprops:\\n', props);\n return (\n \n\n {/*
Review Again */}\n
View Again \n
\n
labelText(valuetext)}\n steps={1}\n min={1}\n max={5}\n marks={marks}\n onChangeCommitted={handleChange('onChangeCommitted')}\n />\n \n );\n } \n}","import Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { ProgressBar } from \"./ProgressBar\";\nimport { cardStyles, colorPallete, textStyles } from \"../styles\";\nimport StarIcon from '@material-ui/icons/Star';\n\nexport const TestTabletTableCard = props => {\n const cards = cardStyles();\n const textStyle = textStyles();\n const colors = colorPallete();\n const classes = props.className || null;\n\n // console.log('STARTING TableTableCard ... \\n', props);\n\n const determineCards = props => {\n if (props.useravailable == 1) {\n const path = '/questionScreen';\n return (\n <>\n \n \n \n
\n {Number(props.openpercentage) < 100\n ? (\n
\n
\n
\n \n Open Book ({props.openpercentage}%)\n \n \n
\n \n \n
\n
\n \n {props.openProgress || \"BEGIN\"}\n \n \n \n )\n : (\n
\n
\n
\n \n Open Book ({props.openpercentage}%)\n \n \n
\n \n \n
\n
\n \n {props.openProgress || \"BEGIN\"}\n \n \n \n )\n } \n
\n
\n \n \n\n
\n\n \n \n \n
\n {Number(props.closedpercentage) < 100\n ? (\n
\n
\n
\n \n Closed Book ({props.closedpercentage}%)\n \n \n \n \n \n
\n \n \n
\n\n
\n \n {props.closedProgress || \"BEGIN\"}\n \n \n \n )\n : (\n
\n
\n
\n \n Closed Book ({props.closedpercentage}%)\n \n \n \n \n \n
\n \n \n
\n\n
\n \n {props.closedProgress || \"BEGIN\"}\n \n \n \n )\n }\n \n
\n
\n \n \n >\n );\n } else {\n return (\n \n \n Purchase this year online\n \n \n );\n }\n };\n\n return (\n \n \n \n \n {props.testYear || \"2020\"}\n <>\n {\n props.openProgress.toLowerCase() == 'details' || \n props.closedProgress.toLowerCase() == 'details'\n ? (\n \n \n \n ) : null\n } \n >\n \n \n {determineCards(props)}\n \n \n );\n};\n","import React from \"react\";\nimport { CircularProgress } from \"@material-ui/core\";\n\nconst LoadingCard = props => {\n let text = \"Loading...\";\n let color = \"#00567a\";\n if (typeof props.text !== 'undefined') {\n text = props.text;\n }\n\n if (typeof props.color !== 'undefined') {\n color = props.color;\n }\n return (\n \n \n
{text} \n
\n )\n};\n\nexport { LoadingCard }\n","import React from \"react\";\n\nexport const CopyrightWidget = props => {\n let className = 'text-small text-grey '\n if (typeof props.className !== 'undefined') {\n className += props.className;\n }\n \n return (\n \n {typeof props.begin !== 'undefined' && props.begin < props.year\n ? (\n <>© {props.begin} - {props.year} American Urological Association. All Rights Reserved.>\n )\n : (\n <>© {props.year} American Urological Association. All Rights Reserved.>\n )\n }\n \n
\n );\n};\n","import React from \"react\";\n\nexport const CopyrightWidgetLoading = props => {\n let className = 'text-small text-white '\n if (typeof props.className !== 'undefined') {\n className += props.className;\n }\n \n return (\n \n {typeof props.begin !== 'undefined' && props.begin < props.year\n ? (\n <>© {props.begin} - {props.year} American Urological Association. All Rights Reserved.>\n )\n : (\n <>© {props.year} American Urological Association. All Rights Reserved.>\n )\n }\n \n
\n );\n};\n","import React, { useState } from \"react\";\nimport { Link, Redirect } from \"react-router-dom\";\nimport {\n Modal, Fab, Typography,\n Divider, List, ListItem\n} from \"@material-ui/core\";\n\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\n\nimport Popover from '@material-ui/core/Popover';\nimport { createMarkup } from \"../common\";\n\nexport const LabsComponent = props => { \n const [anchorEl, setAnchorEl] = React.useState(null);\n const [_labs, setLabs] = useState(false);\n const [_abbrvs, setAbbrs] = useState(false);\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleFABClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleFABClose = () => {\n setLabs(false);\n setAbbrs(false);\n setAnchorEl(false);\n }\n\n const open = Boolean(anchorEl);\n const labs = Boolean(_labs);\n const abbrvs = Boolean(_abbrvs);\n\n const _restTest = (obj) => {\n if (navigator.notification) {\n function onConfirm (index) {\n index = Number(index);\n\n switch (index) {\n case 1: {\n props.resetDeck(obj);\n return handleFABClose();\n break;\n }\n default: {\n return handleFABClose();\n break;\n }\n }\n }\n\n let str = 'test';\n if (props.gamemode === 3 || props.gamemode === 4) { str = 'deck'; }\n\n navigator.notification.confirm(\n `Are you sure that you want to reset this ${str}?`,\n onConfirm,\n 'SASP'\n );\n\n if (typeof obj.deckid === 'undefined') {\n return {pathname: '/home'}\n } else {\n return {pathname: '/myDecks'}\n }\n } else {\n }\n }\n\n const openModal = (type) => {\n setLabs(false);\n setAbbrs(false);\n\n switch(type) {\n case 'labs': {\n setLabs(true);\n break;\n }\n case 'abbrvs': {\n setAbbrs(true);\n break;\n }\n }\n }\n\n if (props.labs.hasLabs) {\n let modalStyle = {\n display:\"flex\",\n flexDirection:\"column\",\n justifyContent:\"flex-start\",\n alignItems:\"flext-start\",\n backgroundColor:\"white\",\n width:\"90vw\",\n maxHeight:\"83vh\",\n minHeight:\"50vh\",\n margin:\"5vh 5vw\",\n border:\"2px solid #00567a\",\n borderRadius:\"4px\",\n outline: \"none\",\n overflow: \"auto\",\n };\n\n let tableCSS = {\n margin: \"16px 2px\",\n width: \"calc(100% - 4px)\",\n border: \"1px solid rgba(0,0,0,0.16)\",\n borderRadius: \"4px\",\n boxShadow: \"2px 4px 6px rgba(0,0,0,0.25)\",\n overflow: \"hidden\"\n }\n\n let fabCSS = {\n marginLeft: \"8px\", \n color: \"rgb(152, 152, 152)\", \n backgroundColor:\"rgb(229, 240, 223)\"\n }\n \n let __labs = {gc: [], endocrine: [], abg: []};\n let __abbrvs = [];\n\n if (props.year && props.year > 2011) {\n __labs.gc = props.labs.labs.gc.filter(item => item.year === Number(props.year));\n __labs.endocrine = props.labs.labs.endocrine.filter(item => item.year === Number(props.year));\n __labs.abg = props.labs.labs.abg.filter(item => item.year === Number(props.year));\n\n __abbrvs = props.labs.abbrvs.filter(item => item.year === Number(props.year));\n } else {\n __labs.gc = props.labs.labs.gc.filter(item => item.year === 2020);\n __labs.endocrine = props.labs.labs.endocrine.filter(item => item.year === 2020);\n __labs.abg = props.labs.labs.abg.filter(item => item.year === 2020);\n\n __abbrvs = props.labs.abbrvs.filter(item => item.year === 2020);\n } \n\n return (\n <>\n <>\n \n \n \n \n \n \n openModal('abbrvs')} className=\"text-blue\">\n Abbreviations\n \n\n \n \n
\n
Abbreviations \n
\n\n
\n \n \n \n Abbreviation \n Value \n \n \n \n {__abbrvs.map((row) => (\n \n \n\n \n \n ))}\n \n \n
\n \n \n
\n
\n \n \n\n \n openModal('labs')} className=\"text-blue\">\n Normal Lab Values\n \n \n \n
\n
Normal Lab Values \n
\n\n
\n \n \n \n Abbreviation \n Value \n \n \n \n \n General Chemistry \n \n {__labs.gc.map((row) => (\n \n \n\n \n \n ))}\n\n \n Endocrine \n \n {__labs.endocrine.map((row) => (\n \n \n\n \n \n ))}\n \n \n Arterial Blood Gases \n \n {__labs.abg.map((row) => (\n \n \n\n \n \n ))}\n \n
\n \n \n
\n
\n \n \n \n {props.gamemode === 1 || props.gamemode === 2\n ? (\n \n {\n const _redirect = _restTest({\n mcid: props.mcid,\n key: props.mykey,\n yearvar: props.year,\n gameMode: props.gamemode\n })\n return null\n }} \n className=\"text-blue\"\n >\n Reset Test\n \n \n ) : null\n }\n\n {props.gamemode === 3 || props.gamemode === 4\n ? (\n \n {\n _restTest({\n mcid: props.mcid,\n key: props.mykey,\n deckID: props.deckID,\n gameMode: props.gamemode\n })\n return \n }} \n className=\"text-blue\"\n >\n Reset Deck\n \n \n ) : null\n }\n
\n \n > \n >\n )\n } else {\n return (<>>)\n }\n}","import React from 'react';\nimport { Link } from '@material-ui/core';\n\nconst HomeUserInfo = (props) => {\n const _courses = {\n pathname: \"/courses\",\n state: { path: \"/courses\", keywords: \"\",},\n prevLoc:'/home',\n };\n\n const _certs = {\n pathname: \"/transcripts\",\n state: { path: \"/transcripts\", keywords: \"\",},\n prevLoc:'/home',\n };\n\n const _dis = {\n pathname: \"/profile\",\n state: { tab: 1, path: \"/profile\", keywords: \"\",},\n prevLoc:'/home',\n }\n\n return (\n \n {props.name\n ? (
{props.name}
)\n : null\n }\n\n
\n
\n {/*
{console.log('clicked to go to courses', _courses)}}\n > */}\n {/*
props.goTo(_courses)} > */}\n
This Week
\n
{props.reporting.weekly.rank}
\n
{props.reporting.weekly.title}
\n {/* */}\n
\n\n
\n {/*
{console.log('clicked to go to certificates', _certs)}}\n > */}\n {/*
props.goTo(_certs)} > */}\n
This Month
\n
{props.reporting.monthly.rank}
\n
{props.reporting.monthly.title}
\n {/* */}\n
\n\n
\n {/*
{console.log('clicked to go to disclosures', _dis)}}\n > */}\n {/*
props.goTo(_dis)} > */}\n
Total
\n
{props.reporting.total.rank}
\n
{props.reporting.total.title}
\n {/* */}\n
\n\n \n
\n
\n )\n}\n\nexport { HomeUserInfo }","import React, { useState } from \"react\";\nimport { \n Card, CardActions, CardContent, CardHeader, \n IconButton, TextField, List, ListItem, \n Checkbox, FormControlLabel, FormGroup, \n Divider, Grid, Fab, Typography, Popover\n} from \"@material-ui/core\";\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport CloseIcon from '@material-ui/icons/Close';\nimport CheckIcon from '@material-ui/icons/Check';\nimport AddIcon from '@material-ui/icons/Add';\nimport RemoveIcon from '@material-ui/icons/Remove';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport { createMarkup, remoteURL, scrollTop } from \"../common\";\nimport ModalImages from \"../components/ModalImages\";\nimport ReactCardFlip from 'react-card-flip';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { \n faInfo, faInfoCircle\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { isIOS, isAndroid } from 'react-device-detect';\n\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { LabsComponent } from \"./LabComponent\";\nimport { ReviewSlider } from \"./ReviewSlider\";\n\nimport \"../styles/masterStyles.css\";\nimport { Redirect } from \"react-router\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n maxWidth: 345,\n },\n media: {\n height: 0,\n paddingTop: '56.25%', // 16:9\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest,\n }),\n },\n expandOpen: {\n transform: 'rotate(180deg)',\n }\n}));\n\nexport const QuestionTestCard = props => {\n const referenceURI = 'https://university.auanet.org/mobileapps/sasp/resources/references.cfm?questionid=' + props.obj.questionID + '&questionnumber=' + props.obj.questionNumber + '&id=' + props.mcid + '&key=' + props.mykey;\n\n const classes = useStyles();\n const [expanded, setExpanded] = React.useState(false);\n const [flipped, setFlipped] = React.useState(false);\n\n const [answer, setAnswer] = useState(null);\n const [answerid, setAnswerID] = useState(null);\n const [correct, setCorrect] = useState(null);\n const [next, setNext] = useState(null);\n const [prev, setPrev] = useState(null);\n const correctObj = props.obj.qoptions.filter(item => item.AnswerOptionCorrect === 1);\n\n const _OBJ = {\n mcid: props.mcid,\n questionid: props.obj.questionID,\n key: props.mykey,\n year: props.year,\n gamemode: props.gamemode\n }\n\n let temp = props.deckList.find(item => item.deckID == props.deckID);\n let owner = 0;\n if (typeof temp !== 'undefined') {\n owner = Number(temp.owner);\n }\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [value, setValue] = useState('');\n\n const open = Boolean(anchorEl);\n const id = open ? 'simple-popover' : undefined;\n\n const addQuestion = async (obj) => {\n if (obj.send) {\n await props.addToDecks(obj.questionID, obj.deckID);\n if (obj.id) {\n let element = document.getElementById(obj.id);\n if (element) {\n try {\n element.className = \"hidden\"\n } catch (e) {\n }\n }\n }\n }\n }\n\n const handleFABClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleFABRemove = async () => {\n const removeCallBack = async (index) => {\n let obj = {\n mcid: props.obj.mcid,\n key: props.mykey,\n deckID: props.deckID,\n questionid: props.obj.questionID\n }\n\n if (isAndroid) {\n switch (index) {\n case 1: {\n return props.removeQuestion(obj);\n }\n default: {\n return false;\n }\n }\n } else if (isIOS) {\n switch (index) {\n case 1: {\n return props.removeQuestion(obj);\n }\n default: {\n return false;\n }\n }\n } else {\n switch (index) {\n case 0: {\n return props.removeQuestion(obj);\n }\n default: {\n return false;\n }\n }\n }\n \n }\n\n return navigator.notification.confirm(`Are you sure you want to remove Question ${props.obj.questionNumber} from this deck?`, removeCallBack, 'Remove Question', ['Remove', 'Cancel']);\n \n };\n \n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleChange = (event) => {\n setValue(event.target.value);\n };\n\n const handleBlur = async (event) => {\n let obj = {\n mcid: props.mcid,\n key: props.mykey,\n comment: value,\n gameMode: Number(props.gamemode),\n questionID: props.obj.questionID\n }\n\n switch(Number(props.gamemode)) {\n case 1:\n case 2: {\n obj.yearvar = props.obj.availableyears;\n break;\n }\n\n case 3:\n case 4: {\n obj.deckID = props.deckid;\n break;\n }\n }\n\n let elem = document.getElementById('questioncomment-multiline-flexible');\n if (elem) {\n elem.classList.add('active-text-field');\n }\n await props.addNote(obj);\n }\n\n const handleExpandClick = () => {\n return setExpanded(!expanded);\n };\n\n const handleSelect = (obj) => {\n setCorrect(Number(obj.correct))\n setAnswerID(Number(obj.id))\n setNext(Number(obj.next))\n setPrev(Number(obj.prev))\n return setAnswer(Number(obj.index));\n }\n\n const handleNext = () => {\n let _next = _OBJ;\n _next.next = props.obj.nextQuestionID;\n\n return props.submitFunc(_next)\n }\n\n const handlePrev = () => {\n let _prev = _OBJ;\n _prev.prev = props.obj.previousQuestionID;\n _prev.next = null;\n\n return props.submitFunc(_prev)\n }\n\n const handleFlipCard = () => {\n return setFlipped(!flipped);\n }\n\n const flipCard = () => {\n if (typeof props.id === 'string') {\n scrollTop(props.id, -64);\n }\n \n return handleFlipCard();\n }\n\n const mapQuestions = () => {\n if (props.obj.qoptions) {\n return props.obj.qoptions.map((item, index) => {\n let gridClass = 'sasp-answer-item';\n const _hsobj = {\n index: index, \n id: item.AnswerOptionID, \n correct: item.AnswerOptionCorrect, \n next: props.obj.nextQuestionID, \n prev: props.obj.previousQuestionID\n }\n\n if (props.answered < 0) {\n if (index === answer) {\n gridClass += ' sasp-selected'\n } else if (typeof props.prevAnswer === 'object') {\n if (\n typeof props.prevAnswer.index !== 'undefined' && \n index === props.prevAnswer.index &&\n answer === null &&\n props.gamemode < 3\n ) {\n gridClass += ' sasp-selected'\n }\n }\n } else if (props.answered > 0) {\n if (item.AnswerOptionCorrect) {\n gridClass += ' sasp-selected sasp-correct'\n } else if (index === answer && !item.AnswerOptionCorrect) {\n gridClass += ' sasp-selected sasp-wrong'\n }\n } \n \n return (\n handleSelect(_hsobj) : () => {}}\n >\n
\n
{item.AnswerOptionLetter}.
\n
\n\n {item.AnswerOptionCorrect && props.answered > 0\n ? (\n
\n \n
\n ) : null\n }\n\n {index === answer && \n !item.AnswerOptionCorrect && \n props.answered > 0\n ? (\n
\n \n
\n ) : null\n }\n
\n
\n );\n });\n }\n }\n\n const showQuestion = () => {\n return (\n \n
\n\n {typeof props.obj.qImages !== 'undefined' && props.obj.qImages.length > 0\n ? (\n \n \n
\n ) : null\n }\n\n \n {mapQuestions()}\n
\n\n {\n props.answered > 0 && \n (props.gamemode !== 2 || props.gamemode !== 4)\n ? (\n \n {typeof props.obj.explanation !== 'undefined'\n ? (\n <>\n
\n Explanation\n \n
\n
\n >\n ) : null\n }\n\n
\n\n
flipCard()}\n >\n View Details\n
\n
\n ) : null\n }\n \n )\n }\n\n const reset = (obj) => {\n return props.resetDeck(obj);\n }\n\n const mapActionBtn = () => {\n let _submit = _OBJ;\n\n _submit.correct = correct;\n _submit.answerid = answerid;\n \n if (\n (props.gamemode === 2 && props.gamemode === 4) ||\n props.answered > 0\n ) {\n if (answer !== null || props.answered > 0) {\n if (answer !== null) {\n _submit.next = next;\n } else {\n _submit.next = 0;\n }\n \n return (\n props.submitFunc(_submit)}\n >\n Next\n
\n )\n } else {\n return (\n \n Next\n
\n )\n }\n } else {\n let _classes = 'sasp-submit-btn';\n if (answer !== null) {\n return (\n props.submitFunc(_submit)}\n >\n Submit\n
\n )\n } else {\n _classes += ' disabled'\n return (\n \n Submit\n
\n )\n }\n \n }\n }\n\n let prevClass = 'firstButton ';\n let showPrev = 1;\n\n if (props.obj.previousQuestionID < 1) {\n prevClass += 'disabled';\n showPrev = 0;\n } \n \n if (props.gamemode === 1 && props.answered > 0) {\n prevClass += 'disabled';\n showPrev = 0;\n }\n\n let __typetext = props.typetext;\n\n try {\n if (props.prevAnswer.answered) {\n __typetext += ' (previously answered)';\n }\n } catch (e) {\n }\n\n return (\n <>\n {props.gamemode < 3 || owner\n ? (\n \n <>\n {owner\n ? (\n
handleFABRemove()}\n InDecks={props.obj.InDecks}\n >\n \n \n ) : null\n }\n >\n
\n \n \n
\n \n \n \n addQuestion({\n questionID: props.obj.questionID, \n gameMode: props.obj.gameMode,\n deckID: null,\n send: event.target.checked\n })}\n />\n }\n label=\"Add to All Decks\"\n />\n \n \n \n \n\n {props.deckList.map((row, index) => (\n \n \n addQuestion({\n gameMode: props.obj.gameMode, \n deckID: row.deckID,\n questionID: props.obj.questionID,\n send: event.target.checked,\n id:\"FABList_\" + row.deckID\n })}\n className='text-grey'\n checked={(props.obj.InDecks.includes(row.deckID)) ? true : false}\n />\n }\n label={row.deckname.length ? row.deckname : `My Deck ${index}`}\n />\n \n \n ))}\n
\n \n\n
\n
\n )\n : (\n \n handleFABRemove()}\n InDecks={props.obj.InDecks}\n >\n \n \n\n \n
\n )\n }\n \n \n {props.answered > 0 && props.type === 'open'\n ? (\n flipCard()}\n // style={{backgroundColor: '#00567a', transform:\"scale(0.67)\"}}\n >\n {/* */}\n \n \n }\n\n style={{\n backgroundColor: \"#f1f3f5\"\n }}\n />\n )\n : (\n \n )\n }\n \n {showQuestion()}\n\n \n {props.gamemode < 3 && showPrev\n ? (\n 0 ? () => handlePrev() : () => {return null}}\n >\n \n \n ): (\n \n \n \n )\n }\n\n {mapActionBtn()}\n\n handleNext()}\n >\n \n \n \n \n\n \n flipCard()}\n // style={{backgroundColor: '#00567a', transform:\"scale(0.67)\"}}\n >\n {/* */}\n \n \n }\n\n style={{\n backgroundColor: \"#f1f3f5\"\n }}\n />\n\n \n \n \n Answer\n \n \n {correctObj[0].AnswerOption}
\n \n\n {typeof props.obj.qImages !== 'undefined' && \n props.obj.qImages.length > 0\n ? (\n \n \n
\n ) : null\n }\n\n {typeof props.obj.explanation !== 'undefined'\n ? (\n \n \n Explanation\n \n \n
\n \n ) : null\n }\n\n {typeof props.obj.reference !== 'undefined'\n ? (\n \n \n References\n\n \n \n \n
\n \n ) : null\n }\n\n \n
\n\n
flipCard()}\n >\n View Answer\n
\n
\n \n\n \n {props.gamemode < 3 && showPrev\n ? (\n 0 ? () => handlePrev() : () => {return null}}\n >\n \n \n ): (\n \n \n \n )\n }\n\n {mapActionBtn()}\n\n handleNext()}\n >\n \n \n \n \n \n\n {props.gamemode > 2 && props.spaced && props.answered > 0\n ? (\n \n \n
\n ) : null\n }\n\n \n
\n Add Note\n \n
\n\n
\n
\n >\n );\n};","import React, { useState } from \"react\";\nimport { \n Card, CardActions, CardContent, CardHeader, \n IconButton, TextField, List, ListItem, \n Checkbox, FormControlLabel, FormGroup, \n Divider, Grid, Fab, Typography, Popover\n} from \"@material-ui/core\";\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport CloseIcon from '@material-ui/icons/Close';\nimport CheckIcon from '@material-ui/icons/Check';\nimport AddIcon from '@material-ui/icons/Add';\nimport RemoveIcon from '@material-ui/icons/Remove';\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\nimport { createMarkup, remoteURL, scrollTop } from \"../common\";\nimport ModalImages from \"../components/ModalImages\";\nimport ReactCardFlip from 'react-card-flip';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { \n faInfo, faInfoCircle\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { isIOS, isAndroid } from 'react-device-detect';\n\nimport clsx from 'clsx';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { LabsComponent } from \"./LabComponent\";\nimport { ReviewSlider } from \"./ReviewSlider\";\n\nimport \"../styles/masterStyles.css\";\nimport { Redirect } from \"react-router\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n maxWidth: 345,\n },\n media: {\n height: 0,\n paddingTop: '56.25%', // 16:9\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest,\n }),\n },\n expandOpen: {\n transform: 'rotate(180deg)',\n }\n}));\n\nexport const RetiredQuestionTestCard = props => {\n console.log(`props: `, props);\n const referenceURI = 'https://university.auanet.org/mobileapps/sasp/resources/references.cfm?questionid=' + props.obj.questionID + '&questionnumber=' + props.obj.questionNumber + '&id=' + props.mcid + '&key=' + props.mykey;\n\n const classes = useStyles();\n const [expanded, setExpanded] = React.useState(false);\n const [flipped, setFlipped] = React.useState(false);\n\n const [answer, setAnswer] = useState(null);\n const [answerid, setAnswerID] = useState(null);\n const [correct, setCorrect] = useState(null);\n const [next, setNext] = useState(null);\n const [prev, setPrev] = useState(null);\n const correctObj = props.obj.qoptions.filter(item => item.AnswerOptionCorrect === 1);\n\n const _OBJ = {\n mcid: props.mcid,\n questionid: props.obj.questionID,\n key: props.mykey,\n year: props.year,\n gamemode: props.gamemode\n }\n\n let temp = props.deckList.find(item => item.deckID == props.deckID);\n let owner = 0;\n if (typeof temp !== 'undefined') {\n owner = Number(temp.owner);\n }\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [value, setValue] = useState('');\n\n const open = Boolean(anchorEl);\n const id = open ? 'simple-popover' : undefined;\n\n const mapActionBtn = () => {\n let _submit = _OBJ;\n\n _submit.correct = 0;\n _submit.answerid = -1;\n\n for (const item of props.obj.qoptions) {\n if (item.AnswerOptionCorrect === 1) {\n _submit.correct = 1;\n _submit.answerid = item.AnswerOptionID;\n _submit.choice = item.AnswerOptionID;\n _submit.retired = {\n nextquestionid: props.obj.nextQuestionID\n }\n\n break;\n }\n }\n\n return (\n <>\n
\n {\n console.log(`submit: `, _submit);\n return props.submitFunc(_submit)\n }}\n >\n Next\n
\n
\n >\n )\n }\n\n let prevClass = 'firstButton ';\n let showPrev = 1;\n\n const handleNext = () => {\n let _next = _OBJ;\n _next.next = props.obj.nextQuestionID;\n\n return props.submitFunc(_next)\n }\n\n return (\n <>\n \n \n \n \n \n This question ({`SASP ${props.obj.QuestionYear} Question ${props.obj.questionNumber}`}) has been withdrawn.
\n\n Click 'Next' to continue.
\n \n\n \n {/* \n \n */}\n\n {mapActionBtn()}\n\n {/* handleNext()}\n >\n \n */}\n \n \n\n \n \n \n \n This question ({`SASP ${props.obj.QuestionYear} Question ${props.obj.questionNumber}`}) has been withdrawn.
\n\n Click 'Next' to continue.
\n \n\n \n {/* \n \n */}\n\n {mapActionBtn()}\n\n {/* handleNext()}\n >\n \n */}\n \n \n \n >\n );\n};","import React, { useState } from \"react\";\nimport { withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport { \n Card, CardHeader, IconButton, Slide, \n CardContent, CardActions, Button, Link \n} from \"@material-ui/core\";\nimport { getAUAIcon, APPYEAR, DATE, APPDAY } from \"../common\";\nimport \"../styles/masterStyles.css\";\nimport { isTablet } from \"react-device-detect\";\n\nconst AILegalStatement = props => { \n const [_style, _setStyle] = useState({ \n backgroundSize: !isTablet ? \"cover\" : \"contain\", \n backgroundRepeat: 'no-repeat', \n backgroundImage: 'white'\n });\n\n const [isIn, setIsIn] = useState(props.in ? props.in : false);\n\n const classes='aua-bottom-banner';\n const direction=\"up\";\n\n const day = DATE;\n\n let _func = () => {\n localStorage.setItem('auauapp_AILegalStatementDAY', APPDAY());\n localStorage.setItem('auauapp_AILegalStatementYEAR', APPYEAR());\n\n return setIsIn(!isIn);\n };\n\n if (!isIn) {\n return (\n \n \n {\n return setIsIn(true)}\n }\n >\n {getAUAIcon('AUALegal')}\n \n
\n \n )\n } else {\n return (\n <>\n \n {\n return setIsIn(false)}\n }\n >\n {getAUAIcon('AUALegalLeft')}\n \n
\n\n \n \n _func()}\n style={{backgroundColor: '#00567a', transform:\"scale(0.5)\"}}\n >\n \n \n }\n />\n\n \n \n
\n You are prohibited from using or uploading content you accessed through this mobile application into external applications, bots, software, or websites, including those using artificial intelligence technologies and infrastructure, including deep learning, machine learning and large language models and generative AI.\n
\n
\n \n\n {/* \n setIsIn(!isIn)}\n >\n Dismiss\n \n */}\n \n \n >\n )\n }\n};\n\nconst mapStateToProps = state => {\n const { auth, user_details } = state.auth;\n return { auth, user_details };\n};\n\nconst AILegalStatementCard = connect(mapStateToProps)(withRouter(AILegalStatement));\n\nexport { AILegalStatementCard }","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n createDeck,\n fetchAvailableQuestions,\n updateHeaderInfo,\n getAllQuestions,\n getUserDetails\n} from \"../actions\";\nimport { DeckFormWidget, LoadingCard } from \"../components\";\nimport { withRouter } from 'react-router-dom';\nimport { deviceData, makeList } from \"../common\";\n\n//make state = initial_state\nclass CreateDeckScreen extends Component {\n state = {\n creationStage: 0,\n deckName: \"\",\n deckSummary: \"\",\n areas: \"\",\n years: \"\",\n questions: \"\",\n keywords: [],\n yearObj: [],\n areaObj: [],\n questionObj: [],\n keywordsObj: [],\n ready: false,\n openDeck: true,\n questionCount: 0,\n tracking: null,\n loading: false\n };\n\n componentDidMount = async () => {\n // this.props.scrollTop();\n //TODO refactor years and set both to true\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n let newYearObj = [];\n let newAreaObj = [];\n let newKeywordsObj = [];\n this.props.user_details.SASPYears.map(year => {\n if (year.useravailable == 1) {\n newYearObj = { ...newYearObj, [year.ProductYear]: false };\n }\n });\n\n this.props.user_details.availableAreas.map(area => {\n newAreaObj = { ...newAreaObj, [area.QArea]: false };\n });\n\n this.props.user_details.availableKeywords.map(keyword => {\n newKeywordsObj = { ...newKeywordsObj, [keyword.keyword]: false };\n });\n\n const { mcid, key } = this.props.auth_feedback;\n\n this.setState({\n ...this.state,\n yearObj: newYearObj,\n areaObj: newAreaObj,\n keywordsObj: newKeywordsObj,\n tracking: deviceData(this.props.location, 'navigate') \n });\n\n this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n\n return this.props.updateHeaderInfo({route:\"/createDeckScreen\", iconOne: 'back'});\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevState !== this.state) {\n if (prevState.yearObj !== this.state.yearObj) {\n this.setState({\n ready: true\n });\n }\n\n if (\n prevState.areas !== this.state.areas ||\n prevState.years !== this.state.years\n ) {\n const questionData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n gamemode: this.state.openDeck ? 3 : 4,\n yearvar: this.state.years,\n areavar: this.state.areas\n };\n\n await this.props.fetchAvailableQuestions(questionData, this.tracking);\n }\n\n if (prevProps.available_questions !== this.props.available_questions) {\n let newQuestionObj = [];\n await this.props.available_questions.question.map(question => {\n return (newQuestionObj = {\n ...newQuestionObj,\n [question.questionID]: true\n });\n });\n\n if (this.state.creationStage < 1) {\n this.setState({\n questionObj: newQuestionObj\n });\n }\n }\n\n if (prevProps.get_question_count.questionCount != this.props.get_question_count.questionCount) {\n this.setState({\n ...this.state,\n questionCount: this.props.get_question_count.questionCount\n });\n }\n }\n };\n\n render() {\n const INITIAL_STATE = {\n creationStage: 0,\n keywords: \"\",\n deckName: \"\",\n deckSummary: \"\",\n areas: \"\",\n years: \"\",\n yearObj: [],\n areaObj: [],\n keywordsObj: [],\n questionObj: [],\n ready: false,\n };\n\n const getQuestionCount = async (obj) => {\n obj.myYears = makeList(obj.myYears);\n obj.myAreas = makeList(obj.myAreas);\n await this.props.getAllQuestions(obj);\n this.setState({\n ...this.state,\n questionCount: this.props.get_question_count.questionCount\n });\n\n return this.props.get_question_count.questionCount;\n }\n\n const sendQuestions = (years, areas, keywords, name, summary = '') => {\n let actualYears = \"\";\n let actualAreas = \"\";\n let actualKeywords = \"\";\n Object.keys(years).forEach((year, index) => {\n if (years[year] == true) {\n if (index == Object.keys(years).length - 1) {\n actualYears +=year.toString();\n } else {\n actualYears +=year.toString() + \",\";\n }\n }\n });\n \n Object.keys(areas).forEach((area, index) => {\n if (areas[area] == true) {\n if (index == Object.keys(areas).length - 1) {\n actualAreas += area.toString();\n } else {\n actualAreas += area.toString() + \",\";\n }\n }\n });\n\n Object.keys(keywords).forEach((keyword, index) => {\n if (keywords[keyword] == true) {\n if (index == Object.keys(keywords).length - 1) {\n actualKeywords +=keyword.toString();\n } else {\n actualKeywords +=keyword.toString() + \",\";\n }\n }\n });\n\n this.setState({\n ...this.state,\n years: actualYears,\n areas: actualAreas,\n keywords: actualKeywords,\n deckName: name,\n deckSummary: summary,\n creationStage: 1,\n });\n };\n\n const nameDeck = name => {\n this.setState({\n ...this.state,\n deckName: name\n });\n };\n\n const goBack = () => {\n this.setState({\n ...this.state,\n creationStage: this.state.creationStage - 1\n });\n };\n\n const goHome = () => {\n this.props.history.push('/home');\n }\n\n const createDeck = async questions => {\n await this.setState({ ...this.state, ready: false });\n\n let createDeckData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n deckName: this.state.deckName,\n deckPriority: 999,\n deckSummary: this.state.deckSummary,\n isHome: this.state.isHome,\n isSpaced: this.state.isSpaced,\n ispublic: this.state.isPublic,\n gameMode: this.state.openDeck ? 3 : 4,\n tracking: this.state.tracking\n };\n\n const addQuestions = async questions => {\n let actualQuestions = \"\";\n Object.keys(questions).forEach((question, index) => {\n if (questions[question] == true) {\n if (index == Object.keys(questions).length - 1) {\n actualQuestions += question.toString();\n } else {\n actualQuestions += question.toString() + \",\";\n }\n } else {\n if (index == Object.keys(questions).length - 1) {\n actualQuestions += question.toString();\n } else {\n actualQuestions += question.toString() + \",\";\n }\n }\n });\n\n this.setState({\n questions: actualQuestions,\n // ready: true\n });\n };\n\n await this.props.createDeck(createDeckData);\n return addQuestions(questions);\n };\n\n const gapFunc = async (data) => {\n let years = makeList(data.years);\n let areas = makeList(data.areas);\n \n if (data.name == '') { \n return false; \n }\n\n if (typeof data.mode !== 'undefined' && data.mode != null && data.mode != '') { data.mode = 3; }\n if (typeof data.summary !== 'undefined' && data.summary != null) { data.summary = ''; }\n\n let keywords = makeList(data.keywords);\n let newQuestionObj = [];\n let questionData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n gamemode: data.openDeck == true ? 3 : 4,\n yearvar: years,\n areavar: areas,\n keywords: keywords\n };\n\n if (!data.blankDeck && (years.length || areas.length)) {\n await this.props.fetchAvailableQuestions(questionData);\n\n await this.props.available_questions.question.map(question => {\n return (newQuestionObj = {\n ...newQuestionObj,\n [question.questionID]: true\n });\n });\n }\n\n await this.setState({\n ...this.state,\n years: years,\n yearObj: data.years,\n areas: areas,\n areaObj: data.areas,\n keywords: keywords,\n keywordObj: data.keywords,\n deckName: data.name,\n deckSummary: data.summary,\n questionObj: newQuestionObj,\n isHome: data.isHome == true ? 1 : 0,\n isPublic: data.isPublic == true ? 1 : 0,\n isSpaced: data.isSpaced == true ? 1 : 0,\n flashCards: data.flashCards == true ? 1 : 0,\n gameMode: data.openDeck == true ? 3 : 4,\n ready: false,\n loading: false,\n }); \n\n let createDeckData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n deckName: data.name,\n deckPriority: 999,\n deckSummary: data.summary,\n isHome: data.isHome ? 1 : 0,\n isSpaced: data.isSpaced ? 1 : 0,\n ispublic: data.isPublic ? 1 : 0,\n gameMode: data.openBook ? 3 : 4,\n flashCards: data.flashCardstrue ? 1 : 0,\n blankDeck: years.length == 0 ? true : data.blankDeck,\n tracking: this.state.tracking,\n years: years,\n areas: areas\n };\n\n createDeckData.tracking.action = 'created deck';\n\n await this.props.createDeck(createDeckData);\n goHome();\n }\n\n const resetForm = () => {\n this.setState({\n INITIAL_STATE\n });\n };\n\n if (this.state.ready) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { user_details, auth_feedback } = state.auth;\n const { newDeckInfo } = state.decks;\n const { available_questions, get_question_count } = state.question;\n const { helperIcons } = state.device;\n return { user_details, auth_feedback, available_questions, newDeckInfo, get_question_count, helperIcons };\n};\n\nexport default connect(mapStateToProps, {\n fetchAvailableQuestions,\n createDeck,\n updateHeaderInfo,\n getAllQuestions,\n getUserDetails\n})(withRouter(CreateDeckScreen));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n addQuestionToDeck,\n createDeck,\n fetchAvailableQuestions,\n updateHeaderInfo,\n getAllQuestions,\n getQuestionResults,\n editDeck,\n getUserDetails\n} from \"../actions\";\nimport { EditDeckForm, ChooseQuestionsForm, LoadingCard } from \"../components\";\nimport { withRouter } from 'react-router-dom';\nimport { deviceData } from \"../common\";\n\n//make state = initial_state\nclass EditDeckScreen extends Component {\n state = {\n creationStage: 0,\n deckName: \"\",\n deckSummary: \"\",\n areas: \"\",\n years: \"\",\n questions: \"\",\n quetionArr: [],\n keywords: [],\n yearObj: [],\n areaObj: [],\n questionObj: [],\n keywordsObj: [],\n ready: false,\n openBook: false,\n isHome: false,\n isPublic: false,\n isSpaced: false,\n flashCards: false,\n questionCount: 0,\n tracking: null\n };\n\n componentDidMount() {\n let newYearObj = [];\n let newAreaObj = [];\n let newKeywordsObj = [];\n this.props.user_details.SASPYears.map(year => {\n if (year.useravailable == 1) {\n newYearObj = { ...newYearObj, [year.ProductYear]: false };\n }\n });\n\n this.props.user_details.availableAreas.map(area => {\n newAreaObj = { ...newAreaObj, [area.QArea]: false };\n });\n\n this.props.user_details.availableKeywords.map(keyword => {\n newKeywordsObj = { ...newKeywordsObj, [keyword.keyword]: false };\n });\n\n this.setState({\n ...this.state,\n yearObj: newYearObj,\n areaObj: newAreaObj,\n keywordsObj: newKeywordsObj,\n tracking: deviceData(this.props.location, 'navigate') \n });\n\n const { mcid, key } = this.props.auth_feedback;\n this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n let obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n gamemode: this.props.location.gameMode,\n deckID: this.props.location.deckID,\n };\n this.props.getQuestionResults(obj);\n\n // return this.props.updateHeaderInfo({route:\"/editDeckScreen\"});\n return this.props.updateHeaderInfo({route:\"/editDeckScreen\", iconOne: 'back'});\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevState != this.state) {\n // console.log('\\nNEW STATE: \\n', this.state);\n }\n if (prevProps.get_question_results !== this.props.get_question_results) {\n // console.log('\\ndeckList', this.props.deckList);\n let tQuestion = this.props.deckList.find(item => item.deckID === this.props.location.deckID);\n if (Array.isArray(tQuestion)) {\n tQuestion = tQuestion[0];\n }\n\n // console.log('tQuestion: ', tQuestion);\n\n let newQuestionObj = [];\n let res = this.props.get_question_results.questions;\n if (res.length) {\n newQuestionObj = {};\n for (const i in res) {\n // console.log(\"res[\" + i + \"].QuestionID: \", res[i].QuestionID);\n newQuestionObj[res[i].QuestionID] = (res[i].isActiveQuestion == \"1\" ? true : false);\n }\n }\n \n this.setState({\n ...this.state,\n deckName: tQuestion.deckname,\n deckSummary: (typeof tQuestion.DeckSummary === 'undefined' ? '' : tQuestion.DeckSummary),\n isHome: (Number(tQuestion.isHome) === 1 ? true : false),\n isPublic: (Number(tQuestion.isPublic) === 1 ? true : false),\n isSpaced: (Number(tQuestion.isspaced === 1) ? true : false),\n flashCards: (Number(tQuestion.flashCards === 1) ? true : false),\n openBook: (Number(tQuestion.gameMode) === 3 ? true : false),\n questionCount: res.filter(item => Number(item.isActiveQuestion) === 1).length,\n questionArr: res,\n questionObj: newQuestionObj,\n ready: true\n });\n\n // console.log('state: ', this.state);\n }\n };\n\n render() {\n const INITIAL_STATE = {\n creationStage: 0,\n keywords: \"\",\n deckName: \"\",\n deckSummary: \"\",\n areas: \"\",\n years: \"\",\n yearObj: [],\n areaObj: [],\n keywordsObj: [],\n questionObj: [],\n ready: false,\n };\n\n const nextStage = () => {\n this.setState({\n ...this.state,\n creationStage: this.state.creationStage + 1\n });\n };\n\n const setProp = async (key, value) => {\n // console.log('key: ', key);\n // console.log('value: ', value);\n if (key == 'questionObj') {\n let temp = 0;\n for (let [tkey, tval] of Object.entries(value)) {\n if (tval) { temp++; }\n }\n this.setState({\n ...this.state,\n [key]: value,\n questionCount: temp\n });\n } else {\n this.setState({\n ...this.state,\n [key]: value\n });\n }\n\n let obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckID: this.props.location.deckID\n }\n\n obj[key] = value ? 1 : 0;\n\n await this.props.editDeck(obj);\n }\n\n const getQuestionCount = async (obj) => {\n obj.myYears = makeList(obj.myYears);\n obj.myAreas = makeList(obj.myAreas);\n await this.props.getAllQuestions(obj);\n this.setState({\n ...this.state,\n questionCount: this.props.get_question_count.questionCount\n });\n\n return this.props.get_question_count.questionCount;\n }\n\n const getQuestionResults = async (obj) => {\n this.props.getQuestionResults(obj);\n }\n\n const sendQuestions = (years, areas, keywords, name, summary = '') => {\n let actualYears = \"\";\n let actualAreas = \"\";\n let actualKeywords = \"\";\n Object.keys(years).forEach((year, index) => {\n if (years[year] === true) {\n if (index === Object.keys(years).length - 1) {\n actualYears +=year.toString();\n } else {\n actualYears +=year.toString() + \",\";\n }\n }\n });\n \n Object.keys(areas).forEach((area, index) => {\n if (areas[area] === true) {\n if (index === Object.keys(areas).length - 1) {\n actualAreas += area.toString();\n } else {\n actualAreas += area.toString() + \",\";\n }\n }\n });\n\n Object.keys(keywords).forEach((keyword, index) => {\n if (keywords[keyword] === true) {\n if (index === Object.keys(keywords).length - 1) {\n actualKeywords +=keyword.toString();\n } else {\n actualKeywords +=keyword.toString() + \",\";\n }\n }\n });\n\n this.setState({\n ...this.state,\n years: actualYears,\n areas: actualAreas,\n keywords: actualKeywords,\n deckName: name,\n deckSummary: summary,\n creationStage: 1,\n });\n };\n\n const goBack = async () => {\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n this.props.history.push('/myDecks');\n };\n\n const goHome = async () => {\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n this.props.history.push('/home');\n }\n\n const createDeck = async questions => {\n // console.log('\\n\\n>>>>> state: ', this.state);\n //TODO refactor to make more efficient.\n //TODO alter createDeckData later to make fully customizable\n let createDeckData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n deckName: this.state.deckName,\n deckPriority: 999,\n deckSummary: this.state.deckSummary,\n isHome: this.state.isHome,\n isSpaced: this.state.isSpaced,\n ispublic: this.state.isPublic,\n gameMode: this.state.openBook === true ? 3 : 4,\n tracking: this.state.tracking\n };\n\n createDeckData.tracking.action = 'updated deck';\n\n const addQuestions = async questions => {\n let actualQuestions = \"\";\n Object.keys(questions).forEach((question, index) => {\n if (questions[question] === true) {\n if (index === Object.keys(questions).length - 1) {\n actualQuestions += question.toString();\n } else {\n actualQuestions += question.toString() + \",\";\n }\n } else {\n if (index === Object.keys(questions).length - 1) {\n actualQuestions += question.toString();\n } else {\n actualQuestions += question.toString() + \",\";\n }\n }\n });\n\n this.setState({\n questions: actualQuestions\n });\n };\n await this.props.createDeck(createDeckData);\n return addQuestions(questions);\n };\n\n const makeList = (arrs) => {\n let r = '';\n let c = 0;\n for (const index in arrs) {\n if (arrs[index]) {\n if (c > 0) {\n r += ',';\n }\n\n r += index;\n c++;\n }\n }\n return r;\n }\n\n const gapFunc = async (data) => {\n if (!data.name) { return false; } \n let deckData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n gamemode: data.openBook === true ? 3 : 4,\n isSpaced: (data.isSpaced ? 1 : 0),\n isPublic: (data.isPublic ? 1 : 0),\n isHome: (data.isHome ? 1 : 0),\n deckID: this.props.location.deckID,\n deckName: data.name,\n decksummary: data.summary,\n deckPriority: (data.priority ? data.priority : 999),\n isActive: (data.isActive ? 1 : 0),\n tracking: this.state.tracking,\n flashCards: (data.flashCards ? 1 : 0),\n };\n\n deckData.tracking.action = 'updated deck';\n\n \n\n // await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n await this.props.editDeck(deckData);\n goBack();\n }\n\n const getAreaText = () => {\n let str = \"\";\n // console.log('results: ', this.props.get_question_results );\n // console.log('question: ', this.props.question );\n let arr = this.props.get_question_results.areavar.split(',');\n // console.log('getAreaText arr: ', arr);\n let cnt = 0;\n for (let i of arr) {\n let t = this.props.user_details.availableAreas.find(item => item.QArea === i);\n // console.log('temp: ', t);\n if (typeof t !== 'undefined') {\n if (cnt) { str += ', '; } \n str += t.AreaDescription + \" (\" + i + ')';\n cnt++;\n }\n \n }\n\n if (str === '') { str = \"None\"; }\n return str;\n }\n\n const getYearText = () => {\n let str = this.props.get_question_results.yearvar;\n let arr = str.split(',');\n\n if (Number(arr[0]) < Number(arr[arr.length - 1])) {\n let t = arr.reverse();\n str = \"\";\n let cnt = 0;\n \n for (let i of t) {\n if (cnt > 0) { str += ', '; } else { cnt++; }\n str += i.trim();\n }\n } else {\n str = 'None'\n }\n\n return str;\n }\n\n const resetForm = () => {\n this.setState({\n INITIAL_STATE\n });\n };\n\n const returnFormStage = () => {\n switch (this.state.creationStage) {\n case 1:\n return (\n \n );\n\n default:\n //TODO refactor to prevent unnecessary rerenders\n if (this.state.ready) {\n return (\n <>\n \n >\n );\n } else {\n //TODO add skeleton loader\n return ;\n }\n }\n };\n\n return returnFormStage();\n }\n}\n\nconst mapStateToProps = state => {\n const { user_details, auth_feedback } = state.auth;\n const { newDeckInfo, deckList } = state.decks;\n const { available_questions, get_question_count, question, get_question_results } = state.question;\n const { helperIcons } = state.device;\n return { \n user_details, \n auth_feedback, \n available_questions, \n newDeckInfo, \n get_question_count,\n question, \n deckList,\n get_question_results,\n helperIcons\n };\n};\n\nexport default connect(mapStateToProps, {\n fetchAvailableQuestions,\n createDeck,\n addQuestionToDeck,\n updateHeaderInfo,\n getAllQuestions,\n getQuestionResults,\n editDeck,\n getUserDetails\n})(withRouter(EditDeckScreen));\n","import { Container, Typography } from \"@material-ui/core\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { deRegister } from \"../actions\";\nimport { SaspButton } from \"../components\";\nimport { deviceData } from \"../common\";\n\nconst DeregisterScreen = props => {\n if (props.feedback.mcid && props.feedback.key) {\n // console.log('\\nSTARTING Deregister ...\\nprops: \\n', props);\n return (\n \n \n You have more than two devices registered. Please deregister your\n other devices.\n \n \n Note : You will be logged out of the application on the\n other devices.\n \n props.deRegister(props.feedback.mcid, props.feedback.key)}\n >\n Deregister\n \n \n );\n } else {\n return deregister
;\n }\n};\n\nconst mapStateToProps = state => {\n const feedback = state.auth.auth_feedback;\n return { feedback };\n};\n\nexport default connect(mapStateToProps, { deRegister })(DeregisterScreen);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Redirect, Route } from \"react-router-dom\";\nimport { persistantLogin } from \"../actions\";\n\nconst LoginRoute = ({ component: Comp, loggedIn, path, ...rest }) => {\n let { auth } = rest;\n\n /*if (\n typeof localStorage.getItem('login_dt') !== 'undefined' && \n localStorage.getItem('login_dt') != null\n ) { \n const _date = new Date();\n const _expire = Number(localStorage.getItem('login_dt'));\n const _now = Number(Date.parse(_date));\n \n if (_now < _expire) {\n // console.log('\\nRedirectScreen');\n // persistantLogin();\n auth = true;\n }\n }*/\n\n return (\n {\n return !auth ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n\nconst mapStateToProps = state => {\n const { auth, user_details } = state.auth;\n return {\n auth\n };\n};\n\nexport default connect(mapStateToProps)(LoginRoute);\n","import { Container, Grid, TextField, Typography, Divider, CircularProgress, createMuiTheme } from \"@material-ui/core\";\nimport Modal from \"@material-ui/core/Modal\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link, Redirect } from \"react-router-dom\";\nimport { login, testApi, persistantLogin } from \"../actions\";\nimport { textValidate, deviceData, getThisYear, createMarkup, remoteURL } from \"../common\";\nimport { SaspButton, CopyrightWidgetLoading } from \"../components\";\nimport DeregisterScreen from \"./DeregisterScreen\";\nimport Input from '@material-ui/core/Input';\nimport FilledInput from '@material-ui/core/FilledInput';\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport FormControl from '@material-ui/core/FormControl';\nimport IconButton from '@material-ui/core/IconButton';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\n\nimport LoopIcon from '@material-ui/icons/Loop';\nimport { isMobileOnly, isTablet, isElectron, deviceDetect, deviceType, isBrowser } from 'react-device-detect';\nimport \"../styles/masterStyles.css\";\n//TODO refactor into different reusable components/functions\n//TODO test login function for real.\n\nclass LoginScreen extends Component {\n state = {\n id_email: \"\",\n password: \"\",\n disabled: true,\n id_email_flag: false,\n password_flag: false,\n id_email_error: false,\n password_error: false,\n errorMessage: \"\",\n errorModal: false,\n id_email_blur_flag: false,\n password_blur_flag: false,\n holdDevice: false,\n spinner: false,\n tracking: null,\n year: getThisYear(),\n showpassword: false,\n };\n\n componentDidMount = async () => {\n if (\n typeof localStorage.getItem('login_dt') !== 'undefined' && \n localStorage.getItem('login_dt') != null\n ) { \n const _date = new Date();\n let _expire = Number(localStorage.getItem('login_dt'));\n const _now = Number(Date.parse(_date));\n\n if (_now < _expire) {\n await this.props.persistantLogin();\n return ( )\n }\n }\n\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n return this.setState({ ...this.state, tracking: deviceData(this.props.location, 'login') });\n };\n\n componentDidUpdate = (prevProps, prevState) => {\n if (this.props.errorCode !== prevProps.errorCode) {\n this.setState({ ...this.state, errorMessage: this.props.errorMessage });\n if (this.props.errorMessage != '') {\n this.setState({ \n ...this.state, \n errorMessage: this.props.errorMessage, \n errorModal: true,\n spinner: false\n });\n } else {\n this.setState({ \n ...this.state, \n errorMessage: '', \n errorModal: false,\n spinner: false\n });\n }\n }\n\n if (this.state !== prevState) {\n if (this.state.disabled === true || prevState.disabled === true) {\n if (\n this.state.password_flag === true &&\n this.state.id_email_flag === true\n ) {\n this.setState({\n disabled: false\n });\n }\n }\n }\n\n if (prevProps.holdDevice !== this.props.holdDevice) {\n if (this.props.holdDevice === 0) {\n this.setState({\n ...this.state,\n holdDevice: true\n });\n }\n }\n };\n\n doUserLogin = () => {\n this.setState({ ...this.state, spinner: true });\n return null;\n }\n\n login = async props => {\n await this.doUserLogin();\n await props.login({\n id_email: this.state.id_email,\n password: this.state.password,\n tracking: this.state.tracking\n });\n\n if (props.holdDevice === 0) {\n this.setState({\n holdDevice: true\n });\n }\n\n return null;\n };\n\n handleClickShowPassword = () => {\n return this.setState({ ...this.state, showpassword: !this.state.showpassword} );\n }\n\n handleMouseDownPassword = (event) => {\n event.preventDefault();\n return null;\n }\n\n handleText = (text, type) => {\n if (type === \"id\") {\n text.includes(\"@\") ? (type = \"email\") : (type = \"id\");\n if (textValidate(text, type) === true) {\n this.setState({\n id_email: text,\n id_email_flag: true,\n id_email_error: false\n });\n } else if (text.length < 1) {\n this.setState({\n id_email: text,\n id_email_flag: false,\n id_email_error: false,\n disabled: true\n });\n } else {\n this.setState({\n id_email: text,\n id_email_flag: false,\n id_email_error: true,\n disabled: true\n });\n }\n } else {\n if (textValidate(text, type) === true) {\n this.setState({\n password: text,\n password_flag: true,\n password_error: false\n });\n } else if (text.length < 1) {\n this.setState({\n password: text,\n password_flag: false,\n password_error: false,\n disabled: true\n });\n } else {\n this.setState({\n password: text,\n password_flag: false,\n password_error: true,\n disabled: true\n });\n }\n }\n };\n\n onBlur = () => {\n if (this.state.id_email_error === true) {\n if (this.state.id_email_blur_flag === false) {\n this.setState({\n id_email_blur_flag: true\n });\n }\n }\n if (this.state.password_error === true) {\n if (this.state.password_blur_flag === false) {\n this.setState({\n password_blur_flag: true\n });\n }\n }\n if (this.state.id_email_error === false) {\n if (this.state.id_email_blur_flag === true) {\n this.setState({\n id_email_blur_flag: false\n });\n }\n }\n if (this.state.password_error === false) {\n if (this.state.password_blur_flag === true) {\n this.setState({\n password_blur_flag: false\n });\n }\n }\n };\n\n handleClose = () => {\n this.setState({\n ...this.state,\n holdDevice: false\n });\n return null;\n };\n\n handleErrorClose = async () => {\n await this.setState({\n ...this.state,\n errorModal: false,\n errorMessage: ''\n });\n\n return null;\n }\n\n handleSpinnerClose = () => {\n this.setState({ ...this.state, spinner: false });\n return null;\n }\n\n render() {\n let bgsize = 'cover';\n let bgimg = \"url('./static/media/loginBackground-3x.jpg')\";\n\n if (isTablet || isElectron) { bgsize = 'contain'; bgimg = \"url('./static/media/loginBackground-3x.png')\"; }\n\n return (\n \n \n \n\n \n {this.state.disabled ? (\n \n Login\n \n ) : (\n this.login(this.props) }\n >\n Login\n \n )}\n \n\n \n remoteURL('https://university.auanet.org/passwordreset')} \n style={{\n color: 'white',\n borderBottom: '1px solid white'\n }}\n >\n Reset Password\n \n \n\n \n \n
Notice \n
\n You are prohibited from using or uploading content you accessed through this mobile application into external applications, bots, software, or websites, including those using artificial intelligence technologies and infrastructure, including deep learning, machine learning and large language models and generative AI.\n
\n
\n \n\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
LOADING... \n \n \n \n );\n }\n}\n\nconst mapStateToProps = state => {\n const { auth, holdDevice, errorMessage, errorCode } = state.auth;\n return { auth, holdDevice, errorMessage, errorCode };\n};\n\nexport default connect(mapStateToProps, { login, testApi, persistantLogin })(LoginScreen);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Redirect, Route } from \"react-router-dom\";\n\nconst ProtectedRoute = ({ component: Comp, loggedIn, path, ...rest }) => {\n const { auth } = rest;\n \n return (\n {\n return auth ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n\nconst mapStateToProps = state => {\n const { auth } = state.auth;\n return {\n auth\n };\n};\n\nexport default connect(mapStateToProps)(ProtectedRoute);\n","import React from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { \n getQuestion, putResponse, updateHeaderInfo, \n getQuestionResults, addQuestionToDeck, putNextReviewDate, \n addNote, getUserDetails, removeQuestion \n} from \"../actions\";\nimport { QuestionCard, CopyrightWidget, LoadingCard } from \"../components\";\nimport \"../styles/questionStyles.css\";\nimport { deviceData, scrollTop, preventCopy, alertNotification, getThisYear } from \"../common\";\n\nclass QuestionScreen extends React.Component {\n state = {\n answerChoice: -1,\n next: false,\n backgroundColor: \"#00567a\",\n loading: true, \n prevID: null,\n nextID: null,\n questionid: null,\n startNext: false,\n refsMats: null,\n yend: getThisYear(),\n ybegin: 2012,\n };\n\n redirectPage = (from = 'undefined') => {\n switch (Number(this.props.question.gameMode)) {\n case 1:\n case 2: {\n return this.props.history.push('/testResultScreen');\n }\n\n case 3:\n case 4: {\n return this.props.history.push('/myDecks');\n }\n\n default: {\n return this.props.history.push('/home');\n }\n }\n }\n\n scrollToTop = () => {\n return scrollTop('questionDIV', 0);\n }\n\n componentDidMount = async () => {\n preventCopy();\n // console.log('\\nSTARTING ... \\nprops: ', this.props);\n const { mcid, key } = this.props.auth_feedback;\n const { testYear, gameMode, deckID } = this.props.location;\n let questionData;\n let type;\n\n const page = deviceData(this.props.location, 'navigate');\n\n await this.props.getUserDetails(mcid, key, page);\n\n scrollTop('questionDIV', 0);\n \n if (gameMode === 2 || gameMode === 1) {\n questionData = {\n yearvar: testYear,\n mcid: mcid,\n key: key,\n gamemode: gameMode,\n tracking: {\n action: 'get test question',\n os: page.os,\n ua: page.ua,\n pathname: page.pathname,\n pagevia: page.pagevia\n }\n };\n type = 'test';\n } else if (gameMode === 3 || gameMode === 4 || gameMode === 7) {\n questionData = {\n mcid: mcid,\n key: key,\n gamemode: gameMode,\n deckID: deckID,\n tracking: {\n action: 'get deck question',\n os: page.os,\n ua: page.ua,\n pathname: page.pathname,\n pagevia: page.pagevia\n }\n };\n type = 'deck';\n }\n\n // console.log('mount obj: ', questionData);\n\n await this.props.getQuestion(questionData, type);\n\n document.addEventListener('keydown', this.onKeyDown);\n\n return this.setState({ \n ...this.state, \n backgroundColor: this.getHeaderColor(), \n prevID: null, \n nextID: null, \n loading: true \n });\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.serverMsg !== this.props.serverMsg) {\n await alertNotification({\n message: this.props.serverMsg.message,\n title: 'SASP Notification',\n buttonName: 'OK'\n });\n\n return this.openBookNav();\n // return this.skipQuestion(this.props.question.nextQuestionID);\n }\n\n if (prevProps.question !== this.props.question) {\n this.scrollToTop();\n\n if (!Array.isArray(this.props.question) && typeof this.props.question === 'object') {\n if (\n typeof this.props.question.error !== 'undefined' || \n this.props.question.questionID === '' ||\n !Number(this.props.question.morequestions)\n ) {\n return this.redirectPage('componentDidUpdate');\n } else {\n let prevID = this.props.question.previousQuestionID;\n let nextID = this.props.question.nextQuestionID;\n\n if (\n typeof prevProps.question.questionID !== 'undefined' \n && this.props.location.gameMode > 2\n && prevState.nextID != this.props.question.questionID\n && prevState.nextID != null\n ) {\n nextID = prevProps.question.questionID;\n }\n \n this.setState({\n ...this.state,\n prevID: prevID,\n nextID: nextID,\n loading: false, \n questionid: this.props.question.questionID,\n });\n }\n } else {\n // console.log('error occurred', this.props.question);\n return this.redirectPage('error');\n } \n }\n\n if (prevState.answerChoice !== this.state.answerChoice) {\n let putResponseData = {\n mcid: prevProps.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n questionID: prevProps.question.questionID,\n gamemode: prevProps.question.gameMode,\n optionSelected: this.state.answerChoice,\n deckID: this.props.location.deckID,\n tracking: deviceData(this.props.location, 'submit answer')\n };\n await this.props.putResponse(putResponseData);\n \n if (prevProps.question.gameMode === 2 || prevProps.question.gameMode === 4) {\n let questionData = {\n yearvar: prevProps.location.testYear,\n mcid: prevProps.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n gamemode: prevProps.question.gameMode,\n areavar: \"\"\n };\n\n questionData.tracking = deviceData(this.props.location, 'get question');\n await this.props.getQuestion(questionData);\n }\n }\n\n if (prevState.next !== this.state.next) {\n if (Number(prevProps.question.gameMode) === 1 || Number(prevProps.question.gameMode === 2)) {\n let questionData = {\n yearvar: prevProps.location.testYear,\n mcid: prevProps.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n gamemode: prevProps.question.gameMode,\n areavar: \"\",\n deckID: prevProps.location.deckID,\n };\n\n if (typeof prevProps.question.questionID !== 'undefined') {\n questionData.previousQuestionID = prevProps.question.questionID;\n }\n\n questionData.tracking = deviceData(this.props.location, 'get question');\n //console.log('\\non next function calling getQuestion()...\\ngameMode: ', prevProps.question.gameMode);\n await this.props.getQuestion(questionData);\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n }\n \n if (Number(prevProps.question.gameMode) === 3 || Number(prevProps.question.gameMode) === 4 || prevProps.question.gameMode === 7) {\n let questionData = {\n yearvar: \"\",\n mcid: prevProps.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n gamemode: prevProps.location.gameMode,\n areavar: \"\",\n deckID: prevProps.location.deckID\n };\n\n if (typeof prevProps.question.questionID !== 'undefined') {\n questionData.previousQuestionID = prevProps.question.questionID;\n }\n\n questionData.tracking = deviceData(this.props.location, 'get question');\n\n // console.log('\\non next function calling getQuestion()...\\ngameMode: ', prevProps.question.gameMode)\n await this.props.getQuestion(questionData);\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n }\n\n this.setState({ ...this.state });\n }\n \n return this.props.updateHeaderInfo({\n route:\"/questionScreen\", \n name: this.setHeaderName(), \n iconTwo: 'menu', \n iconOne: 'home',\n color: this.state.backgroundColor\n });\n };\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.onKeyDown);\n }\n\n onKeyDown = (event) => {\n const pressedKey = String.fromCharCode(event.keyCode).toLowerCase();\n\n if (event.ctrlKey && pressedKey === \"c\") {\n event.returnValue = false;\n }\n }\n\n getHeaderColor = () => {\n let r;\n switch(Number(this.props.location.testYear)) {\n case 2020: {\n r = '#B2C7E3'; break;\n }\n case 2019: {\n r = '#97A19C'; break;\n }\n case 2018: {\n r = '#7A8D96'; break;\n }\n case 2017: {\n r = '#62B5E5'; break;\n }\n case 2016: {\n r = '#A8AA89'; break;\n }\n case 2015: {\n r = '#A99D8C'; break;\n }\n case 2014: {\n r = '#8ebe74'; break;\n }\n case 2013: {\n r = '#8CA1AD'; break;\n //wrong answers\n }\n case 2012: {\n r = '#A5A5A5'; break;\n //prostate cancer color\n }\n\n default: {\n r = '#00567a';\n break;\n }\n }\n\n return r;\n }\n\n setHeaderName = () => {\n let r = 'temp name';\n\n switch(this.props.location.gameMode) {\n case 1:\n case 2: {\n r = \"SASP \" + this.props.location.testYear;\n break;\n }\n\n case 3:\n case 4: {\n let temp = this.props.deckList.find(item => item.deckID === this.props.location.deckID);\n r = temp.deckname;\n break;\n }\n\n default: {\n r = 'sasp';\n break;\n }\n }\n return r;\n }\n\n updateOption = answer => {\n return this.setState({\n answerChoice: answer\n });\n };\n\n openBookNav = (bool) => {\n bool = !this.state.next;\n scrollTop('questionDIV', 0);\n return this.setState({\n ...this.state,\n next: bool\n });\n };\n\n addToDecks = async (id, deckID) => {\n let cnt = 0;\n let obj;\n if (!deckID) {\n for (const i in this.props.deckList) {\n obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: id, \n deckID: this.props.deckList[i].deckID\n };\n\n this.props.addQuestionToDeck(obj);\n cnt++\n }\n } else {\n obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: id, \n deckID: deckID\n };\n\n this.props.addQuestionToDeck(obj);\n }\n \n }\n\n removeQuestion = async(obj) => {\n return this.props.removeQuestion(obj);\n }\n\n skipQuestion = async (questionID) => {\n const page = deviceData(this.props.location, 'skip question');\n\n let data = {\n yearvar: this.props.question.QuestionYear,\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n gamemode: this.props.location.gameMode,\n areavar: this.props.question.areaVar,\n deckID: (this.props.location.deckID ? this.props.location.deckID : null),\n questionID: questionID,\n tracking: {\n action: 'skip question',\n os: page.os,\n ua: page.ua,\n pathname: page.pathname,\n pagevia: page.pagevia\n }\n };\n\n this.scrollToTop();\n await this.setState({ ...this.state, answerChoice: -1, loading: true });\n\n this.props.getQuestion(data); \n }\n\n addNote = async (data) => {\n data.questionID = Number(data.questionID);\n // console.log('\\nadd note....\\n', data);\n data.tracking = this.state.tracking;\n this.props.addNote(data);\n }\n\n resetTest = () => {\n // console.log('Reset Test...');\n };\n \n //TODO fix minHeight. needs to be adjusted or at the very least put in a stylesheet\n //and calculated based on media queries. good for upcoming demo only\n\n render () {\n const { question } = this.props;\n\n if (typeof question === 'object' && !Array.isArray(question)) { \n if (!Number(question.morequestions)) {\n return null; \n } else {\n return (\n \n \n\n \n
\n ); \n }\n } else {\n // console.log('renderFailed ...');\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { question, sessionAnsweredQuestion } = state.question;\n const { deckList, serverMsg } = state.decks;\n\n return {\n question,\n user_details,\n sessionAnsweredQuestion,\n auth_feedback,\n deckList,\n serverMsg\n };\n};\n\nexport default connect(mapStateToProps, \n { putResponse, getQuestion, getQuestionResults, addQuestionToDeck, updateHeaderInfo, putNextReviewDate, addNote,getUserDetails, removeQuestion }\n)( withRouter(QuestionScreen));\n\n//TODO find where question list coming from/how to pull the flow correctly\n//into reducers and then into here\n//TODO walk through backend flow with pat in more detail on this.\n","import React from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { Divider, Typography } from \"@material-ui/core\";\nimport { \n getSingleQuestion, putResponse, updateHeaderInfo, \n getQuestionResults, addQuestionToDeck, putNextReviewDate, \n addNote, getUserDetails \n} from \"../actions\";\nimport { SingleQuestionCard, CopyrightWidget, LoadingCard, QuestionTestCard } from \"../components\";\nimport { deviceData, scrollTop, preventCopy, getThisYear, setContainer } from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nimport \"../styles/questionStyles.css\";\n\nclass SingleQuestionScreen extends React.Component {\n state = {\n answerChoice: -1,\n next: false,\n backgroundColor: \"#00567a\",\n loading: true, \n prevID: null,\n nextID: null,\n questionid: null,\n startNext: false,\n refsMats: null,\n yend: getThisYear(),\n ybegin: 2012,\n typetext: 'Single Question',\n type: 'single',\n data: {},\n answered: -1,\n gamemode: 0,\n year: 0,\n spaced: 0,\n deckid: null\n };\n\n redirectPage = (from = 'undefined') => {\n switch (Number(this.props.question.gameMode)) {\n case 1:\n case 2: {\n return this.props.history.push('/testResultScreen');\n }\n\n case 3:\n case 4: {\n return this.props.history.push('/myDecks');\n }\n\n case 5: {\n return this.props.history.goBack();\n // return this.props.history.push('/home');\n }\n\n case 6: {\n localStorage.setItem('sasp-hideDaily', 1);\n \n return this.props.history.goBack();\n }\n\n default: {\n localStorage.setItem('sasp-hideDaily', 1);\n return this.props.history.push('/home');\n }\n }\n }\n\n scrollToTop = () => {\n return scrollTop('QuestionDiv', -64);\n }\n\n componentDidMount = async () => {\n preventCopy();\n \n const { mcid, key } = this.props.auth_feedback;\n const { testYear, gameMode, deckID } = this.props.location;\n let questionData;\n let type;\n\n let _qdata = {\n mcid: mcid,\n key: key,\n questionid: this.props.location.questionid,\n gamemode: this.props.location.gameMode\n }\n\n await this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n await this.props.getSingleQuestion(_qdata);\n\n scrollTop('QuestionDiv', -64);\n\n document.addEventListener('keydown', this.onKeyDown);\n\n let _type = 'single';\n let _typetext = 'Review Question';\n\n if (Number(gameMode) === 6) {\n _type = 'QoD';\n _typetext = 'Question of the Day';\n }\n\n return this.setState({ \n ...this.state, \n backgroundColor: this.getHeaderColor(), \n gamemode: gameMode,\n year: testYear,\n deckid: deckID,\n questionid: this.props.location.questionid,\n type: type,\n typetext: _typetext\n });\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.question !== this.props.question) {\n\n if (!Array.isArray(this.props.question) && typeof this.props.question === 'object') {\n if (\n typeof this.props.question.error !== 'undefined' || \n this.props.question.questionID === '' ||\n (!Number(this.props.question.morequestions) && (this.props.location.gameMode !== 5 && this.props.location.gameMode !== 6))\n ) {\n return this.redirectPage('componentDidUpdate');\n } else if (this.props.location.gameMode !== 5 && this.props.location.gameMode !== 6) {\n let prevID = this.props.question.previousQuestionID;\n let nextID = this.props.question.nextQuestionID;\n\n if (\n typeof prevProps.question.questionID !== 'undefined' \n && this.props.location.gameMode > 2\n && prevState.nextID != this.props.question.questionID\n && prevState.nextID != null\n ) {\n nextID = prevProps.question.questionID;\n }\n \n this.setState({\n ...this.state,\n prevID: prevID,\n nextID: nextID,\n loading: false, \n questionid: this.props.question.questionID,\n });\n } else {\n this.setState({\n ...this.state,\n loading: false, \n questionid: this.props.question.questionID,\n });\n }\n } else {\n return this.redirectPage('error');\n } \n }\n\n if (prevState.answerChoice !== this.state.answerChoice) {\n let putResponseData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: this.props.question.questionID,\n gamemode: this.props.question.gameMode,\n optionSelected: this.state.answerChoice,\n deckID: this.props.location.deckID,\n tracking: deviceData(this.props.location, 'submit answer')\n };\n await this.props.putResponse(putResponseData);\n \n /*if (prevProps.question.gameMode === 2 || prevProps.question.gameMode === 4) {\n let questionData = {\n yearvar: this.props.location.testYear,\n mcid: this.props.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n gamemode: prevProps.question.gameMode,\n areavar: \"\"\n };\n\n // questionData.tracking = deviceData(this.props.location, 'get single question');\n // await this.props.getQuestion(questionData);\n }*/\n }\n\n if (prevState.next !== this.state.next) {\n if (Number(prevProps.question.gameMode) === 1 || Number(prevProps.question.gameMode === 2)) {\n let questionData = {\n yearvar: prevProps.location.testYear,\n mcid: prevProps.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n gamemode: prevProps.question.gameMode,\n areavar: \"\",\n deckID: prevProps.location.deckID,\n };\n\n if (typeof prevProps.question.questionID !== 'undefined') {\n questionData.previousQuestionID = prevProps.question.questionID;\n }\n }\n \n if (Number(prevProps.question.gameMode) === 3 || Number(prevProps.question.gameMode) === 4) {\n let questionData = {\n yearvar: \"\",\n mcid: prevProps.auth_feedback.mcid,\n key: prevProps.auth_feedback.key,\n gamemode: prevProps.location.gameMode,\n areavar: \"\",\n deckID: prevProps.location.deckID\n };\n\n if (typeof prevProps.question.questionID !== 'undefined') {\n questionData.previousQuestionID = prevProps.question.questionID;\n }\n }\n\n this.setState({ ...this.state });\n }\n \n return this.props.updateHeaderInfo({\n route:\"/SingleQuestionScreen\", \n name: this.setHeaderName(), \n iconTwo: 'menu', \n iconOne: 'home',\n color: this.state.backgroundColor\n });\n };\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.onKeyDown);\n }\n\n onKeyDown = (event) => {\n const pressedKey = String.fromCharCode(event.keyCode).toLowerCase();\n\n if (event.ctrlKey && pressedKey === \"c\") {\n event.returnValue = false;\n }\n }\n\n getHeaderColor = () => {\n let r;\n switch(Number(this.props.location.testYear)) {\n case 2020: {\n r = '#B2C7E3'; break;\n }\n case 2019: {\n r = '#97A19C'; break;\n }\n case 2018: {\n r = '#7A8D96'; break;\n }\n case 2017: {\n r = '#62B5E5'; break;\n }\n case 2016: {\n r = '#A8AA89'; break;\n }\n case 2015: {\n r = '#A99D8C'; break;\n }\n case 2014: {\n r = '#8ebe74'; break;\n }\n case 2013: {\n r = '#8CA1AD'; break;\n //wrong answers\n }\n case 2012: {\n r = '#A5A5A5'; break;\n //prostate cancer color\n }\n\n default: {\n r = '#00567a';\n break;\n }\n }\n\n return r;\n }\n\n setHeaderName = () => {\n let r = 'temp name';\n\n switch(this.props.location.gameMode) {\n case 1:\n case 2: {\n r = \"SASP \" + this.props.location.testYear;\n break;\n }\n\n case 3:\n case 4: {\n let temp = this.props.deckList.find(item => item.deckID === this.props.location.deckID);\n r = temp.deckname;\n break;\n }\n\n case 5: {\n r = 'SASP'\n }\n\n default: {\n r = 'SASP';\n break;\n }\n }\n return r;\n }\n\n updateOption = answer => {\n return this.setState({\n answerChoice: answer\n });\n };\n\n openBookNav = (bool) => {\n bool = !this.state.next;\n scrollTop('QuestionDiv', -64);\n return this.setState({\n ...this.state,\n next: bool\n });\n };\n\n addToDecks = async (id, deckID) => {\n let cnt = 0;\n let obj;\n if (!deckID) {\n for (const i in this.props.deckList) {\n obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: id, \n deckID: this.props.deckList[i].deckID\n };\n\n this.props.addQuestionToDeck(obj);\n cnt++\n }\n } else {\n obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: id, \n deckID: deckID\n };\n\n this.props.addQuestionToDeck(obj);\n }\n \n }\n\n skipQuestion = async (questionID) => {\n let data = {\n yearvar: this.props.question.QuestionYear,\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n gamemode: this.props.location.gameMode,\n areavar: this.props.question.areaVar,\n deckID: (this.props.location.deckID ? this.props.location.deckID : null),\n questionID: questionID\n };\n\n this.scrollToTop();\n await this.setState({ ...this.state, answerChoice: -1, loading: true });\n\n // this.props.getQuestion(data); \n }\n\n addNote = async (data) => {\n data.questionID = Number(data.questionID);\n\n data.tracking = this.state.tracking;\n this.props.addNote(data);\n }\n\n resetTest = () => {\n };\n\n goBack = () => {\n this.props.history.goBack();\n }\n\n handleSubmit = async (obj) => {\n if (typeof obj.next !== 'undefined') {\n await this.setState({ ...this.state, loading: true});\n\n let _goto = {\n mcid: obj.mcid,\n key: obj.key,\n gamemode: this.state.gamemode,\n }\n\n if (this.state.gamemode < 3) {\n _goto.yearvar = this.state.year;\n }\n\n if (obj.next > 0) {\n _goto.questionID = obj.next;\n }\n\n /**\n * questionID: obj.next,\n * yearvar: this.state.year\n */\n scrollTop('QuestionDiv', -64)\n\n return this.redirectPage()\n } else if (typeof obj.prev !== 'undefined') {\n await this.setState({ ...this.state, loading: true});\n\n let _goto = {\n mcid: obj.mcid,\n key: obj.key,\n gamemode: this.state.gamemode,\n }\n\n if (this.state.gamemode < 3) {\n _goto.yearvar = this.state.year;\n }\n\n if (obj.prev > 0) {\n _goto.questionID = obj.prev;\n }\n scrollTop('QuestionDiv', -64)\n\n return this.redirectPage()\n } else if (typeof obj.answerid !== 'undefined') {\n const data = {\n mcid: obj.mcid,\n key: obj.key,\n questionID: Number(obj.questionid),\n gamemode: this.state.gamemode,\n optionSelected: obj.choice ? obj.choice : obj.answerid,\n deckID: this.props.location.deckID ? this.props.location.deckID : 0,\n tracking: deviceData(this.props.location, 'submit answer')\n };\n\n console.log(data);\n\n data.tracking.action = 'answer question';\n\n await this.props.putResponse(data);\n\n return this.redirectPage();\n }\n }\n\n render () {\n const { question } = this.props;\n\n if (!this.state.loading) { \n return (\n <>\n \n
\n
\n SASP Question \n
\n \n
\n
\n\n
\n \n\n \n
\n
\n >\n ); \n } else {\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { question, sessionAnsweredQuestion } = state.question;\n const { deckList } = state.decks;\n\n return {\n question,\n user_details,\n sessionAnsweredQuestion,\n auth_feedback,\n deckList\n };\n};\n\nexport default connect(mapStateToProps, \n { putResponse, getSingleQuestion, getQuestionResults, addQuestionToDeck, updateHeaderInfo, putNextReviewDate, addNote,getUserDetails }\n)( withRouter(SingleQuestionScreen));\n\n//TODO find where question list coming from/how to pull the flow correctly\n//into reducers and then into here\n//TODO walk through backend flow with pat in more detail on this.\n","import React from \"react\";\nimport { Redirect, withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { CompleteCard, LoadingCard } from \"../components\";\nimport { \n updateHeaderInfo,\n getAllQuestions,\n getQuestionResults,\n editDeck,\n addNote,\n getAccessList,\n shareDeck, emailResults, resetDeck, getDecks,\n getUserDetails,\n submitCME,\n setPrevPageDetails,\n removeShareDeck\n} from \"../actions\";\nimport { deviceData, scrollTop, setContainer } from \"../common\";\nimport \"../styles/questionStyles.css\";\nimport { isBrowser, isElectron } from \"react-device-detect\";\n\nclass CompleteTestScreen extends React.Component {\n state = {\n results: this.props.get_question_results,\n state: false,\n show: false,\n obj: {},\n tracking: null,\n showComplete: 0\n }\n \n componentDidMount = async () => {\n await scrollTop();\n await this.props.updateHeaderInfo({\n route:\"/testResultScreen\", \n name: \"Summary\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: this.state.backgroundColor\n });\n\n let obj = {\n mcid: this.props.auth_feedback.mcid, \n key: this.props.auth_feedback.key,\n gamemode: this.props.location.gameMode ? this.props.location.gameMode : this.props.question.gameMode\n };\n\n if (typeof this.props.location.deckID !== 'undefined') {\n obj.deckID = this.props.location.deckID;\n } else if (Number(this.props.question.gameMode) === 5) {\n obj.deckID = this.props.prevPage.deckID;\n } else if (typeof this.props.question !== 'undefined') {\n obj.yearvar = this.props.question.QuestionYear ? this.props.question.QuestionYear : this.props.question.availableyears;\n\n\n\n let sobj = {\n mcid: this.props.auth_feedback.mcid, \n key: this.props.auth_feedback.key,\n gamemode: this.props.location.gameMode ? this.props.location.gameMode : this.props.question.gameMode,\n qyear: obj.yearvar\n };\n\n this.props.submitCME(sobj, deviceData(this.props.location, 'claim cme'));\n }\n if (typeof this.props.location.testYear !== 'undefined') {\n obj.yearvar = this.props.location.testYear;\n\n let sobj = {\n mcid: this.props.auth_feedback.mcid, \n key: this.props.auth_feedback.key,\n gamemode: this.props.location.gameMode ? this.props.location.gameMode : this.props.question.gameMode,\n qyear: this.props.location.testYear,\n };\n\n this.props.submitCME(sobj, deviceData(this.props.location, 'claim cme'));\n }\n\n if (typeof this.props.deckList === 'undefined') {\n await this.props.getDecks({\n mcid: obj.mcid, \n key: obj.key\n });\n }\n \n await this.setState({ ...this.state, obj: obj, tracking: deviceData(this.props.location, 'navigate') });\n\n obj.tracking = this.state.tracking;\n\n let programid = null;\n\n if (typeof this.props.user_details.program !== 'undefined') {\n programid = this.props.user_details.program.programid;\n }\n\n // console.log(obj);\n \n await this.props.getQuestionResults( obj );\n return this.props.getAccessList({\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n programid: programid\n });\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.deckList !== this.props.deckList) {\n this.setState({ ...this.state, show: false});\n\n await this.props.getQuestionResults(this.state.obj);\n } else if ((prevProps.accessList !== this.props.accessList)) {\n if (!this.state.show) {\n this.setState({ ...this.state, show: true, });\n }\n } else if (prevProps === this.props) {\n if (Object.keys(this.props.get_question_results).length > 0) {\n if (\n (typeof this.state.obj.deckID !== 'undefined' && this.state.obj.deckID === prevState.obj.deckID) ||\n (typeof this.state.obj.yearvar !== 'undefined' && this.state.obj.yearvar === prevState.obj.yearvar)\n ) {\n if (!this.state.show) {\n this.setState({ ...this.state, show: true, });\n }\n }\n }\n } \n\n if (prevProps.get_question_results !== this.props.get_question_results) {\n let _bool = 0;\n\n if (this.props.get_question_results.totalscore >= 50) {\n _bool = 1;\n }\n\n this.setState({...this.state, results: this.props.get_question_results, showComplete: _bool});\n }\n\n if (prevProps.user_details !== this.props.user_details) {\n this.setState({ ...this.state, show: true, });\n }\n }\n\n resetDeck = async (data) => {\n await this.props.resetDeck(data);\n\n return \n }\n\n emailResults = async (data, tracking) => {\n data.subject = '' + data.subject + '
'\n data.subject = data.subject.replace(/\\n/g, ' ');\n data.subject = data.subject.replace(/\\r/g, '
');\n data.subject = data.subject.replace(/<\\/p>
<\\/p>
/g, '
');\n\n if (typeof tracking !== 'undefined') {\n await this.props.emailResults(data, deviceData(this.props.location, 'email result'));\n } else {\n await this.props.emailResults(data);\n } \n }\n\n shareDeck = async (data) => {\n if (typeof tracking !== 'undefined') {\n await this.props.shareDeck(data, deviceData(this.props.location, 'share deck'));\n } else {\n await this.props.shareDeck(data);\n } \n }\n\n setComplete = async (bool) => {\n await this.setState({\n ...this.state,\n showComplete: bool,\n })\n }\n\n addNote = async (data) => {\n this.setState({\n ...this.state,\n show: false,\n })\n await this.props.addNote(data);\n await this.props.getUserDetails(data.mcid, data.key, deviceData(this.props.location, 'add note'));\n\n scrollTop();\n }\n\n submitCME = async (data) => {\n await this.props.submitCME(data, deviceData(this.props.location, 'claim cme'));\n }\n\n setPrevPageDetails = async (data) => {\n // console.log(data);\n await this.props.setPrevPageDetails(data);\n }\n\n setContainer = (bool) => {\n return { padding: \"0px 16px 32px\", margin: \"calc(env(safe-area-inset-top) + 56px) 0 64px\", width: \"calc(100%)\", overflowY: \"auto\" };\n }\n\n removeShare = (data) => {\n return this.props.removeShareDeck(data);\n }\n\n render() {\n if (this.state.show && typeof this.props.deckList !== 'undefined') {\n return (\n item.deckID === this.state.obj.deckID) : null}\n show={this.state.show}\n editDeck={this.props.editDeck}\n addNote={this.addNote}\n accessList={this.props.accessList}\n shareDeck={this.shareDeck}\n emailResults={this.emailResults}\n resetDeck={this.resetDeck}\n submitCME={this.submitCME} \n container={this.setContainer(isBrowser)}\n testYear={this.state.obj.yearvar}\n showComplete={this.state.showComplete}\n totalscore={Math.trunc(this.props.get_question_results.totalscore)}\n setComplete={this.setComplete}\n setPrevPageDetails={this.setPrevPageDetails}\n removeShare={this.removeShare}\n />\n );\n } else {\n return (\n \n )\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { user_details, auth_feedback, accessList } = state.auth;\n const { newDeckInfo, deckList } = state.decks;\n const { question, sessionAnsweredQuestion, get_question_count, get_question_results } = state.question;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { prevPage } = state.device\n return { \n user_details, \n auth_feedback,\n accessList,\n newDeckInfo, \n deckList, \n question, \n sessionAnsweredQuestion,\n get_question_count,\n get_question_results,\n headerText, iconOne, iconTwo, backgroundcolor, prevPage\n };\n};\n\nexport default connect(mapStateToProps, {\n updateHeaderInfo,\n getAllQuestions,\n getQuestionResults,\n editDeck,\n addNote,\n getUserDetails,\n getAccessList, shareDeck, emailResults, resetDeck, getDecks, submitCME, setPrevPageDetails, removeShareDeck\n})(withRouter(CompleteTestScreen));\n","import React from 'react';\nimport { apiGetDevice, apiSetPrevPageDetails, apiTrackPage } from \"../api\";\nimport { \n GET_DEVICE_DATA, GET_DEVICE_DATA_FAILED,\n PREV_PAGE_DATA, PREV_PAGE_DATA_FAILED,\n TRACK_PAGE, TRACK_PAGE_FAILED\n} from \"../actions\";\n\nexport const trackPage = (data) => async dispatch => {\n try {\n const response = await apiTrackPage(data);\n\n dispatch({\n type: TRACK_PAGE,\n payload: response\n });\n } catch (e) {\n dispatch({\n type: TRACK_PAGE_FAILED,\n payload: e\n });\n }\n}\n\nexport const getDeviceData = async dispatch => {\n try {\n let data = await apiGetDevice();\n dispatch({\n type: GET_DEVICE_DATA,\n payload: data\n });\n } catch (e) {\n dispatch({\n type: GET_DEVICE_DATA_FAILED,\n payload: e\n });\n }\n}\n\nexport const setPrevPageDetails = (data) => async dispatch => {\n try {\n const response = await apiSetPrevPageDetails(data);\n dispatch({\n type: PREV_PAGE_DATA,\n payload: response\n });\n } catch (e) {\n dispatch({\n type: PREV_PAGE_DATA_FAILED,\n payload: e\n });\n }\n}","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Redirect } from \"react-router-dom\";\nimport { confirmCME, getUserDetails, persistantLogin, logout } from \"../actions\";\nimport { LoadingCard } from \"../components\";\n\nclass SplashScreen extends Component {\n state = {\n cme_flag: true,\n cmeYears_length: -1,\n cmeYears_current: 0,\n cme_confirmations: 0,\n show: false\n };\n\n componentDidMount = async () => {\n if (\n typeof localStorage.getItem('login_dt') !== 'undefined' && \n localStorage.getItem('login_dt') != null\n ) { \n const _date = new Date();\n const _expire = Number(localStorage.getItem('login_dt'));\n const _now = Number(Date.parse(_date));\n \n if (_now < _expire) {\n \n await persistantLogin();\n }\n }\n\n const { auth_feedback, user_details } = this.props;\n await this.props.getUserDetails(auth_feedback.mcid, auth_feedback.key);\n return this.setState({\n ...this.state,\n cme_flag: false,\n show: true\n });\n };\n\n /*\n componentDidUpdate = (prevProps, prevState) => {\n if (prevProps !== this.props) {\n if (prevProps.user_details !== this.props.user_details) {\n if (this.state.cmeYears_length === -1) {\n this.setState({\n ...this.state,\n cmeYears_length: this.props.user_details.cmeYears.length - 1\n });\n this.checkConfirmations();\n }\n }\n }\n };\n\n checkConfirmations = () => {\n let confirmed = 0;\n if (this.props.user_details.cmeYears !== \"No SASP Purchased\") {\n for (let i = 0; i < this.props.user_details.cmeYears.length; i++) {\n if (this.props.user_details.cmeYears[i].confirmed === 1) {\n confirmed++;\n }\n }\n this.setState({\n ...this.state,\n cme_confirmations: confirmed\n });\n }\n };\n\n confirmCME = props => {\n //TODO fill in function with necessary information to update/confirm cme\n //in database\n \n //TODO rename to something better than \"props\"\n props.confirmCME({\n mcid: props.auth_feedback.mcid,\n key: props.auth_feedback.key,\n programID:\n props.user_details.cmeYears[this.state.cmeYears_current].programID\n });\n if (this.state.cmeYears_current >= this.state.cmeYears_length) {\n return ;\n } else {\n this.setState({\n ...this.state,\n cmeYears_current: this.state.cmeYears_current + 1\n });\n }\n };\n\n createMarkup = props => {\n if (typeof props !== 'undefined') {\n props.replace(/margin-left\\:160px/g, '');\n }\n \n return { __html: props };\n };\n\n cmeButton = props => {\n if (this.state.cmeYears_current >= this.state.cmeYears_length) {\n return (\n \n this.confirmCME(props)}\n className=\"deregister_button text-white font-strong\"\n color=\"secondaryBlue\"\n >\n Click to Confirm\n \n \n );\n }\n return (\n this.confirmCME(props)}\n className=\"deregister_button\"\n color=\"secondaryBlue\"\n >\n Click to Confirm\n \n );\n };\n\n cmeInformation = cmeYears => {\n if (this.props.user_details.cmeYears === \"No SASP Purchased\") {\n return (\n \n We don't have a record of SASP purchases for your account. Please go\n online to .... or call ....\n
\n );\n }\n \n if (cmeYears.length === this.state.cme_confirmations) {\n return ;\n }\n if (cmeYears[this.state.cmeYears_current].confirmed) {\n if (cmeYears[this.state.cmeYears_current].confirmed === 1) {\n this.setState({\n ...this.state,\n cmeYears_current: this.state.cmeYears_current + 1\n });\n }\n }\n return (\n \n
\n {this.cmeButton(this.props)}\n
\n );\n };\n */\n\n render() {\n if (!this.state.show) {\n return (\n \n // \n //
LOADING... \n //
\n )\n } else {\n if (typeof this.props.user_details === 'undefined') {\n // return ( )\n return (\n \n )\n } else if (this.props.user_details.cmeYears === \"No SASP Purchased\") {\n // return this.props.logout();\n if (localStorage.length > 0 ) {\n localStorage.clear();\n }\n \n return (\n \n \n );\n } else if (Number(this.props.user_details.newUser)) {\n return ;\n } else {\n return ;\n }\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback } = state.auth;\n const { user_details, cme_confirmations } = state.auth;\n return { auth_feedback, user_details, cme_confirmations };\n};\n\nexport default connect(mapStateToProps, { getUserDetails, confirmCME, logout })(\n SplashScreen\n);\n","export const testQuestion = [\n {\n \"mcid\" : \"00809875\",\n \"access\" : \"1\",\n \"gameMode\" : \"1\",\n \"areaVar\" : \"adl\",\n \"availableyears\" : \"2019,2018,2017,2016,2015,2014,2013,2012\",\n \"admin\" : \"Y\",\n \"questionText\" : \"A 52-year-old man with a history of lung cancer has a 5 cm adrenal mass with an attenuation of 45 Hounsfield units noted on follow-up non-contrast CT scan. Metastatic evaluation is otherwise negative. Metabolic evaluation is normal. The next step is:
\",\n \"questionID\" : \"3866\",\n \"QuestionYear\" : \"2019\",\n \"questionArea\" : \"ADL\",\n \"patientType\" : \"ADU\",\n \"questionNumber\" : \"3\",\n \"qoptions\" : [\n \n {\n \"AnswerOptionID\" : 19327,\n \"AnswerOption\" : \"repeat imaging and metabolic evaluation in six months. \",\n \"AnswerOptionLetter\" : \"A\",\n \"AnswerOptionCorrect\" : \"0\"\n },\n {\n \"AnswerOptionID\" : 19328,\n \"AnswerOption\" : \"MRI scan. \",\n \"AnswerOptionLetter\" : \"B\",\n \"AnswerOptionCorrect\" : \"0\"\n },\n {\n \"AnswerOptionID\" : 19329,\n \"AnswerOption\" : \"MIBG scan. \",\n \"AnswerOptionLetter\" : \"C\",\n \"AnswerOptionCorrect\" : \"0\"\n },\n {\n \"AnswerOptionID\" : 19326,\n \"AnswerOption\" : \"percutaneous needle biopsy. \",\n \"AnswerOptionLetter\" : \"D\",\n \"AnswerOptionCorrect\" : \"1\"\n },\n {\n \"AnswerOptionID\" : 19330,\n \"AnswerOption\" : \"adrenalectomy. \",\n \"AnswerOptionLetter\" : \"E\",\n \"AnswerOptionCorrect\" : \"0\"\n }\n ]\n }\n ]\n\n","export const Images = {\n auaLogo: require(\"./aualogo.png\")\n};","import { Container } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport {\n ConfidenceButtons,\n DeckCard,\n HomeDeckCard,\n QuestionCard,\n Header,\n TestTableCard,\n Footer\n} from \"../components\";\nimport { SkeletonImage } from \"../components/SkeletonImage\";\nimport { Images } from \"../images\";\nimport { testQuestion } from \"../testQuestion\";\n\n//TODO organize components\n\nclass TestScreen extends Component {\n state = {\n oneSelected: false,\n twoSelected: false\n };\n\n render() {\n return (\n \n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n );\n }\n}\n\nexport { TestScreen };\n","import React from \"react\";\nimport { Redirect, Route } from \"react-router-dom\";\nimport { persistantLogin } from \"../actions\"\n\nexport const RedirectScreen = ({\n component: Comp,\n loggedIn,\n path,\n ...rest\n}) => {\n /*if (\n typeof localStorage.getItem('login_dt') !== 'undefined' && \n localStorage.getItem('login_dt') != null\n ) { \n const _date = new Date();\n const _expire = Number(localStorage.getItem('login_dt'));\n const _now = Number(Date.parse(_date));\n \n if (_now < _expire) {\n persistantLogin();\n loggedIn = true;\n if (typeof path === 'undefined') { path = '/home'}\n\n // console.log('\\nRedirectScreen');\n // console.log(\"localStorage.getItem('login_dt'): \", localStorage.getItem('login_dt'));\n // console.log('path: ', path);\n // console.log('loggedIn: ', loggedIn);\n }\n }*/\n \n\n return (\n {\n return loggedIn ? (\n \n ) : (\n \n );\n }}\n />\n );\n};\n","import { Divider, Typography } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { getDecks, updateHeaderInfo, copyDeck, getUserDetails } from \"../actions\";\nimport { DeckCard, CopyrightWidget, LoadingCard } from \"../components\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport AddIcon from '@material-ui/icons/Add';\nimport Modal from '@material-ui/core/Modal';\nimport { deviceData, setContainer, getThisYear } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nclass DeckListScreen extends Component {\n state = {\n reload: false,\n copyModal: false,\n text: 'test...',\n loading: true,\n deckList: []\n }\n\n componentDidMount = async () => {\n await this.props.updateHeaderInfo({\n route:\"/createDeckScreen\", \n name: \"Custom Decks\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n const { mcid, key } = this.props.auth_feedback;\n await this.props.getUserDetails( mcid, key, deviceData(this.props.location, 'navigate') );\n\n return this.props.getDecks({ mcid: mcid, key: key }); \n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (\n prevProps.deckList !== this.props.deckList &&\n (\n !this.state.deckList.length &&\n this.props.deckList.length\n )\n ) {\n this.setState({ ...this.state, deckList: this.props.deckList })\n } else if (prevState.deckList !== this.state.deckList) {\n setTimeout(() => {\n this.setState({ ...this.state, deckList: this.props.deckList, loading: false}) \n }, 150)\n }\n \n if (this.state.reload) {\n this.setState({ ...this.state, reload: false});\n }\n }\n\n handleOpen = () => {\n this.setState({\n ...this.state,\n copyModal: true,\n });\n };\n\n handleClose = () => {\n this.setState({\n ...this.state,\n copyModal: false,\n });\n };\n\n copyThisDeck = async (id) => {\n let data = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckID: id\n }\n let obj = this.state.deckList.find(item => item.deckID == Number(id));\n\n await this.setState({ ...this.state, loading: true});\n\n await this.props.copyDeck(data);\n\n setTimeout(() => {\n return this.props.getDecks({ \n mcid: this.props.user_details.mcid, \n key: this.props.user_details.key \n });\n }, 250)\n \n // this.handleOpen();\n }\n\n setColorObj = (type = 'base') => {\n let r;\n\n switch (type) {\n default: {\n r = {\n deck: \"neutralGreenCard\",\n text: \"neutralGreenText\",\n button: \"neutralGreenCard\"\n }\n }\n }\n return r;\n }\n\n mapMyDeckCards = () => {\n const deckList = this.state.deckList;\n\n if (typeof deckList !== 'undefined' && deckList.length > 0) { \n return deckList.map((deck, index) => {\n let percomp = Math.trunc((Number(deck.totaAnswered) / Number(deck.totalQuestions)) * 100);\n if (percomp > 100) { percomp = 100; }\n let colorObj = (typeof deck.deckColor !== 'undefined' ? this.setColorObj(deck.deckColor) : this.setColorObj());\n\n return (\n this.copyThisDeck(deck.deckID)}\n owner={Number(deck.owner)}\n isWrong={deck.isWrong}\n totalQuestions={deck.totalQuestions}\n flashcard={deck.flashCards} \n />\n );\n });\n }\n };\n\n setContainer = (bool) => {\n if (bool) {\n if (isBrowser && !isElectron) {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 40px)\", height: \"calc(100vh - 160px)\" };\n } else {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\" };\n }\n \n } else {\n if (isBrowser && !isElectron) {\n return { padding: \"16px\", margin: \"0 0 64px\", width: \"calc(100% - 40px)\", height: \"calc(100vh - 160px)\" };\n } else {\n return { padding: \"16px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\" };\n }\n }\n }\n\n render() {\n if (!this.state.loading) {\n return (\n <>\n {/* */}\n
\n
\n
\n My Decks\n \n\n \n \n \n \n
\n
\n\n
\n {this.mapMyDeckCards(this.props)}\n
\n\n
\n
\n\n
\n \n
\n
\n
You have copied {this.state.text} .
\n
You can find the deck on your decks page.
\n
\n
\n
\n \n >\n );\n } else {\n return
\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n deckList,\n auth_feedback,\n user_details\n };\n};\n\nexport default connect(mapStateToProps, \n { \n updateHeaderInfo, getDecks, copyDeck, getUserDetails\n })(withRouter(DeckListScreen));","import { Divider, Typography, Grid, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { getDecks, updateHeaderInfo, copyDeck, getUserDetails, addNote } from \"../actions\";\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport Modal from '@material-ui/core/Modal';\nimport { isMobileOnly } from 'react-device-detect';\nimport \"../styles/questionStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { CopyrightWidget } from \"../components\";\nimport { deviceData, getThisYear } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nclass NoteListScreen extends Component {\n state = {\n reload: false,\n copyModal: false,\n text: 'test...',\n }\n\n componentDidMount = async () => {\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n const { mcid, key } = this.props.auth_feedback;\n await this.props.getUserDetails( mcid, key, deviceData(this.props.location, 'navigate') );\n return this.props.updateHeaderInfo({\n route:\"/myNotes\", \n name: \"Note List\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => { \n if (this.state.reload) {\n this.setState({ ...this.state, reload: false});\n }\n }\n\n handleOpen = () => {\n this.setState({\n ...this.state,\n copyModal: true,\n });\n };\n\n handleClose = () => {\n this.setState({\n ...this.state,\n copyModal: false,\n });\n };\n\n handleSubmit = async (obj) => {\n let data = {\n mcid: obj.mcid,\n key: obj.key\n }\n\n if (typeof obj.yearvar !== 'undefined') {\n data.yearvar = obj.yearvar;\n data.gameMode = this.props.gameMode;\n } else if (typeof obj.deckID !== 'undefined') { \n data.deckID = obj.deckID;\n }\n\n switch(obj.type) {\n case 'note': {\n data.noteID = obj.noteID;\n data.state = obj.state;\n data.comment = obj.comment;\n // console.log('\\nSTARTING ... \\nnote \\nobj: ', obj, '\\nprops: ', this.props, '\\ndata: ', data);\n await this.props.addNote(data);\n return this.props.getUserDetails(obj.mcid, obj.key);\n }\n\n default: {\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n return null;\n }\n }\n }\n\n setColorObj = (type = 'base') => {\n let r;\n\n switch (type) {\n default: {\n r = {\n deck: \"neutralGreenCard\",\n text: \"neutralGreenText\",\n button: \"neutralGreenCard\"\n }\n }\n }\n return r;\n }\n\n cleanText = (text) => {\n let r = '
' + text + '
';\n r = r.replace(/\\n/g, '
');\n r = r.replace(/\\r/g, '
');\n r = r.replace(/<\\/p>
<\\/p>
/g, '
');\n r = r.replace(/\\t/g, '');\n return r;\n }\n\n createMarkup = props => {\n let temp = props;\n if (!props.includes('
')) { temp = this.cleanText(temp); }\n return { __html: temp };\n };\n\n mapMyNotes = () => {\n // console.log('notes: ', this.props.user_details.notes.notes);\n const notes = this.props.user_details.notes.notes;\n\n if (typeof notes !== 'undefined' && notes.length > 0) {\n return notes.map((row, index) => {\n return (\n <>\n \n \n {isMobileOnly \n ? (<>{row.qYear + 'Q' + row.qNumber}>)\n : (<>{row.qYear + ' Question ' + row.qNumber}>)\n }\n \n \n\n \n {row.dateStr}\n \n \n \n this.handleSubmit({\n noteID:row.noteID,\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n state: 0,\n comment: row.comment,\n type: 'note'\n })}\n />\n \n \n\n \n \n
\n \n \n >\n )\n });\n } else {\n return (\n \n \n \n No Notes\n
\n \n \n );\n }\n };\n\n setContainer = (bool) => {\n return { padding: \"0 16px 32px\", margin: \"calc(env(safe-area-inset-top) + 56px) 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 0px)\", overflowY: \"auto\", backgroundColor: \"white\" };\n\n if (bool) {\n if (isBrowser && !isElectron) {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n } else {\n return { padding: \"16px 32px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n }\n \n } else {\n if (isBrowser && !isElectron) {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n } else {\n return { padding: \"16px 32px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\" };\n }\n }\n }\n\n render() {\n return (\n <>\n
\n
My Notes \n\n
\n
\n \n \n {this.mapMyNotes()}\n \n
\n \n
\n\n
\n
\n\n
\n \n
\n
\n
You have copied {this.state.text} .
\n
You can find the deck on your decks page.
\n
\n
\n
\n \n >\n );\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n deckList,\n auth_feedback,\n user_details\n };\n};\n\nexport default connect(mapStateToProps, \n { \n updateHeaderInfo, getDecks, copyDeck, getUserDetails, addNote\n })(withRouter(NoteListScreen));","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n addQuestionToDeck,\n createDeck,\n fetchAvailableQuestions,\n updateHeaderInfo,\n getAllQuestions,\n getQuestionResults,\n editDeck,\n getPublicDecks, \n copyDeck,\n subscribeDeck\n} from \"../actions\";\nimport { ViewDeckForm, ChooseQuestionsForm } from \"../components\";\nimport { withRouter } from 'react-router-dom';\n\n//make state = initial_state\nclass ViewDeckScreen extends Component {\n state = {\n creationStage: 0,\n deckName: \"\",\n deckSummary: \"\",\n areas: \"\",\n years: \"\",\n questions: \"\",\n quetionArr: [],\n keywords: [],\n yearObj: [],\n areaObj: [],\n questionObj: [],\n keywordsObj: [],\n ready: false,\n openBook: false,\n isHome: false,\n isPublic: false,\n isSpaced: false,\n questionCount: 0,\n };\n\n componentDidMount = async () => {\n // this.props.scrollTop();\n //TODO refactor years and set both to true\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n let newYearObj = [];\n let newAreaObj = [];\n let newKeywordsObj = [];\n this.props.user_details.SASPYears.map(year => {\n if (year.useravailable === 1) {\n newYearObj = { ...newYearObj, [year.ProductYear]: false };\n }\n });\n\n this.props.user_details.availableAreas.map(area => {\n newAreaObj = { ...newAreaObj, [area.QArea]: false };\n });\n\n this.props.user_details.availableKeywords.map(keyword => {\n newKeywordsObj = { ...newKeywordsObj, [keyword.keyword]: false };\n });\n\n this.setState({\n ...this.state,\n yearObj: newYearObj,\n areaObj: newAreaObj,\n keywordsObj: newKeywordsObj\n });\n let obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n gamemode: this.props.location.gameMode,\n deckID: this.props.location.deckID\n };\n this.props.getQuestionResults(obj);\n\n // return this.props.updateHeaderInfo({route:\"/editDeckScreen\"});\n return this.props.updateHeaderInfo({route:\"/viewDeck\", iconOne: 'back', name: \"View Deck\"});\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.copyDeckInfo !== this.props.copyDeckInfo) {\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n this.props.history.push('/myDecks');\n // console.log('\\nUPDATED props.copyDeckInfo: \\n', this.props.copyDeckInfo);\n // this.props.history.push({\n // pathname: '/editDeckScreen',\n // state: { \n // deckID: this.props.copyDeckInfo.NewDeckID,\n // gamemode: this.props.location.gameMode, \n // },\n // deckID: this.props.copyDeckInfo.NewDeckID,\n // gamemode: this.props.location.gameMode,\n // })\n }\n\n if (prevProps.get_question_results !== this.props.get_question_results) {\n // console.log('props: ', this.props.get_question_results);\n let tQuestion = this.props.publicDecks.find(item => item.deckID === this.props.location.deckID);\n if (typeof tQuestion === 'array') {\n tQuestion = tQuestion[0];\n }\n let newQuestionObj = [];\n let res = this.props.get_question_results.questions;\n if (res.length) {\n newQuestionObj = {};\n for (const i in res) {\n // console.log(\"res[\" + i + \"].QuestionID: \", res[i].QuestionID);\n newQuestionObj[res[i].QuestionID] = (res[i].isActiveQuestion === \"1\" ? true : false);\n }\n }\n \n this.setState({\n ...this.state,\n deckName: tQuestion.deckname,\n deckSummary: (typeof tQuestion.DeckSummary === 'undefined' ? '' : tQuestion.DeckSummary),\n isHome: (tQuestion.isHome === '1' ? true : false),\n isPublic: (tQuestion.isPublic === '1' ? true : false),\n isSpaced: (tQuestion.isspaced === '1' ? true : false),\n openBook: (Number(tQuestion.gameMode) === 3 ? true : false),\n questionCount: res.filter(item => item.isActiveQuestion === '1').length,\n questionArr: res,\n questionObj: newQuestionObj,\n ready: true\n });\n }\n };\n\n render() {\n const INITIAL_STATE = {\n creationStage: 0,\n keywords: \"\",\n deckName: \"\",\n deckSummary: \"\",\n areas: \"\",\n years: \"\",\n yearObj: [],\n areaObj: [],\n keywordsObj: [],\n questionObj: [],\n ready: false,\n };\n\n const nextStage = () => {\n this.setState({\n ...this.state,\n creationStage: this.state.creationStage + 1\n });\n };\n\n const setProp = (key, value) => {\n if (key === 'questionObj') {\n let temp = 0;\n for (let [tkey, tval] of Object.entries(value)) {\n if (tval) { temp++; }\n }\n this.setState({\n ...this.state,\n [key]: value,\n questionCount: temp\n });\n } else {\n this.setState({\n ...this.state,\n [key]: value\n });\n }\n }\n\n const getQuestionCount = async (obj) => {\n obj.myYears = makeList(obj.myYears);\n obj.myAreas = makeList(obj.myAreas);\n await this.props.getAllQuestions(obj);\n this.setState({\n ...this.state,\n questionCount: this.props.get_question_count.questionCount\n });\n\n return this.props.get_question_count.questionCount;\n }\n\n const getQuestionResults = async (obj) => {\n this.props.getQuestionResults(obj);\n }\n\n const sendQuestions = (years, areas, keywords, name, summary = '') => {\n let actualYears = \"\";\n let actualAreas = \"\";\n let actualKeywords = \"\";\n Object.keys(years).forEach((year, index) => {\n if (years[year] === true) {\n if (index === Object.keys(years).length - 1) {\n actualYears +=year.toString();\n } else {\n actualYears +=year.toString() + \",\";\n }\n }\n });\n \n Object.keys(areas).forEach((area, index) => {\n if (areas[area] === true) {\n if (index === Object.keys(areas).length - 1) {\n actualAreas += area.toString();\n } else {\n actualAreas += area.toString() + \",\";\n }\n }\n });\n\n Object.keys(keywords).forEach((keyword, index) => {\n if (keywords[keyword] === true) {\n if (index === Object.keys(keywords).length - 1) {\n actualKeywords +=keyword.toString();\n } else {\n actualKeywords +=keyword.toString() + \",\";\n }\n }\n });\n\n this.setState({\n ...this.state,\n years: actualYears,\n areas: actualAreas,\n keywords: actualKeywords,\n deckName: name,\n deckSummary: summary,\n creationStage: 1,\n });\n };\n\n const goBack = async () => {\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n this.props.history.push('/myDecks');\n };\n\n const goHome = async () => {\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n this.props.history.push('/home');\n }\n\n const createDeck = async questions => {\n // console.log('\\n\\n>>>>> state: ', this.state);\n //TODO refactor to make more efficient.\n //TODO alter createDeckData later to make fully customizable\n let createDeckData = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n deckName: this.state.deckName,\n deckPriority: 999,\n deckSummary: this.state.deckSummary,\n isHome: this.state.isHome,\n isSpaced: this.state.isSpaced,\n ispublic: this.state.isPublic,\n gameMode: this.state.openBook === true ? 3 : 4\n };\n\n const addQuestions = async questions => {\n let actualQuestions = \"\";\n Object.keys(questions).forEach((question, index) => {\n if (questions[question] === true) {\n if (index === Object.keys(questions).length - 1) {\n actualQuestions += question.toString();\n } else {\n actualQuestions += question.toString() + \",\";\n }\n } else {\n if (index === Object.keys(questions).length - 1) {\n actualQuestions += question.toString();\n } else {\n actualQuestions += question.toString() + \",\";\n }\n }\n });\n\n this.setState({\n questions: actualQuestions\n });\n };\n await this.props.createDeck(createDeckData);\n return addQuestions(questions);\n };\n\n const makeList = (arrs) => {\n let r = '';\n let c = 0;\n for (const index in arrs) {\n if (arrs[index]) {\n if (c > 0) {\n r += ',';\n }\n\n r += index;\n c++;\n }\n }\n return r;\n }\n\n const gapFunc = async (data) => { \n let obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n deckID: this.props.location.deckID,\n }\n\n if (data.copy) {\n await this.props.copyDeck(obj);\n } else if (this.props.deckList.find(item => item.deckID === obj.deckID)) {\n // console.log('\\nunsubscribe deckID: ', obj.deckID);\n obj.isActive = 0;\n // await this.props.editDeck(obj);\n } else {\n // console.log('\\nsubscribe deckID: ', obj.deckID);\n // await this.props.subscribeDeck(obj);\n }\n\n // console.log('data: ', data);\n // console.log('obj: ', obj);\n }\n\n const getAreaText = () => {\n let str = \"\";\n let arr = this.props.get_question_results.areavar.split(',');\n let cnt = 0;\n for (let i of arr) {\n let t = this.props.user_details.availableAreas.find(item => item.QArea === i);\n if (cnt) { str += ', '; } \n str += t.AreaDescription + \" (\" + i + ')';\n cnt++;\n }\n\n if (str === '') { str = \"None\"; }\n return str;\n }\n\n const getYearText = () => {\n let str = this.props.get_question_results.yearvar;\n let arr = str.split(',');\n\n if (Number(arr[0]) < Number(arr[arr.length - 1])) {\n let t = arr.reverse();\n str = \"\";\n let cnt = 0;\n \n for (let i of t) {\n if (cnt > 0) { str += ', '; } else { cnt++; }\n str += i.trim();\n }\n }\n\n return str;\n }\n\n const resetForm = () => {\n this.setState({\n INITIAL_STATE\n });\n };\n\n const returnFormStage = () => {\n switch (this.state.creationStage) {\n case 1:\n return (\n
\n );\n\n default:\n //TODO refactor to prevent unnecessary rerenders\n if (this.state.ready) {\n // console.log('\\nREADY... \\nprops: \\n', this.props);\n return (\n <>\n
\n >\n );\n } else {\n //TODO add skeleton loader\n return
\n
Loading... \n ;\n }\n }\n };\n\n return returnFormStage();\n }\n}\n\nconst mapStateToProps = state => {\n const { user_details, auth_feedback } = state.auth;\n const { newDeckInfo, publicDecks, copyDeckInfo } = state.decks;\n const { available_questions, get_question_count, question, get_question_results } = state.question;\n const { helperIcons } = state.device;\n return { \n user_details, \n auth_feedback, \n available_questions, \n newDeckInfo, \n get_question_count,\n question, \n get_question_results,\n publicDecks,\n copyDeckInfo,\n helperIcons\n };\n};\n\nexport default connect(mapStateToProps, {\n fetchAvailableQuestions,\n createDeck,\n addQuestionToDeck,\n updateHeaderInfo,\n getAllQuestions,\n getQuestionResults,\n editDeck,\n getPublicDecks, \n copyDeck,\n subscribeDeck\n})(withRouter(ViewDeckScreen));\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Link, Redirect } from \"react-router-dom\";\nimport { Divider, Typography } from \"@material-ui/core\";\nimport {\n getUserDetails,\n updateHeaderInfo,\n copyDeck,\n editDeck,\n subscribeDeck,\n updateNotification,\n updateUserProfile\n} from \"../actions\";\nimport { withRouter } from 'react-router-dom';\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\nimport AddIcon from '@material-ui/icons/Add';\nimport CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { LoadingCard, CopyrightWidget, SaspButton } from \"../components\";\nimport { deviceData, getThisYear, remoteURL, setContainer } from \"../common\";\nimport { isElectron } from \"react-device-detect\";\n\n//make state = initial_state\nclass ViewDeckScreen extends Component {\n state = {\n loading: true,\n preloading: true\n };\n\n componentDidMount = async () => {\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n const { mcid, key } = this.props.auth_feedback;\n await this.props.getUserDetails(mcid, key);\n this.setState({ ...this.state, preloading: false })\n\n const item = this.props.user_details.notifications.notifications.find(i => i.pkid == this.props.location.pkid);\n \n return this.props.updateHeaderInfo({route:\"/viewMessage\", iconOne: 'back', name: \"Message Details\"});\n }\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.user_details !== this.props.user_details) {\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n this.setState({ ...this.state, loading: false});\n }\n\n if (prevState.preloading !== this.state.preloading) {\n if (this.state.loading) { \n if (typeof this.props.user_details.notifications !== 'undefined') {\n this.setState({ ...this.state, loading: false });\n } else {\n }\n }\n }\n };\n\n handleSendAccess = async (data) => {\n if (typeof data.bool === 'undefined') {\n data.bool = 1;\n }\n\n const obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n allowShare: this.props.user_details.allowshare,\n allowSearch: this.props.user_details.allowsearch,\n allowLeaderboard: this.props.user_details.allowleaderboard,\n isDaily: this.props.user_details.isDaily,\n displayName: this.props.user_details.displayname,\n yst: this.props.user_details.yst,\n tl: this.props.user_details.tl,\n isDaily: this.props.user_details.isDaily,\n allowProgram: data.bool ? 1 : 0,\n isResident: this.props.user_details.isResident,\n pkid: data.item.pkid ? data.item.pkid : 0,\n }\n\n await this.props.updateUserProfile(obj);\n\n let target = {\n pathname: '/home'\n }\n \n return
\n }\n\n createMarkup = props => {\n if (!props.includes('
')) { props = '
' + props + '
'}\n return { __html: props };\n };\n\n updateDeck = async (data) => {\n this.setState({ ...this.state, loading: true});\n let notif = {\n mcid : data.mcid,\n key : data.key,\n state : data.state,\n pkid : data.pkid\n };\n\n let obj = {\n mcid : data.mcid,\n key : data.key,\n deckID : data.deckId\n };\n\n await this.props.updateNotification(notif);\n switch(data.type) {\n case 'copy': {\n await this.props.copyDeck(obj);\n await this.props.getUserDetails(obj.mcid, obj.key);\n this.props.history.push('/myDecks');\n break;\n }\n case 'subscribe': {\n await this.props.subscribeDeck(obj);\n await this.props.getUserDetails(obj.mcid, obj.key);\n this.props.history.push('/myDecks');\n break;\n }\n\n case 'activate': {\n obj.isActive = 1;\n await this.props.editDeck(obj);\n await this.props.getUserDetails(obj.mcid, obj.key);\n this.props.history.push('/myDecks');\n break;\n }\n\n default: {\n await this.props.getUserDetails(obj.mcid, obj.key);\n this.props.history.push('/notifications');\n break;\n }\n }\n }\n\n render = () => {\n if (!this.state.loading) {\n const item = this.props.user_details.notifications.notifications.find(i => i.pkid == this.props.location.pkid)\n \n if (typeof item !== 'undefined') {\n let uri = `https://auau.auanet.org/node/${item.notificationDetail}`;\n return (\n
\n
Message \n\n
\n
\n
\n this.updateDeck({\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckId: item.notificationDetail,\n pkid: item.pkid,\n state: 0,\n type: 'delete'\n })}\n className=\"text-orange\"\n style={{ \n fontSize: '1.5em',\n justifyContent: \"flex-end\",\n marginTop: \"2px\"\n }}\n />\n
\n
\n
\n\n
\n
\n
\n
From:
\n
{item.datestr}
\n
\n
{item.from}
\n\n {item.notificationType.includes('COMPLETED')\n ? (\n
\n
You have answered 100% of the {item.year} SASP questions, scoring at least 50% correct, and are now eligible for up to 20 hours of CME credit.
\n\n
\n Log in to the AUA University remoteURL('https://auau.auanet.org/')}>https://auau.auanet.org/ .\n
\n
\n Click on the My Activities tab. \n Click on remoteURL(uri)}>{item.year} SASP Credit Claim located under Pending Activities. \n Click on Take Course. \n Complete the Course Evaluation and Credit Claim. \n To purchase other SASP years, please visit remoteURL('https://auanet.org/SASP')}>AUAnet.org/SASP. \n \n
\n ) : (\n
\n )\n }\n\n
\n
Thank you for participating in the SASP!
\n
\n
\n
\n\n {item.notificationType == 'DECK' || item.notificationType == 'MESSAGE'\n ? (\n <>\n
\n
\n
\n
\n {item.notificationState == 1 && item.notificationType == 'DECK'\n ? (\n <>\n
this.updateDeck({\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckId: item.notificationDetail,\n pkid: item.pkid,\n state: 2,\n type: 'subscribe'\n })}\n >\n
\n \n
\n
Subscribe
\n
\n\n
this.updateDeck({\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckId: item.notificationDetail,\n pkid: item.pkid,\n state: 2,\n type: 'copy'\n })}\n >\n
\n \n {item.notificationType == 'DECK'\n ? (
)\n : (
)\n }\n
\n
\n {item.notificationType == 'DECK'\n ? (<>Copy>)\n : (<>Activate>)\n }\n
\n
\n >\n )\n : (\n
this.updateDeck({\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckId: item.notificationDetail,\n pkid: item.pkid,\n state: 2,\n type: 'activate'\n })}\n >\n
\n \n {item.notificationType == 'DECK'\n ? (
)\n : (
)\n }\n
\n
\n {item.notificationType == 'DECK'\n ? (<>Copy>)\n : (<>Activate>)\n }\n
\n
\n )\n }\n
\n
\n
\n >\n )\n : null\n }\n\n {item.notificationType == 'ACCESSREQUEST'\n ? (\n <>\n
\n\n
\n
\n
\n
this.handleSendAccess({bool: 0, item: item})}\n >\n
\n \n
\n
\n No\n
\n
\n\n
this.handleSendAccess({bool: 1, item: item})}\n >\n
\n
\n Yes\n
\n
\n
\n
\n
\n >\n ) : null\n }\n\n
\n
\n )\n } else {\n return (\n
\n
\n
\n
No notification found.
\n
\n Return to Inbox\n \n \n
\n\n
\n
\n )\n }\n } else {\n return (
)\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { user_details, auth_feedback } = state.auth;\n const { newDeckInfo, publicDecks, copyDeckInfo } = state.decks;\n const { available_questions, get_question_count, question, get_question_results } = state.question;\n return { \n user_details, \n auth_feedback, \n available_questions, \n newDeckInfo, \n get_question_count,\n question, \n get_question_results,\n publicDecks,\n copyDeckInfo\n };\n};\n\nexport default connect(mapStateToProps, {\n getUserDetails,\n updateHeaderInfo,\n copyDeck,\n editDeck,\n subscribeDeck,\n updateNotification,\n updateUserProfile\n})(withRouter(ViewDeckScreen));\n","import { Divider, Typography, Grid } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { updateHeaderInfo, getPublicDecks, copyDeck, subscribeDeck, getUserDetails } from \"../actions\";\nimport { PublicDeckCard } from \"../components\";\nimport { Link } from \"react-router-dom\";\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport FileCopyIcon from '@material-ui/icons/FileCopy';\nimport CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport { LoadingCard, CopyrightWidget } from \"../components\";\nimport { deviceData, setContainer, getThisYear } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nclass PiblicDeckList extends Component { \n state = {\n loading: true,\n publicDecks: this.props.publicDecks\n }\n\n componentDidMount = async () => {\n window.scrollTo(0,0);\n\n const { mcid, key } = this.props.auth_feedback;\n this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'))\n\n await this.props.getPublicDecks({ \n mcid: mcid, \n key: key\n });\n\n await this.setState({ ...this.state, publicDecks: this.props.publicDecks })\n\n return this.props.updateHeaderInfo({\n route:\"/publicDecks\", \n name: \"Public Decks\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.publicDecks !== this.props.publicDecks) {\n this.setState({ ...this.state, publicDecks: this.props.publicDecks });\n }\n\n if (prevState.publicDecks !== this.state.publicDecks) {\n this.setState({ ...this.state, loading: false })\n }\n }\n\n addDeck = async (id) => {\n // console.log('\\nPublicDecksScreen... \\ndeckID: ', id);\n let obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckID: id\n }\n\n // console.log('add deck obj: \\n', obj);\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n await this.props.copyDeck(obj);\n this.props.history.push('/myDecks');\n }\n\n subscribeDeck = async (id) => {\n let obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckID: id\n }\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n await this.props.subscribeDeck(obj);\n this.props.history.push('/myDecks');\n }\n\n mapPublicDeckCards = () => {\n const publicDecks = this.props.publicDecks;\n\n if (typeof publicDecks !== 'undefined' && publicDecks.length > 0) { \n return publicDecks.map((deck, index) => {\n return (\n
\n );\n });\n } else {\n return (\n
\n );\n }\n };\n\n mapPublicDeckRows = () => {\n const publicDecks = this.props.publicDecks;\n if (typeof publicDecks !== 'undefined' && publicDecks.length > 0) { \n return publicDecks.map((row, index) => {\n return (\n
\n \n \n {row.deckname}\n \n \n {row.totalQuestions} \n {/* {(row.isSpaced ? 'Yes' : 'No')} */}\n {/* {(row.isOpen ? 'Yes' : 'No')} */}\n \n this.subscribeDeck(row.deckID)} className=\"text-blue\">\n \n \n \n \n this.addDeck(row.deckID)} className=\"text-blue\">\n \n \n \n \n );\n });\n } else {\n return (\n
\n No Public Decks Available \n \n );\n }\n }\n\n render() {\n if (this.state.loading) {\n return
\n } else {\n return (\n <>\n
\n
Public Decks \n \n\n
\n
\n \n \n \n \n Deck Name \n Questions \n {/* Spaced */}\n {/* Open */}\n Subscribe \n Copy \n \n \n \n {this.mapPublicDeckRows(this.props)}\n \n
\n \n \n
\n \n
\n
\n\n\n >\n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { publicDecks } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n publicDecks,\n auth_feedback,\n user_details\n };\n};\n\nconst PublicDecksScreen = connect(mapStateToProps, { \n updateHeaderInfo, getPublicDecks, copyDeck, subscribeDeck, getUserDetails }\n)(\n withRouter(PiblicDeckList)\n);\n\nexport { PublicDecksScreen };\n","import React from \"react\";\nimport { withRouter, Link } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Button, Card, CardActions, CardHeader, IconButton, Slide } from \"@material-ui/core\";\nimport { masterHandleClose, remoteURL } from \"../common\";\nimport \"../styles/masterStyles.css\";\n\nconst MessageBanner = props => { \n let classes = 'aua-top-banner anchor active index100';\n\n if (typeof props.data === 'object' && props.data !== null) {\n return (\n
\n \n {\n if (typeof props.data.messageday !== 'undefined') {\n masterHandleClose('MessageBanner', 'active', 'inactive', 'sasp-messageday-id', props.data.messageday);\n }\n return masterHandleClose('MessageBanner', 'active', 'inactive', 'sasp-messageid', props.data.messageid);\n }}\n style={{backgroundColor: '#00567a', transform:\"scale(0.5)\"}}\n >\n \n \n }\n />\n\n {typeof props.data.uri !== 'undefined'\n ? (\n \n {\n masterHandleClose('MessageBanner', 'active', 'inactive', 'sasp-messageid', props.data.messageid)\n\n if (typeof props.data.uri !== 'undefined') {\n return remoteURL(props.data.uri)\n } \n \n return null;\n }}\n >\n \n {props.data.actiontext ? props.data.actiontext : 'Learn More' } \n \n \n \n ) : null\n }\n \n \n );\n } else {\n return null;\n }\n};\n\nconst mapStateToProps = state => {\n const { auth, user_details } = state.auth;\n return { auth, user_details };\n};\n\nconst MessageBannerCard = connect(mapStateToProps)(withRouter(MessageBanner));\n\nexport { MessageBannerCard }\n","import { Divider, Typography, Modal, Fab } from \"@material-ui/core\";\nimport React, { Component, useState } from \"react\";\nimport Skeleton from \"react-loading-skeleton\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { \n getDecks, updateHeaderInfo, confirmCME, \n getUserDetails, getDailyQuestion, updateRating,\n getFlashCards, getPremadeDecks, getSASPResidencyProgram\n} from \"../actions\";\nimport { deviceData, scrollTop, APPVERSION, getThisYear, checkDailyEpoch, remoteURL,createMarkup, testerArr, hasLegal } from \"../common\";\nimport { \n HomeDeckCard, TestTableCard, TestTabletTableCard, \n LoadingCard, DailyBannerCard, VersionBannerCard, \n SaspButton, CopyrightWidget, HomeUserInfo, AILegalStatementCard\n} from \"../components\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport { \n isMobileOnly, isTablet, isElectron, deviceDetect, \n deviceType, isBrowser, isIOS, isAndroid \n} from 'react-device-detect';\n\nimport AddIcon from \"@material-ui/icons/Add\";\n\nimport { MessageBannerCard } from \"../components/MessageBannerCard\";\n\nclass Home extends Component {\n state = {\n cmeYears: [],\n cmeShow: false,\n debug: true,\n cmeTitle: '',\n cmeBody: '',\n cmeProgram: '',\n cmeConfirmed: 0,\n loading: true,\n tracking: null,\n isDaily: 0,\n newVersion: 0,\n hv: 0,\n message: null,\n homeDecks: [],\n premade: [],\n showPre: false,\n _reporting: {\n total: {\n title: \"Rank (total)\",\n data: [],\n rank: 'N/A'\n },\n weekly: {\n title: \"Rank (this week)\",\n data: [],\n rank: 'N/A'\n },\n monthly: {\n title: \"Rank (this month)\",\n data: [],\n rank: 'N/A'\n }\n }\n };\n\n handleOpen = () => {\n this.setState({...this.state, cmeShow: true});\n };\n\n handleClose = () => {\n this.setState({...this.state, cmeShow: false});\n };\n\n componentDidMount = async () => {\n scrollTop('homeDIV', 0);\n\n\n let hv = 0;\n let nv = 0;\n let msg = null\n let isday = this.props.isDaily;\n const { mcid, key } = this.props.auth_feedback;\n\n if (this.props.premade.length === 0) {\n this.props.getPremadeDecks({\n mcid: mcid,\n key: key\n })\n }\n\n const __ls = localStorage.getItem('sasp-hideVersion');\n const __msgid = localStorage.getItem('sasp-messageid') !== null ? localStorage.getItem('sasp-messageid') : 0;\n const __dayid = localStorage.getItem('sasp-messageday-id') !== null ? localStorage.getItem('sasp-messageday-id') : 0;\n\n if (typeof __ls !== 'undefined' && __ls !== null) {\n hv = Number(localStorage.getItem('sasp-hideVersion'));\n } else {\n localStorage.setItem('sasp-hideVersion', 1);\n }\n\n if (APPVERSION > '1.11.17' && (1 === 1 || testerArr.includes(this.props.auth_feedback.mcid))) {\n if (\n (checkDailyEpoch('sasp-ratingEpoch', 1)) && \n (isIOS || isAndroid)\n ) {\n if (typeof this.props.user_details.appRated !== 'undefined') {\n if (!this.props.user_details.appRated) {\n window.cordova.plugins.AppReview.requestReview().then(function () {\n let ratingtracking = deviceData(this.props.location, 'rate app');\n\n this.props.updateRating({\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n tracking: ratingtracking\n });\n }).catch(function() {\n this.props.updateRating({\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n });\n\n return window.cordova.plugins.AppReview.openStoreScreen();\n });\n }\n } else {\n }\n } else {\n } \n }\n\n await this.props.updateHeaderInfo({route:\"/home\", iconOne: 'profile'});\n await this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n await this.props.getDecks({ mcid: mcid, key: key });\n await this.props.getFlashCards({ mcid: mcid, key: key });\n\n if (typeof this.props.user_details.appversion !== 'undefined' && !hv) {\n if (isIOS) {\n if (\n (this.props.user_details.appversion.ios !== APPVERSION && APPVERSION < this.props.user_details.appversion.ios)\n ) {\n nv = 1;\n }\n } else if (isAndroid) {\n if (this.props.user_details.appversion.android !== APPVERSION && APPVERSION < this.props.user_details.appversion.android) {\n nv = 1;\n }\n } else if (isElectron) {\n nv = 1;\n }\n }\n\n if (typeof this.props.user_details.message === 'object') {\n if (typeof this.props.user_details.message.messageid !== 'undefined') {\n if (typeof this.props.user_details.message.messageday !== 'undefined' && typeof this.props.user_details.message.year !== 'undefined') {\n if (__dayid < this.props.user_details.message.messageday) {\n msg = this.props.user_details.message;\n }\n } else if (this.props.user_details.message.messageid > __msgid) {\n localStorage.setItem('sasp-messageid', this.props.user_details.message.messageid)\n msg = this.props.user_details.message;\n hv = 0;\n nv= 0;\n isday = 0;\n }\n }\n }\n\n if (!this.props.isDaily) {\n await this.props.getDailyQuestion({\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key\n });\n }\n\n const homeDecks = this.props.deckList.filter((item) => {\n return (item.isHome === 1 && item.totalQuestions > 0) \n });\n\n let _state = { \n ...this.state, \n newVersion: nv, \n hv: hv, \n isDaily: isday, \n message: msg,\n tracking: deviceData(this.props.location, 'navigate'),\n homeDecks: homeDecks,\n premade: this.props.premade.length ? this.props.premade : []\n };\n\n return this.setState(_state)\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.user_details.cmeYears != this.props.user_details.cmeYears) {\n this.setState({ ...this.state, cmeYears: this.props.user_details.cmeYears });\n }\n\n if (prevProps.deckList !== this.props.deckList) {\n const homeDecks = this.props.deckList.filter((item) => {\n return (item.isHome === 1 && item.totalQuestions > 0) \n });\n\n return this.setState({\n ...this.state,\n homeDecks: homeDecks\n })\n }\n\n if (prevProps.user_details != this.props.user_details) {\n if (typeof this.props.user_details.message === 'object') {\n if (typeof this.props.user_details.message.messageid !== 'undefined') {\n const __msgid = localStorage.getItem('sasp-messageid') !== null ? localStorage.getItem('sasp-messageid') : 0;\n\n if (this.props.user_details.message.messageid > __msgid) {\n localStorage.setItem('sasp-messageid', this.props.user_details.message.messageid)\n\n await this.setState({\n ...this.state,\n message: this.props.user_details.message,\n newVersion: 0,\n isDaily: 0,\n hv: 0,\n loading: false,\n }) \n }\n }\n }\n\n return this.props.getDailyQuestion({\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key\n });\n }\n\n if (prevProps.isDaily != this.props.isDaily) {\n return this.setState({ ...this.state, isDaily: this.props.isDaily})\n }\n\n if ( prevState.cmeYears != this.state.cmeYears ) {\n await this.checkCME();\n this.setState({ ...this.state, loading: false });\n }\n\n if (prevState.cmeProgram != this.state.cmeProgram) {\n this.handleOpen();\n }\n\n if (prevProps.premade !== this.props.premade) {\n return this.setState({\n ...this.state,\n premade: this.props.premade\n })\n }\n\n if (prevState.premade !== this.state.premade) {\n return this.setState({\n ...this.state,\n showPre: true\n })\n }\n\n }\n\n checkCME = async () => {\n if (typeof this.state.cmeYears !== 'undefined') {\n let arr = this.state.cmeYears.slice();\n for (let i = 0; i < arr.length; i++) {\n let condition = true;\n if (Number(arr[i].confirmed) > 0 ) { condition = false }\n \n if ( condition ) {\n let temp = '
There was an error.
Please try again later.
';\n if (typeof arr[i].CMEContent !== 'undefined') {\n temp = arr[i].CMEContent;\n }\n\n await this.setState({ ...this.state, cmeTitle: \"Confirm CME\", cmeProgram: arr[i].programID, cmeBody: temp });\n\n this.handleOpen();\n break;\n }\n }\n }\n }\n\n mapPremadeDecks = () => {\n const path = './static/media/icons/';\n const premade = this.props.premade.filter((item) => {\n return (item.totalQuestions > 0) \n });\n\n if (typeof premade !== 'undefined' && premade.length > 0) {\n return premade.map((deck, index) => {\n let _img = index % 50;\n let _path = path + _img + '.png';\n\n let obj = {\n deckID: deck.deckID,\n gameMode: 7,\n gamemode: 7,\n deckname: deck.deckname,\n abbr: deck.abbr ? deck.abbr : 'TMP',\n subtext: deck.subtext ? deck.subtext : 'xyz questions'\n }\n\n let __uri = deck.flashcard ? \"/showFlashCard\" : \"/questionScreen\";\n let _obj = {\n pathname: __uri,\n gameMode: 7,\n gamemode: 7,\n deckID: deck.deckID,\n deckid: deck.deckID\n }\n\n return(\n
\n
\n
\n
{obj.abbr}
\n
{obj.subtext}
\n
\n
{obj.deckname}
\n
\n \n )\n })\n } else {\n return null\n }\n\n }\n\n mapDecksWidgets = () => {\n const decks = this.props.deckList.filter((item) => {\n return (item.totalQuestions > 0) \n });\n\n if (typeof decks !== 'undefined' && decks.length > 0) {\n return decks.map((deck, index) => {\n /* if (index === 1 || 1 === 1) {\n console.log(`\\ndeck index === 1 || 1 === 1: `, deck)\n } */\n\n\n let obj = {\n deckID: deck.deckID,\n gameMode: deck.gameMode,\n gamemode: deck.gamemode,\n deckname: deck.deckname,\n abbr: deck.abbr ? deck.abbr : 'TMP'\n }\n\n let __uri = deck.flashCards ? \"/showFlashCard\" : \"/questionScreen\";\n let _obj = {\n pathname: __uri,\n gameMode: deck.gameMode,\n gamemode: deck.gamemode,\n deckID: deck.deckID,\n deckid: deck.deckID\n }\n\n obj.abbr = `${deck.totalQuestions} questions`; \n\n return(\n
\n
\n
\n {obj.gameMode === 3\n ? (\n
Open Book
\n ) : (\n
Closed Book
\n )\n }\n\n
{obj.abbr}
\n
\n
{obj.deckname}
\n
\n \n )\n })\n } else {\n return null\n }\n\n }\n\n mapYearWidgets = (_data, _gamemode) => {\n const { data, gamemode } = _data;\n\n // console.log(`data: `, data);\n\n if (typeof data.user_details === 'object' && typeof data.user_details.SASPYears !== 'undefined' && data.user_details !== '') {\n return data.user_details.SASPYears.map((year, index) => {\n let oPer = Number(year.openpercentage) ? Math.round(Number(year.openpercentage)) : 0;\n let cPer = Number(year.closedpercentage) ? Math.round(Number(year.closedpercentage)) : 0;\n\n if (oPer > 100) { oPer = 100; }\n else if (year.openpercentage > 0 && year.openpercentage < 1) {\n oPer = 1;\n }\n if (cPer > 100) { cPer = 100; }\n else if (year.closedpercentage > 0 && year.closedpercentage < 1) {\n cPer = 1;\n }\n /*TODO get what question we are on and determine if we are to resumse or restart*/\n const openText = ( oPer != 100 ) ? \"Resume\" : \"Details\";\n const closeText = ( cPer != 100 ) ? \"Resume\" : \"Details\";\n\n let obLink = {\n pathname : year.openpercentage < 100 ? '/questionScreen' : '/testResultScreen',\n testYear : year.ProductYear,\n gameMode : 1,\n }\n \n let cbLink = {\n pathname : year.closedpercentage < 100 ? '/questionScreen' : '/testResultScreen',\n testYear : year.ProductYear,\n gameMode : 2,\n }\n \n if (year.openpercentage >= 100) {\n obLink.deckID = 0;\n }\n \n if (year.closedpercentage >= 100) {\n cbLink.deckID = 0;\n }\n\n const obj = {\n abbr: year.ProductYear,\n deckname: gamemode === 1 ? openText : closeText,\n per: gamemode === 1 ? oPer : cPer\n }\n\n let _obj = gamemode === 1 ? obLink : cbLink;\n let optclass = gamemode === 1 ? 'openbook-icon' : 'closedbook-icon'\n\n // if (index === 1) {\n // obj.per = 0;\n // }\n\n if (obj.per === 100) {\n optclass += ' completed-icon';\n } else if (obj.per === 0) {\n optclass += ' unstarted';\n obj.deckname = 'Start'\n } \n\n if (year.useravailable == 1) { \n return (\n
{\n // console.log(`obj: `, obj);\n // console.log(`_obj: `, _obj);\n }}\n >\n
\n
\n
{obj.deckname}
\n
({obj.per}%)
\n
\n
{obj.abbr}
\n
\n \n );\n } else {\n let optClass2 = `aua-circle-widget-icon disabled anchor `;\n optClass2 += gamemode === 1 ? 'openbook-icon' : 'closedbook-icon'\n\n return (\n
{\n\n // console.log(`data: `, data)\n // console.log(`year: `, year)\n }}\n >\n
\n {/*
Access Denied
*/}\n
Purchase this year online.
\n
\n
{obj.abbr}
\n
\n );\n }\n });\n } else {\n return null\n }\n }\n\n mapHomeDeckCards = () => {\n let cnt = 0;\n const homeDecks = this.props.deckList.filter((item) => {\n return (item.isHome === 1 && item.totalQuestions > 0) \n });\n\n if (this.state.homeDecks.length === 0) {\n this.setState({\n ...this.state,\n homeDecks: homeDecks\n });\n }\n\n if ( (typeof homeDecks !== 'undefined' && homeDecks.length > 0) ) { \n return homeDecks.map((deck, index) => {\n let name =\n index === homeDecks.length - 1\n ? \"lastHomeDeckCardDiv\"\n : \"homeDeckCardDiv\";\n if (homeDecks.length === 0) {\n return (\n
\n \n
\n );\n }\n if (index === 0) {\n\n // if (!deck.totalQs) {\n // return null\n // } else {\n // cnt++;\n // }\n\n return (\n <>\n
\n \n
\n
\n \n
\n >\n );\n } else {\n // if (!deck.totalQs) {\n // return null\n // } else {\n // cnt++;\n // }\n\n return (\n
\n \n
\n );\n }\n });\n } else {\n return null;\n }\n };\n\n mapTableCards = props => {\n if (props.user_details != '') {\n return props.user_details.SASPYears.map(year => {\n let oPer = Number(year.openpercentage) ? Math.round(Number(year.openpercentage)) : 0;\n let cPer = Number(year.closedpercentage) ? Math.round(Number(year.closedpercentage)) : 0;\n\n if (oPer > 100) { oPer = 100; }\n else if (year.openpercentage > 0 && year.openpercentage < 1) {\n oPer = 1;\n }\n if (cPer > 100) { cPer = 100; }\n else if (year.closedpercentage > 0 && year.closedpercentage < 1) {\n cPer = 1;\n }\n /*TODO get what question we are on and determine if we are to resumse or restart*/\n const openText = ( oPer != 100 ) ? \"RESUME\" : \"DETAILS\";\n const closeText = ( cPer != 100 ) ? \"RESUME\" : \"DETAILS\";\n\n if (year.useravailable == 1) { \n return (\n
0 ? openText : \"BEGIN\"}\n closedProgress={cPer > 0 ? closeText : \"BEGIN\"}\n openpercentage={oPer}\n closedpercentage={cPer}\n />\n );\n } else {\n return (\n 0 ? openText : \"BEGIN\"}\n closedProgress={year.closedpercentage > 0 ? closeText : \"BEGIN\"}\n />\n );\n }\n });\n } else {\n {\n /*Clean and size this up correctly */\n }\n return (\n \n \n
\n );\n }\n };\n\n mapTabletTableCards = props => {\n if (props.user_details != '') {\n return props.user_details.SASPYears.map(year => {\n let oPer = Number(year.openpercentage) ? Math.round(Number(year.openpercentage)) : 0;\n let cPer = Number(year.closedpercentage) ? Math.round(Number(year.closedpercentage)) : 0;\n\n if (oPer > 100) { oPer = 100; }\n else if (year.openpercentage > 0 && year.openpercentage < 1) {\n oPer = 1;\n }\n if (cPer > 100) { cPer = 100; }\n else if (year.closedpercentage > 0 && year.closedpercentage < 1) {\n cPer = 1;\n }\n /*TODO get what question we are on and determine if we are to resumse or restart*/\n const openText = ( oPer != 100 ) ? \"RESUME\" : \"DETAILS\";\n const closeText = ( cPer != 100 ) ? \"RESUME\" : \"DETAILS\";\n\n if (year.useravailable == 1) { \n return (\n 0 ? openText : \"BEGIN\"}\n closedProgress={cPer > 0 ? closeText : \"BEGIN\"}\n openpercentage={oPer}\n closedpercentage={cPer}\n />\n );\n } else {\n return (\n 0 ? openText : \"BEGIN\"}\n closedProgress={year.closedpercentage > 0 ? closeText : \"BEGIN\"}\n />\n );\n }\n });\n } else {\n {\n /*Clean and size this up correctly */\n }\n return (\n \n \n
\n );\n }\n };\n\n createMarkup = props => {\n return { __html: props };\n };\n\n confirmCME = async () => {\n this.handleClose();\n await this.props.confirmCME({\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n programID: this.state.cmeProgram,\n tracking: this.state.tracking\n });\n\n let arr = this.state.cmeYears.slice();\n let i = arr.findIndex(item => item.programID === this.state.cmeProgram);\n\n arr[i].confirmed = 1;\n\n await this.setState({ ...this.state, cmeConfirmed: this.state.cmeConfirmed++, cmeYears: arr });\n };\n\n homeLink = (data) => {\n return null;\n return this.props.history.push(data);\n }\n\n mapModalBody = () => {\n let d = new Date();\n let _y = d.getFullYear();\n let _year = Number(20 + this.state.cmeProgram.replace('SASP', ''));\n return (\n \n
\n {this.state.cmeTitle}\n \n\n
\n\n {this.state.cmeProgram === 'SASP21'\n ? (\n
\n
\n \n
remoteURL('https://University.auanet.org/sasp/resources/education_council_disclosures_2021.pdf')} >\n
\n Education Council Disclosures\n \n View Disclosures\n \n\n
\n
\n\n
\n
remoteURL('https://University.auanet.org/sasp/resources/coi_review_disclosures_2021.pdf')} >\n
\n COI Review Work Group Disclosures\n \n View Disclosures\n \n\n
\n
\n\n
\n
remoteURL('https://University.auanet.org/sasp/resources/abu_exam_committee_2021.pdf')} >\n
\n ABU Examination Committee Disclosures\n \n View Disclosures\n \n\n
\n
\n
\n ) : null\n }\n\n {this.state.cmeProgram === 'SASP22'\n ? (\n
\n
\n \n
remoteURL('https://University.auanet.org/sasp/resources/2022_SASP_CME_Disclosures.pdf')} >\n
\n View Disclosures\n \n \n \n\n
\n
\n
\n ) : null\n }\n\n
\n \n Confirm SASP {_year}\n \n
\n\n {_year === _y\n ? (\n
\n )\n : (\n
\n )\n }\n
\n )\n }\n\n setBanner = () => {\n return (\n <>\n <>\n {this.state.isDaily && this.state.hv\n ? (\n \n ) : null\n }\n >\n <>\n {this.state.newVersion && !this.state.hv \n ? (\n \n ) : null\n }\n >\n >\n )\n }\n\n render() {\n if (!this.state.loading) {\n if ( isElectron || isMobileOnly || isTablet || isBrowser) {\n let testing = isElectron;\n let testClasses = \"homeTableTestContainer\";\n\n if (isTablet || !testing) { testClasses += ' margin-top-24 padding-top-8'; }\n\n return (\n \n {this.state.message !== null\n ? (\n
\n ) : (\n this.setBanner()\n )\n }\n\n
\n \n
\n
\n {/* */}\n\n \n
\n\n
\n
SASP Open Book Tests \n
\n
\n\n
\n {this.mapYearWidgets({ data: this.props, gamemode: 1 })}\n
\n\n {this.state.premade.length > 0 && this.state.showPre\n ? (\n <>\n
\n
Decks By Topic Area \n
\n
\n\n
{this.mapPremadeDecks()}
\n >\n ) : null\n }\n\n {1 === 1 || (this.props.user_details.mcid === '00863274' || this.props.user_details.mcid === '00809875')\n ? (\n <>\n {this.state.homeDecks.length > 0 \n ? (\n <>\n
\n\n
\n
\n
\n \n\n {this.mapDecksWidgets()}\n
\n >\n ) : null\n }\n\n \n\n
\n
SASP Closed Book Tests \n
\n
\n\n
\n {this.mapYearWidgets({ data: this.props, gamemode: 2 })}\n
\n\n
\n >\n ) \n : (\n <>\n {this.state.homeDecks.length > 0 \n ? (\n <>\n
\n\n
{this.mapHomeDeckCards()}
\n >\n ) : (\n
\n )\n }\n \n
\n
\n\n
\n { isMobileOnly || testing\n ? ( this.mapTableCards(this.props) )\n : ( this.mapTabletTableCards(this.props) )\n }\n
\n\n
\n
\n >\n )\n }\n\n
\n {this.mapModalBody()}\n \n
\n
\n )\n } else {\n return (\n \n )\n }\n } else {\n return (\n \n )\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details, cme_confirmations, isDaily, program } = state.auth;\n const { headerText, iconOne, iconTwo } = state.style;\n const { deckList, flashCards, premade } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n deckList,\n auth_feedback,\n user_details,\n cme_confirmations,\n isDaily,\n flashCards,\n premade,\n program\n };\n};\n\nconst HomeScreen = connect(mapStateToProps, { updateHeaderInfo, getDecks, confirmCME, getUserDetails, getDailyQuestion, updateRating, getFlashCards, getPremadeDecks, getSASPResidencyProgram })(\n Home\n);\n\nexport { HomeScreen };\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { updateHeaderInfo, getUserDetails, trackPage } from \"../actions\";\nimport { CopyrightWidget } from \"../components\";\nimport { APPVERSION, APPID } from \"../common\";\nimport { Divider, Typography } from \"@material-ui/core\";\nimport { deviceData, setContainer, APPYEAR } from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nclass Errors extends Component {\n state = {\n appversion: APPVERSION,\n appid: APPID,\n year: APPYEAR(),\n }\nx\n componentDidMount = async () => {\n console.log('\\nErrorScreen props: ', this.props);\n\n const {mcid, key} = this.props.auth_feedback;\n let tracking = deviceData(this.props.location, 'error');\n tracking.action = 'error'\n\n if (typeof this.props.location.prevLoc !== 'undefined') {\n tracking.detail = this.props.location.prevLoc.pathname;\n tracking.detailvar = 'pathname';\n }\n\n const _obj = {\n mcid: mcid,\n key: key,\n tracking: tracking\n }\n\n await this.props.trackPage(_obj)\n\n return this.props.updateHeaderInfo({\n route:\"/error\", \n name: \"SASP\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: \"#00567a\"\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n \n }\n\n render() {\n return (\n <>\n \n
Error \n
\n
\n
\n
\n
\n There has been an error within the app.\n
\n {this.props.location.message\n ?(
{this.props.message}
):null\n }\n
\n Please try again later.\n
\n
\n If you have any questions please contact the Office of Education at education@auanet.org .\n
\n
\n
\n
\n
\n \n
\n
\n >\n );\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { error } = state.question;\n\n return {\n auth_feedback,\n user_details,\n error\n };\n};\n\nconst ErrorScreen = connect(mapStateToProps, { updateHeaderInfo, getUserDetails, trackPage })(\n Errors\n);\n\nexport { ErrorScreen };\n","import { Divider, Typography, Grid, Select, MenuItem, InputLabel } from \"@material-ui/core\";\nimport React, { Component, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { getDecks, updateHeaderInfo, logout, updateUserProfile, getUserDetails, submitCME, getSASPResidencyProgram, sendSASPResidentAccess } from \"../actions\";\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { TextField, FormControl, FormGroup, FormControlLabel, Switch, Modal} from '@material-ui/core';\nimport { Link, Redirect } from \"react-router-dom\";\nimport HomeIcon from '@material-ui/icons/Home';\nimport IconButton from \"@material-ui/core/IconButton\";\nimport AddIcon from '@material-ui/icons/Add';\nimport { SaspButton, CopyrightWidget, LoadingCard, AILegalStatementCard } from \"../components\";\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\nimport { deviceData, getSASPURI, closeAlert, setContainer, getThisYear, remoteURL, createMarkup, clearLocalStorage, testerArr, alertNotification, hasLegal } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\nimport { ThemeConsumer } from \"styled-components\"; \n\nclass Profile extends Component {\n state = {\n allowSearch: false,\n allowShare: false,\n allowLeaderboard: false,\n isDaily: false,\n displayName: \"\", \n refresh: false,\n yst: 0,\n tl: 0,\n update: false,\n cme: {\n cmeBody : '',\n cmeProgram : '',\n cmeShow : 0,\n cmeTitle : ''\n },\n allowProgram: false,\n isResident: 0,\n isProgram: 0,\n show: false,\n program: null,\n open: false\n }\n\n componentDidMount = async () => {\n document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n\n let _ap = false;\n\n if (typeof this.props.user_details.allowProgram !== 'undefined') {\n switch (this.props.user_details.allowProgram) {\n case -1:\n case 0:\n case 2: {\n _ap = false;\n break;\n }\n case 1: {\n _ap = true;\n break;\n }\n default: {\n _ap = false;\n break;\n }\n }\n }\n\n let bool = true;\n\n if (typeof this.props.program === 'undefined' || this.props.program === null) {\n bool = false;\n this.props.getSASPResidencyProgram({ mcid: this.props.auth_feedback.mcid, key: this.props.auth_feedback.key });\n }\n\n this.setState({\n ...this.state,\n allowSearch: (this.props.user_details.allowsearch) ? true : false,\n allowShare: (this.props.user_details.allowshare) ? true : false,\n allowLeaderboard: (this.props.user_details.allowleaderboard) ? true : false,\n isDaily: (this.props.user_details.isDaily) ? true : false,\n displayName: (typeof this.props.user_details.displayname) ? this.props.user_details.displayname : this.props.user_details.LabelName,\n yst: (this.props.user_details.yst) ? this.props.user_details.yst : 0,\n tl: (this.props.user_details.tl) ? Number(this.props.user_details.tl) : 0,\n tracking: deviceData(this.props.location, 'navigate'),\n isResident: this.props.user_details.isResident ? this.props.user_details.isResident : 0,\n isProgram: this.props.user_details.isProgram ? 1 : 0,\n hideOldData: this.props.user_details.hideOldData ? 1 : 0,\n allowProgram: _ap,\n show: bool,\n program: this.props.program\n });\n\n const { mcid, key } = this.props.auth_feedback;\n this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n\n await this.props.getDecks({ mcid: mcid, key: key });\n\n return this.props.updateHeaderInfo({\n route:\"/profile\", \n name: \"Profile\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: \"#00567a\"\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.program !== this.props.program) {\n return this.setState({\n ...this.state,\n program: this.props.program\n })\n }\n\n if ( (prevState !== this.state) && (this.state.refresh) ) {\n if (prevProps.user_details === this.props.user_details) {\n this.props.getUserDetails( \n this.props.user_details.mcid, \n this.props.user_details.key,\n deviceData(this.props.location, 'updated profile')\n );\n }\n\n this.setState({ refresh : false });\n }\n\n if (prevState.program !== this.state.program) {\n if (typeof this.state.program === 'undefined') {\n return this.setState({\n ...this.state,\n show: false,\n })\n }\n\n return this.setState({\n ...this.state,\n show: true,\n })\n }\n }\n\n updateUserProfile = async () => {\n let data = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n allowSearch: this.state.allowSearch ? 1 : 0,\n allowShare: this.state.allowShare ? 1 : 0,\n allowLeaderboard: this.state.allowLeaderboard ? 1 : 0,\n isDaily: this.state.isDaily ? 1 : 0,\n hideOldData: this.state.hideOldData ? 1 : 0,\n displayName: this.state.displayName,\n yst: this.state.yst,\n tl: this.state.tl,\n allowProgram: this.state.allowProgram ? 1 : 0,\n isResident: this.state.isResident ? 1 : 0\n }\n\n await this.props.updateUserProfile(data);\n this.setState({ refresh : true });\n }\n\n handleSwitchChange = async (event) => {\n await this.setState({ ...this.state, [event.target.name]: event.target.checked });\n this.updateUserProfile();\n }\n\n handleNameChange = event => {\n this.setState({ ...this.state, displayName: event.target.value});\n };\n\n handleYSTChange = event => {\n this.setState({ ...this.state, yst: event.target.value});\n };\n\n handleTLChange = event => {\n this.setState({ ...this.state, tl: event.target.value});\n };\n\n handleTLSelect = event => {\n this.setState({ ...this.state, tl: event.target.value});\n };\n\n handleClose = () => {\n this.setOpen(false);\n };\n \n handleOpen = () => {\n this.setOpen(true);\n };\n\n setOpen = (bool) => {\n this.setState( { ...this.state, open: bool } )\n }\n\n setBool = (val) => {\n let r = false;\n if (val) { r = true; }\n\n return r;\n }\n\n submitCME = async (data) => {\n let obj = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n qyear: data.qyear,\n gamemode: data.gamemode,\n tracking: deviceData(this.props.location, 'claimed CME')\n }\n\n if (typeof data.processed !== 'undefined') {\n obj.processed = data.processed\n }\n\n if (typeof data.claimed !== 'undefined') {\n obj.claimed = data.claimed\n } \n\n await this.props.submitCME(obj);\n\n if (navigator.notification) {\n const msg = '\\nYou have completed SASP ' + data.qyear + '.\\n\\nPlease login into AUAUniversity to claim your cme.';\n await navigator.notification.alert(\n msg, \n closeAlert, \n 'Error', \n 'Close'\n );\n }\n\n this.setState({ ...this.state, update: !this.state.update, refresh: true });\n return null\n }\n\n claimCME = async (data) => {\n if (window.cordova) {\n if (window.cordova.InAppBrowser) {\n let type = '_blank';\n if (isElectron) {\n type = '_system';\n }\n const uri = await getSASPURI(data.qyear);\n return window.cordova.InAppBrowser.open(uri, type, 'location=yes');\n } else {\n this.submitCME(data);\n } \n } else {\n this.submitCME(data);\n }\n }\n\n setContainer = (bool) => {\n return { padding: \"0 16px 32px\", margin: \"calc(env(safe-area-inset-top) + 56px) 0 64px\", width: \"calc(100% - 32px)\", overflowY: \"auto\", backgroundColor: \"white\" };\n\n if (bool) {\n if (isBrowser && !isElectron) {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\", backgroundColor: \"white\" };\n } else {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\", backgroundColor: \"white\" };\n }\n } else {\n if (isBrowser && !isElectron) {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\", backgroundColor: \"white\" };\n } else {\n return { padding: \"0 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\", overflowY: \"auto\", backgroundColor: \"white\" };\n }\n }\n }\n\n handleCMEClose = () => {\n return this.setState({\n ...this.state,\n cme: {\n cmeText: '',\n cmeTitle: '',\n cmeProgram: '',\n cmeShow: 0\n }\n });\n }\n\n mapModalBody = () => {\n return (\n \n {/*
{this.state.cme.cmeTitle} \n
*/}\n\n
\n\n {this.state.cme.cmeProgram === 'SASP21'\n ? (\n
\n
\n \n
remoteURL('https://University.auanet.org/sasp/resources/education_council_disclosures_2021.pdf')} >\n
\n Education Council Disclosures\n \n View Disclosures\n \n\n
\n
\n\n
\n
remoteURL('https://University.auanet.org/sasp/resources/coi_review_disclosures_2021.pdf')} >\n
\n COI Review Work Group Disclosures\n \n View Disclosures\n \n\n
\n
\n\n
\n
remoteURL('https://University.auanet.org/sasp/resources/abu_exam_committee_2021.pdf')} >\n
\n ABU Examination Committee Disclosures\n \n View Disclosures\n \n\n
\n
\n
\n ) : null\n }\n
\n )\n }\n\n confirmClear = () => {\n if (navigator.notification) {\n function onConfirm (index) {\n index = Number(index);\n\n switch (index) {\n case 1: {\n clearLocalStorage();\n alertNotification({\n message : 'Local Data is removed',\n buttonName : 'Ok',\n title : 'SASP'\n })\n return null;\n }\n default: {\n return false;\n }\n }\n }\n\n navigator.notification.confirm(\n `Are you sure that you want to reset your local data?`,\n onConfirm,\n 'SASP'\n )\n }\n }\n\n handleAccess = (obj) => {\n if (obj.state.accesslevel === 2) {\n\n return this.props.history.push(obj);\n } else {\n this.setState({\n ...this.state,\n loading: true,\n })\n\n this.props.sendSASPResidentAccess(obj.data);\n }\n\n return null;\n }\n\n render () {\n let resObj = [];\n let cnt = 1;\n\n for (let deck of this.props.deckList) {\n let temp = {}\n let per = Math.trunc(Number(deck.totaAnswered) / Number(deck.totalQuestions) * 100);\n temp.name = (deck.deckname ? deck.deckname : \"Deck \" + cnt);\n temp.result = (per <= 100 ? per : '100') + '%';\n temp.isSpaced = (Number(deck.isspaced) === 1 ? 'Yes' : \"No\");\n temp.isOpen = (Number(deck.gameMode) === 3 ? 'Yes' : \"No\");\n temp.gameMode = deck.gameMode;\n temp.deckID = deck.deckID;\n resObj.push(temp);\n cnt++;\n }\n \n let t = this.props.user_details.authorizedyears.split(',');\n let subs = this.props.user_details.authorizedyears;\n if (Number(t[0]) < Number(t[t.length - 1])) {\n subs = '';\n cnt = 0;\n let arr = t.reverse();\n\n for (const i of arr) {\n if (cnt) {\n subs += ', ';\n } else {\n cnt++;\n }\n subs += i.trim();\n }\n } else {\n subs = subs.replace(/,/gi, ', ');\n }\n\n let cmeText = [];\n // let c = 0;\n let _arr = this.props.user_details.cmeYears.reverse();\n for (let i of _arr) {\n let tcme = '20' + i.programID.replace('SASP', '') + ' (' + i.programID + ')';\n let _tobj = i;\n _tobj.title = tcme;\n\n cmeText.push(_tobj)\n }\n\n if (this.state.show) {\n return (\n <>\n \n \n
Manage Profile \n\n
\n
\n \n \n\n
\n \n \n\n {/*
\n \n */}\n\n
\n \n \n Teaching Load\n \n \n N/A \n No Teaching \n Light Teaching \n Medium Teaching \n Heavy Teaching \n Unclassified \n \n \n \n\n
\n
\n {typeof this.state.hideOldData !== 'undefined'\n ? (\n
\n \n \n \n }\n label=\"Hide Questions more than 5 years old.\"\n />\n \n \n
\n \n ) : null\n }\n\n
\n \n \n \n }\n label=\"Allow Search\"\n />\n \n \n
\n \n\n
\n \n \n \n }\n label=\"Allow Sharing\"\n />\n \n \n
\n \n\n
\n \n \n \n }\n label=\"Show on Leaderboard\"\n />\n \n \n
\n \n\n
\n \n \n \n }\n label=\"Show Question of Day\"\n />\n \n \n
\n \n
\n
\n
\n\n
Account Details \n\n
\n
\n \n \n \n \n Subscriptions \n \n {subs}\n \n \n \n Reviewed CME Details \n \n \n {cmeText.map((cme) => (\n
\n {\n this.setState({\n ...this.state,\n cme: {\n cmeTitle: cme.title,\n cmeProgram: cme.programID,\n cmeShow: 1,\n cmeBody: cme.CMEContent\n }\n })\n }} >\n {cme.title}\n \n
\n ))}\n
\n \n \n \n
\n \n \n
\n\n {this.state.isResident\n ? (\n <>\n
Residency Program \n\n
\n
\n
\n \n \n \n \n Residency Program \n \n {this.props.user_details.residencydata.program}\n \n \n \n
\n \n \n
\n\n
\n \n \n \n }\n label=\"Share results data with Residency Program\"\n />\n \n \n
\n \n
\n >\n ) : null\n }\n\n\n {this.state.isProgram && this.state.program !== null && Array.isArray(this.state.program.residents)\n ? (\n <>\n
Program Residents \n\n
\n
\n
\n \n \n \n \n Name \n \n Access Level\n \n \n \n\n \n {this.state.program.residents.map((item, index) => {\n let target = {\n pathname: '/residents',\n state: {\n programid: this.state.program.programid,\n residentid: item.residentid,\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n accesslevel: item.accesslevel,\n pathname: '/residents',\n } \n }\n return (\n \n \n {\n return this.handleAccess(target);\n }}>\n {item.displayName}\n \n \n \n {\n return this.handleAccess(item, target);\n }}>\n {item.accessleveltext}\n \n \n \n )\n })}\n \n
\n \n \n
\n
\n >\n ) : null\n }\n\n
SASP Test Status \n\n
\n
\n \n \n \n \n Year \n Completed \n {/* Claimed \n Processes */}\n Open Book \n Closed Book \n \n \n \n {this.props.user_details.cme.map((row) => (\n \n {row.year} \n {row.completed || 1 === 1\n ? (\n \n {row.completed ? 'Yes' : 'No'}\n \n )\n : (\n \n {/* this.submitCME({\n qyear: row.year,\n gamemode: 1\n }) }\n > */}\n {row.completed ? 'Yes' : 'No'}\n {/* */}\n \n )\n }\n\n {/* {row.completed && row.claimed\n ? (\n \n {row.claimed ? 'Yes' : 'No'}\n \n )\n : (\n \n this.claimCME({\n qyear: row.year,\n gamemode: 1,\n claimed: 1\n }) }\n >\n {row.claimed ? 'Yes' : 'No'}\n \n \n )\n }\n\n \n {row.processed ? 'Yes' : 'No'}\n */}\n\n \n View\n \n\n \n View\n \n \n ))}\n \n
\n \n \n
\n \n \n {/*
Decks */}\n\n
\n {/*
\n \n \n \n \n Name \n Status \n Spaced \n Open \n \n \n \n {resObj.map((row) => (\n \n \n \n {row.name}\n \n \n {row.result} \n {row.isSpaced} \n {row.isOpen} \n \n ))}\n \n
\n \n */}\n\n
\n \n Log Out\n \n\n {testerArr.includes(this.props.auth_feedback.mcid)\n ? (\n this.confirmClear()}\n style={{minWidth: \"125px\"}}\n >\n Clear Local Data\n \n ) : null\n }\n
\n\n
\n
\n\n
\n\n \n {this.mapModalBody()}\n \n \n >\n );\n } else {\n return (\n \n )\n } \n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details, program } = state.auth;\n const { headerText, iconOne, iconTwo } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n deckList,\n auth_feedback,\n user_details,\n program\n };\n};\n\nconst ProfileScreen = connect(mapStateToProps, { \n updateHeaderInfo, getDecks, logout, updateUserProfile, getUserDetails, submitCME, getSASPResidencyProgram, sendSASPResidentAccess\n})(\n Profile\n);\n\nexport { ProfileScreen };\n","import React, { Component, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { getDecks, updateHeaderInfo, deRegister, getUserDetails } from \"../actions\";\nimport { SaspButton, CopyrightWidget, AILegalStatementCard } from \"../components\";\nimport { Divider, Typography, Grid } from \"@material-ui/core\";\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { deviceData, getPastThreeYearsArr, remoteURL, getSASPFacultyURI, setContainer, APPVERSION, getThisYear, scrollTop, hasLegal } from \"../common\";\nimport { Link } from \"react-router-dom\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nclass Settings extends Component {\n state = {\n appversion: '1.0.5',\n year: 1900\n }\n componentDidMount = async () => {\n scrollTop('SettingDiv');\n\n // let _y = getPastThreeYearsArr();\n let _d = new Date();\n let _y = _d.getFullYear();\n\n const { mcid, key } = this.props.auth_feedback;\n this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'))\n\n await this.props.getDecks({ mcid: mcid, key: key });\n\n await this.setState({ \n ...this.state, \n year: _y,\n }); \n\n return this.props.updateHeaderInfo({\n route:\"/settings\", \n name: \"App Details\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: \"#00567a\"\n });\n };\n \n mapSASPFacultyLinks = () => {\n const arr = getPastThreeYearsArr();\n // console.log('past three years: ', arr);\n\n return arr.map((year) => {\n return (\n \n \n View SASP {year} Faculty and Disclosures\n \n \n );\n });\n\n }\n\n render() {\n const { mcid, key } = this.props.auth_feedback;\n // console.log('\\nSTARTING SettingsScreen ...\\nprops: \\n', this.props);\n return (\n <>\n \n
About \n\n
\n
App Version: {APPVERSION}
\n
\n \n
Contact Information \n\n
\n\n
Notice \n\n
\n
\n You are prohibited from using or uploading content you accessed through this website into external applications, bots, software, or websites, including those using artificial intelligence technologies and infrastructure, including deep learning, machine learning and large language models and generative AI.\n
\n
\n\n
\n this.props.deRegister(mcid, key)}\n >\n Deregister\n \n
\n \n
\n
\n >\n );\n }\n}\n\nconst logout = state => {\n // console.log('state: ', state);\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details, cme_confirmations } = state.auth;\n const { headerText, iconOne, iconTwo } = state.style;\n const { deckList } = state.decks;\n\n const logout = () => {\n // console.log('state: ', state);\n }\n\n return {\n headerText,\n iconOne,\n iconTwo,\n deckList,\n auth_feedback,\n user_details,\n logout,\n cme_confirmations\n };\n};\n\nconst SettingsScreen = connect(mapStateToProps, { updateHeaderInfo, getDecks, deRegister, getUserDetails })(\n Settings\n);\n\nexport { SettingsScreen };\n","import { Divider, Typography, Grid } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport Skeleton from \"react-loading-skeleton\";\nimport { connect } from \"react-redux\";\nimport { getLeaderboard, updateHeaderInfo, copyDeck } from \"../actions\";\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport { deviceData, getThisYear } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nimport { CopyrightWidget, LoadingCard } from \"../components\";\n\nclass LeaderBoard extends Component {\n state = {\n reload: false,\n selected: -1,\n boardname: 'Overall',\n main: [],\n tracking: null,\n loading: true,\n timespan: 'quarterly'\n }\n\n componentDidMount = async () => {\n await this.props.updateHeaderInfo({\n route:\"/leaderboard\", \n name: \"Rankings\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n\n const { mcid, key } = this.props.auth_feedback;\n await this.props.getLeaderboard({\n mcid: mcid,\n key: key,\n tracking: deviceData(this.props.location, 'get leaderboard'),\n timespan: 'quarterly'\n });\n\n this.setState ({ ...this.state, tracking: deviceData(this.props.location, 'navigate') })\n \n return null\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.leaderboard !== this.props.leaderboard) {\n // console.log('leaderboard: \\n', this.props.leaderboard);\n this.setState({ ...this.state, main: this.props.leaderboard[0].mainLeaderboard, loading: false})\n }\n\n if (prevState.timespan !== this.state.timespan) {\n const { mcid, key } = this.props.auth_feedback;\n await this.setState({\n ...this.state,\n loading: true\n })\n \n return this.props.getLeaderboard({\n mcid: mcid,\n key: key,\n tracking: deviceData(this.props.location, 'get leaderboard'),\n timespan: this.state.timespan\n });\n\n \n }\n\n if (prevState.selected !== this.state.selected) {\n // console.log('new state: ', this.state);\n }\n\n if (this.state.reload) {\n // console.log('reload page?');\n this.setState({ ...this.state, reload: false});\n }\n }\n\n setStateBoard = async (val) => {\n let temp, name;\n\n if (val == -1) {\n name = 'Overall';\n temp = this.props.leaderboard[0].mainLeaderboard;\n } else {\n let t = this.props.leaderboard[0].areaLeaderboard[val];\n name = t.areaDescription;\n temp = t.areaRanking;\n }\n\n this.setState({\n ...this.state,\n main: temp,\n boardname: name\n })\n }\n\n handleSelect = async (event) => {\n await this.setState({\n ...this.state,\n selected: event.target.value\n });\n\n this.setStateBoard(event.target.value);\n } \n\n mapLeaderBoard = () => {\n if (\n Array.isArray(this.props.leaderboard) \n && typeof this.props.leaderboard[0] !== 'undefined'\n ) {\n return this.props.leaderboard[0].areaLeaderboard.map((area, index) => {\n return (\n \n {area.areaDescription}\n \n );\n });\n } else {\n return null;\n }\n }\n\n setContainer = (bool) => {\n return { padding: \"0 16px\", margin: \"calc(env(safe-area-inset-top) + 56px) 0 64px\", width: \"calc(100% - 32px)\", backgroundColor: \"white\" };\n\n if (bool) {\n if (isBrowser && !isElectron) {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 40px)\", height: \"calc(100vh - 160px)\" };\n } else {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\" };\n }\n \n } else {\n if (isBrowser && !isElectron) {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 40px)\", height: \"calc(100vh - 160px)\" };\n } else {\n return { padding: \"16px 16px 32px\", margin: \"0 0 64px\", width: \"calc(100% - 32px)\", height: \"calc(100vh - 160px)\" };\n }\n }\n }\n\n render() {\n // console.log('state: ', this.state);\n if (!this.state.loading) {\n return (\n \n
\n
Leaderboard \n\n
\n \n \n Overall \n {this.mapLeaderBoard()}\n \n \n
\n \n
\n {this.state.boardname}\n \n\n
\n \n \n \n \n Rank \n Name \n Score \n \n \n \n {this.state.main.map((row) => (\n \n {row.rank} \n {row.displayName} \n {row.score} \n \n ))}\n \n
\n \n \n \n
\n
\n
\n );\n } else {\n return \n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details, leaderboard } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n deckList,\n auth_feedback,\n user_details,\n leaderboard\n };\n};\n\nconst LeaderBoardScreen = connect(mapStateToProps, { updateHeaderInfo, getLeaderboard, copyDeck })(\n LeaderBoard\n);\n\nexport { LeaderBoardScreen };\n","import { Divider, Typography, Grid, List, ListItem, ListItemIcon, ListItemText } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { withRouter } from 'react-router-dom';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { connect } from \"react-redux\";\nimport { getLeaderboard, updateHeaderInfo, copyDeck, subscribeDeck, getUserDetails, updateNotification } from \"../actions\";\nimport { LoadingCard, CopyrightWidget } from \"../components\";\nimport { deviceData, getThisYear, scrollTop } from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nclass NotificationsClass extends Component {\n state = {\n loading: true,\n messages: []\n }\n\n componentDidMount = async () => {\n const { mcid, key } = this.props.auth_feedback;\n // console.log('props: ', this.props);\n\n await getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n // this.setState({ ...this.state, loading: false})\n \n return this.props.updateHeaderInfo({\n route:\"/notifications\", \n name: \"Notifications\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (this.state.loading) {\n // console.log('reload page?');\n this.setState({ ...this.state, loading: false});\n }\n\n if (prevProps.user_details !== this.props.user_details) {\n scrollTop('TargetDIV', 0);\n // console.log('reload page?');\n this.setState({ ...this.state, loading: false});\n }\n }\n\n createMarkup = props => {\n if (!props.includes('')) { props = '
' + props + '
'}\n return { __html: props };\n };\n\n updateDeck = async (data) => {\n this.setState({ ...this.state, loading: true});\n let notif = {\n mcid : data.mcid,\n key : data.key,\n state : data.state,\n pkid : data.pkid\n };\n\n let obj = {\n mcid : data.mcid,\n key : data.key,\n deckID : data.deckId\n };\n\n await this.props.updateNotification(notif);\n switch(data.type) {\n case 'copy': {\n await this.props.copyDeck(obj);\n await this.props.getUserDetails(obj.mcid, obj.key);\n this.props.history.push('/myDecks');\n break;\n }\n case 'subscribe': {\n await this.props.subscribeDeck(obj);\n await this.props.getUserDetails(obj.mcid, obj.key);\n this.props.history.push('/myDecks');\n break;\n }\n\n default: {\n await this.props.getUserDetails(obj.mcid, obj.key);\n break;\n }\n }\n }\n\n mapNotificationsToList = () => {\n // const notifs = this.props.user_details.notifications.notifications.filter( i => i.notificationType != 'GEN');\n const notifs = this.props.user_details.notifications.notifications;\n if (typeof notifs !== 'undefined' && notifs.length > 0) {\n return notifs.map((item, index) => {\n let className = 'text-blue';\n let primary = item.summary;\n let secondary = item.datestr;\n if (item.notificationState === 1) { className += ' text-strong' } \n return (\n <>\n \n \n \n \n \n this.updateDeck({\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n deckId: item.notificationDetail,\n pkid: item.pkid,\n state: 0,\n type: 'delete'\n })}\n className=\"text-orange\"\n style={{ \n fontSize: '1.5em',\n justifyContent: \"flex-end\",\n marginTop: \"2px\"\n }}\n />\n \n \n \n >\n )\n });\n } else {\n return (\n <>\n \n >\n ); \n }\n }\n\n setContainer = (bool) => {\n return { padding: \"0 16px\", margin: \"calc(env(safe-area-inset-top) + 56px) 0px 64px\", width: \"calc(100% - 32px)\" };\n\n if (bool) {\n return { padding: \"16px\", marginBottom: \"0px\", width: \"calc(100% - 40px)\" };\n } else {\n return { padding: \"5px\", marginBottom: \"0px\" };\n }\n }\n\n render() {\n if (!this.state.loading) {\n // console.log('state: ', this.state);\n return (\n \n
Inbox \n\n
\n \n {this.mapNotificationsToList()}\n
\n
\n \n
\n
\n );\n } else {\n return (\n \n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n deckList,\n auth_feedback,\n user_details\n };\n};\n\nconst NotificationsScreen = connect(mapStateToProps, { updateHeaderInfo, getLeaderboard, copyDeck, subscribeDeck, getUserDetails, updateNotification })(\n withRouter(NotificationsClass)\n);\n\nexport { NotificationsScreen };\n","import React, { Component, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { updateHeaderInfo, getUserDetails } from \"../actions\";\nimport { CopyrightWidget, LoadingCard } from \"../components\";\nimport { APPVERSION, APPID, createMarkup, remoteURL } from \"../common\";\nimport { Divider, Typography, Grid } from \"@material-ui/core\";\nimport { deviceData, setContainer } from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nimport \"../styles/masterStyles.css\";\n\nclass CMEInfo extends Component {\n state = {\n appversion: APPVERSION, \n appid: APPID,\n loading: true,\n cme: null,\n year: 1901,\n thisyear: 1900\n }\n\n objChecked = (data) => {\n if (typeof data === 'object') return true;\n else return false;\n }\nx\n componentDidMount = async () => {\n let _d = new Date();\n let _y = _d.getFullYear();\n let _ty = _y;\n\n console.log('CMEInfo props: ', this.props.location);\n\n const { mcid, key } = this.props.auth_feedback;\n this.props.getUserDetails(mcid, key, deviceData(this.props.location, 'navigate'));\n\n if (this.objChecked(this.props.location.state)) {\n if (this.objChecked(this.props.location.state.cme)) {\n if (typeof this.props.location.state.cme.year === 'number') {\n _ty = Number(this.props.location.state.cme.year);\n }\n } \n }\n\n await this.setState({ \n ...this.state,\n cme: this.props.location.state.cme,\n year: _y,\n thisyear: _ty,\n }); \n\n return this.props.updateHeaderInfo({\n route:\"/cmeinfo\", \n name: \"SASP\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: \"#00567a\"\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevState.cme !== this.state.cme) {\n this.setState({ ...this.state, loading: false });\n }\n\n if (prevProps.location.cme !== this.props.location.cme) {\n this.setState({ ...this.state, loading: true, cme: this.props.location.state.cme });\n }\n }\n\n render() {\n if (this.state.loading) {\n return (\n \n );\n } else {\n // console.log(this.state.cme)\n return (\n <>\n \n
\n {/*
SASP {this.state.cme.title} CME Info \n
*/}\n\n
\n\n {this.state.cme.programID === 'SASP21'\n ? (\n <>\n
\n Education Council Disclosures\n \n\n
\n \n
remoteURL('https://University.auanet.org/sasp/resources/education_council_disclosures_2021.pdf')} >\n \n View Disclosures\n \n\n
\n
\n\n
\n COI Review Work Group Disclosures\n \n\n
\n
remoteURL('https://University.auanet.org/sasp/resources/coi_review_disclosures_2021.pdf')} >\n \n View Disclosures\n \n\n
\n
\n\n
\n ABU Examination Committee Disclosures\n \n\n
\n
remoteURL('https://University.auanet.org/sasp/resources/abu_exam_committee_2021.pdf')} >\n View Disclosures\n \n\n
\n
\n >\n ) : null\n }\n\n {this.state.cme.programID === 'SASP22'\n ? (\n <>\n
\n Disclosures\n \n\n
\n \n
remoteURL('https://University.auanet.org/sasp/resources/2022_SASP_CME_Disclosures.pdf')} >\n View Disclosures \n \n\n
\n
\n >\n ) : null\n }\n \n
\n
\n >\n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n\n return {\n auth_feedback,\n user_details,\n };\n};\n\nconst CMEInfoScreen = connect(mapStateToProps, { updateHeaderInfo, getUserDetails })(\n CMEInfo\n);\n\nexport { CMEInfoScreen };\n","import React, { Component, useState } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { updateHeaderInfo, getUserDetails } from \"../actions\";\nimport { CopyrightWidget, LoadingCard } from \"../components\";\nimport { APPVERSION, APPID, createMarkup } from \"../common\";\nimport { Divider, Typography, Grid } from \"@material-ui/core\";\nimport { deviceData, setContainer } from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nclass CMERedirect extends Component {\n state = {\n appversion: APPVERSION,\n appid: APPID,\n loading: true,\n cme: null,\n year: 1900\n }\n\n componentDidMount = async () => {\n return this.props.updateHeaderInfo({\n route:\"/cmeinfo\", \n name: \"SASP\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: \"#00567a\"\n });\n };\n\n render() {\n return (\n
\n )\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n\n return {\n auth_feedback,\n user_details,\n };\n};\n\nconst CMERedirectScreen = connect(mapStateToProps, { updateHeaderInfo, getUserDetails })(\n CMERedirect\n);\n\nexport { CMERedirectScreen };\n","import { Divider, Typography, Grid } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport Skeleton from \"react-loading-skeleton\";\nimport { connect } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { getDecks, updateHeaderInfo, copyDeck, getUserDetails, getFlashCards } from \"../actions\";\nimport { FlashCardWidget, CopyrightWidget } from \"../components\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport AddIcon from '@material-ui/icons/Add';\nimport Modal from '@material-ui/core/Modal';\nimport { deviceData, setContainer, scrollTop, getThisYear } from \"../common\";\nimport { isBrowser, isElectron } from 'react-device-detect';\n\nclass FlashCardsScreen extends Component {\n state = {\n reload: false,\n copyModal: false,\n text: 'test...',\n }\n\n componentDidMount = async () => {\n await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n const { mcid, key } = this.props.auth_feedback;\n await this.props.getUserDetails( mcid, key, deviceData(this.props.location, 'navigate') );\n await this.props.getFlashCards({ mcid: mcid, key: key });\n return this.props.updateHeaderInfo({\n route:\"/FlashCardScreen\", \n name: \"Flashcards\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.getFlashCards !== this.props.getFlashCards) {\n // console.log('\\ndeckList is update...\\n', this.props.deckList);\n // await document.getElementById('root').scrollTo({top: 0, behavior: \"smooth\"});\n scrollTop('FlashCardsScreenDiv');\n }\n \n if (this.state.reload) {\n // console.log('reload page');\n this.setState({ ...this.state, reload: false});\n }\n }\n\n handleOpen = () => {\n this.setState({\n ...this.state,\n copyModal: true,\n });\n };\n\n handleClose = () => {\n this.setState({\n ...this.state,\n copyModal: false,\n });\n };\n\n setColorObj = (type = 'base') => {\n let r;\n\n switch (type) {\n default: {\n r = {\n deck: \"neutralGreenCard\",\n text: \"neutralGreenText\",\n button: \"neutralGreenCard\"\n }\n }\n }\n return r;\n }\n\n mapMyDeckCards = () => {\n const deckList = this.props.flashCards;\n // console.log('deckList: ', deckList);\n\n if (typeof deckList !== 'undefined' && deckList.length > 0) { \n return deckList.map((deck, index) => {\n let percomp = Math.trunc((Number(deck.totaAnswered) / Number(deck.totalQuestions)) * 100);\n if (percomp > 100) { percomp = 100; }\n let colorObj = (typeof deck.deckColor !== 'undefined' ? this.setColorObj(deck.deckColor) : this.setColorObj());\n\n return (\n
this.copyThisDeck(deck.deckID)}\n owner={Number(deck.owner)}\n isWrong={deck.isWrong}\n totalQuestions={deck.totalQuestions}\n />\n );\n });\n }\n };\n\n render() {\n return (\n <>\n \n
My Flashcards \n\n
\n {this.mapMyDeckCards(this.props)}\n
\n\n
\n
\n >\n );\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { flashCards } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n flashCards,\n auth_feedback,\n user_details\n };\n};\n\nexport default connect(mapStateToProps, \n { \n updateHeaderInfo, getDecks, copyDeck, getUserDetails, getFlashCards\n })(withRouter(FlashCardsScreen));\n\n// export { FlashCardsScreen };\n","import { Divider, Typography } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { withRouter } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { getDecks, updateHeaderInfo, copyDeck, getUserDetails, getFlashCards, getThisFlashCard } from \"../actions\";\nimport { FlashCard, CopyrightWidget, LoadingCard } from \"../components\";\nimport { deviceData, setContainer, scrollTop, getThisYear, setColorObj } from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nclass FlashCardReviewScreen extends Component {\n state = {\n reload: false,\n copyModal: false,\n text: 'test...',\n deckid: 0,\n year: 0,\n questionid: 0,\n loading: 1,\n fc: {}\n }\n\n componentDidMount = async () => {\n const { mcid, key } = this.props.auth_feedback;\n\n await this.props.getThisFlashCard({ \n mcid: mcid, \n key: key,\n deckid: this.props.location.deckid,\n year: this.props.location.year\n });\n\n await this.setState({ \n ...this.state, \n deckid: this.props.location.deckid,\n year: this.props.location.year\n });\n\n return this.props.updateHeaderInfo({\n route:\"/FlashCardScreen\", \n name: \"Flashcards\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.flashCard !== this.props.flashCard) {\n scrollTop('FlashCardReviewScreenDiv');\n\n return this.setState({ \n ...this.state, \n fc: this.props.flashCard, \n // loading: 0, \n questionid: this.props.flashCard.questionID \n });\n }\n\n if (this.state.fc !== prevState.fc) {\n return this.setState({\n ...this.state,\n loading: 0\n })\n }\n }\n\n handleOpen = () => {\n this.setState({\n ...this.state,\n copyModal: true,\n });\n };\n\n handleClose = () => {\n this.setState({\n ...this.state,\n copyModal: false,\n });\n };\n\n nextFunc = async () => {\n let obj = {\n deckid: this.state.deckid,\n year: this.state.year,\n questionid: this.state.questionid,\n mcid: this.props.user_details.mcid,\n key: this.props.auth_feedback.key\n };\n\n await this.setState({ ...this.state, loading: 1 });\n return this.props.getThisFlashCard(obj);\n }\n\n backFunc = () => {\n this.props.history.goBack();\n }\n\n render() {\n let colorObj = setColorObj('base');\n if (this.state.loading === 0) {\n return (\n <>\n \n Flashcards \n\n \n\n \n
\n >\n );\n } else {\n return (\n \n )\n }\n \n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { flashCards } = state.decks;\n const { flashCard } = state.question;\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n flashCards,\n auth_feedback,\n user_details,\n flashCard\n };\n};\n\nexport default connect(mapStateToProps, \n { \n updateHeaderInfo, getDecks, copyDeck, getUserDetails, getFlashCards, getThisFlashCard\n })(withRouter(FlashCardReviewScreen));","import React, { Component } from \"react\";\nimport { Divider, Typography } from \"@material-ui/core\";\nimport { withRouter, Redirect } from 'react-router-dom';\nimport { connect } from \"react-redux\";\nimport { \n putResponse, getQuestion, getQuestionResults, addNote, \n addQuestionToDeck, updateHeaderInfo, putNextReviewDate, \n getUserDetails, removeQuestion, resetDeck \n} from \"../actions\";\nimport { QuestionTestCard, CopyrightWidget, LoadingCard, RetiredQuestionTestCard, AILegalStatementCard } from \"../components\";\nimport { \n deviceData, setContainer, scrollTop, \n getThisYear, preventCopy, hasLegal \n} from \"../common\";\nimport { isBrowser } from 'react-device-detect';\n\nimport \"../styles/masterStyles.css\";\nimport \"../styles/questionStyles.css\";\n\nclass QuestionTestScreen extends Component {\n state = {\n reload: false,\n copyModal: false,\n text: 'test...',\n loading: true,\n data: {},\n answered: -1,\n type: null,\n typetext: 'Specific Question',\n gamemode: 0,\n year: 0,\n refsMats: null,\n spaced: 0,\n deckid: null,\n prevAnswer: {answered: 0}\n }\n\n componentDidMount = async () => {\n preventCopy();\n const { mcid, key } = this.props.auth_feedback;\n const { testYear, gameMode, deckID } = this.props.location;\n\n scrollTop('QuestionDiv', -64)\n \n await this.props.updateHeaderInfo({\n name: \"Questions\", \n iconTwo: 'menu',\n iconOne: 'home',\n });\n\n await this.props.getUserDetails( mcid, key, deviceData(this.props.location, 'navigate') );\n\n let _obj = { mcid: mcid, key: key }\n\n if (!isNaN(Number(testYear))) {\n _obj.yearvar = testYear;\n }\n\n if (!isNaN(Number(deckID))) {\n _obj.deckID = deckID;\n } \n\n if (!isNaN(Number(gameMode))) {\n _obj.gamemode = gameMode;\n } \n\n console.log(`_obj: `, _obj)\n\n await this.props.getQuestion(_obj);\n\n let _type = 'open';\n let typetext = 'Open Book';\n\n if (Number(gameMode) === 2 || Number(gameMode) === 4) {\n _type = 'closed';\n typetext = 'Closed Book';\n }\n\n return this.setState({ \n ...this.state,\n type: _type,\n data: this.props.question,\n gamemode: Number(gameMode),\n deckid: deckID,\n year: testYear,\n typetext: typetext,\n deckid: deckID\n })\n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.question !== this.props.question) {\n scrollTop('QuestionDiv', -64);\n console.log(`this.props.question: `, this.props.question)\n\n if (Number(this.props.question.morequestions) > 0 ) {\n return this.setState({ \n ...this.state,\n data: this.props.question,\n answered: -1\n })\n } else {\n switch (Number(this.props.question.gameMode)) {\n case 1:\n case 2: {\n return this.props.history.push('/testResultScreen');\n }\n \n case 3:\n case 4: {\n return this.props.history.push('/myDecks');\n }\n \n default: {\n return this.props.history.push('/home');\n }\n }\n }\n }\n\n if (prevProps.deckList !== this.props.deckList) { }\n\n if (prevState.data !== this.state.data) {\n const { testYear, gameMode, deckID } = this.props.location;\n\n let _text = '';\n let _type = 'Open Book';\n let typetext = this.state.typetext;\n let spaced = 0;\n if (Number(gameMode) === 4 || Number(gameMode) === 2) {\n _type = 'Closed Book';\n }\n\n if (Number(gameMode) === 1 || Number(gameMode) === 2) {\n _text = `${testYear} ${_type} Test`\n } else if (Number(gameMode) === 3 || Number(gameMode) === 4) {\n let _filter = this.props.deckList.find(item => item.deckID === deckID);\n\n let title = 'Deck';\n\n if (typeof _filter === 'object' && !Array.isArray(_filter)) {\n title = _filter.deckname;\n\n if (_filter.isspaced) {\n spaced = _filter.isspaced;\n typetext = `${_type} (Spaced Learning)`;\n }\n }\n\n _text = `${title}`\n } else if (Number(gameMode) === 7) {\n _text = this.state.data.title;\n }\n\n await this.setState({\n ...this.state,\n loading: false,\n text: _text,\n spaced: spaced,\n typetext: typetext,\n prevAnswer: this.state.data.prevAnswer ? this.state.data.prevAnswer : {answered: 0}\n })\n }\n\n if ( prevProps.error !== this.props.error && this.props.error !== '' ) {\n let _error = this.props.error;\n let _question = this.props.question;\n\n if (typeof _error === 'object' || Array.isArray(_error)) {\n try {\n _error = JSON.stringify(_error);\n } catch (e) {\n }\n }\n\n if (typeof _question === 'object' || Array.isArray(_error)) {\n try {\n _question = JSON.stringify(_question);\n } catch (e) {\n }\n }\n\n const __obj = {\n pathname: 'error',\n prevLoc: {\n pathname: this.props.location.pathname,\n detail: _error,\n detailvar2: _question\n }\n }\n return \n }\n }\n\n handleOpen = () => {\n this.setState({\n ...this.state,\n copyModal: true,\n });\n };\n\n handleClose = () => {\n this.setState({\n ...this.state,\n copyModal: false,\n });\n };\n\n setColorObj = (type = 'base') => {\n let r;\n\n switch (type) {\n default: {\n r = {\n deck: \"neutralGreenCard\",\n text: \"neutralGreenText\",\n button: \"neutralGreenCard\"\n }\n }\n }\n return r;\n }\n\n handleSubmit = async (obj) => {\n if (typeof obj.next !== 'undefined' && obj.next !== null) {\n await this.setState({ ...this.state, loading: true});\n\n let _goto = {\n mcid: obj.mcid,\n key: obj.key,\n gamemode: this.state.gamemode,\n }\n\n if (!isNaN(Number(this.state.deckid))) {\n _goto.deckID = this.state.deckid;\n } \n\n if (this.state.gamemode < 3) {\n _goto.yearvar = this.state.year;\n }\n\n if (obj.next > 0) {\n _goto.questionID = obj.next;\n }\n\n scrollTop('QuestionDiv', -64);\n return this.props.getQuestion(_goto)\n } else if (typeof obj.prev !== 'undefined') {\n await this.setState({ ...this.state, loading: true});\n\n let _goto = {\n mcid: obj.mcid,\n key: obj.key,\n gamemode: this.state.gamemode,\n }\n\n if (!isNaN(Number(this.state.deckid))) {\n _goto.deckID = this.state.deckid;\n } \n\n if (this.state.gamemode < 3) {\n _goto.yearvar = this.state.year;\n }\n\n if (obj.prev > 0) {\n _goto.questionID = obj.prev;\n }\n scrollTop('QuestionDiv', -64)\n\n return this.props.getQuestion(_goto);\n } else if (typeof obj.answerid !== 'undefined') {\n const data = {\n mcid: obj.mcid,\n key: obj.key,\n questionID: obj.questionid,\n gamemode: this.state.gamemode,\n optionSelected: obj.answerid ? obj.answerid : obj.choice,\n deckID: this.props.location.deckID ? this.props.location.deckID : 0,\n tracking: deviceData(this.props.location, 'submit answer')\n };\n\n data.tracking.action = 'answer question';\n\n if (typeof obj.retired === 'object') {\n let _goto = {\n mcid: obj.mcid,\n key: obj.key,\n gamemode: this.state.gamemode,\n yearvar: this.state.year\n };\n\n if (!isNaN(Number(this.state.deckid))) {\n _goto.deckID = this.state.deckid;\n } \n\n if (obj.retired.nextquestionid > 0) {\n _goto.questionID = obj.retired.nextquestionid;\n }\n\n this.setState({...this.state, loading: true})\n\n await this.props.putResponse(data);\n\n return this.props.getQuestion(_goto)\n } else if (this.state.gamemode === 2 || this.state.gamemode === 4) {\n await this.setState({ ...this.state, answered: 0, loading: true});\n\n let _goto = {\n mcid: obj.mcid,\n key: obj.key,\n questionID: obj.next,\n gamemode: this.state.gamemode,\n yearvar: this.state.year\n };\n\n if (!isNaN(Number(this.state.deckid))) {\n _goto.deckID = this.state.deckid;\n } \n\n this.setState({...this.state, loading: true})\n\n await this.props.putResponse(data);\n\n return this.props.getQuestion(_goto)\n } else {\n await this.props.putResponse(data);\n return this.setState({ ...this.state, answered: 1});\n }\n }\n }\n\n addNote = async (data) => {\n data.questionID = Number(data.questionID);\n this.props.addNote(data);\n }\n\n addToDecks = async (id, deckID) => {\n let cnt = 0;\n let obj;\n if (!deckID) {\n for (const i in this.props.deckList) {\n obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: id, \n deckID: this.props.deckList[i].deckID\n };\n\n this.props.addQuestionToDeck(obj);\n cnt++\n }\n } else {\n obj = {\n mcid: this.props.auth_feedback.mcid,\n key: this.props.auth_feedback.key,\n questionID: id, \n deckID: deckID\n };\n\n this.props.addQuestionToDeck(obj);\n } \n }\n\n removeQuestion = async(obj) => {\n return this.props.removeQuestion(obj);\n }\n\n scrollToTop = () => {\n return scrollTop('QuestionDiv', -64);\n }\n\n _reset = async (obj) => {\n let _path;\n if (typeof obj.deckid !== 'undefined') {\n _path = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n next: 0\n };\n } else {\n _path = {\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n next: 0\n };\n }\n\n await this.props.resetDeck(obj);\n\n return this.handleSubmit(_path)\n }\n\n render() {\n if (this.state.loading) {\n return (\n \n )\n } else {\n return (\n <>\n \n \n
{this.state.text} \n\n
\n {this.state.data.active === 1\n ? (\n {console.log('next question')}}\n backFunc={() => {console.log('prev question')}}\n mykey={this.props.user_details.key}\n mcid={this.props.user_details.mcid}\n addNote={this.addNote}\n addToDecks={this.addToDecks}\n removeQuestion={this.removeQuestion}\n putNextReviewDate={this.props.putNextReviewDate}\n scrollToTop={this.scrollToTop}\n refsMats={this.state.refsMats}\n labs={this.props.user_details.labstest}\n deckList={this.props.deckList ? this.props.deckList : []}\n id={'QuestionDiv'}\n resetDeck={this._reset}\n />\n ) \n : (\n \n )\n }\n \n
\n\n
\n
\n >\n );\n }\n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details } = state.auth;\n const { headerText, iconOne, iconTwo, backgroundcolor } = state.style;\n const { flashCards, deckList } = state.decks;\n const { question, error } = state.question;\n\n return {\n headerText,\n iconOne,\n iconTwo,\n backgroundcolor,\n flashCards,\n auth_feedback,\n user_details,\n question, \n deckList,\n error\n };\n};\n\nexport default connect(mapStateToProps, \n { \n putResponse, getQuestion, getQuestionResults, addQuestionToDeck, updateHeaderInfo, putNextReviewDate, addNote, getUserDetails, removeQuestion, resetDeck\n })(withRouter(QuestionTestScreen));\n\n// export { QuestionTestScreen };\n","import { Divider, Typography, Grid, Tab } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { getDecks, updateHeaderInfo, logout, updateUserProfile, getUserDetails, submitCME, getSASPResidencyProgram, sendSASPResidentAccess } from \"../actions\";\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { Link, Redirect } from \"react-router-dom\";\nimport { CopyrightWidget, LoadingCard } from \"../components\";\nimport { deviceData, setContainer, getThisYear } from \"../common\";\nimport { isBrowser, } from 'react-device-detect';\n\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\n\nclass Program extends Component {\n state = {\n loading: true,\n program: null,\n decks: []\n }\n\n componentDidMount = async () => {\n await this.props.updateHeaderInfo({\n route:\"/program\", \n name: \"Program\", \n iconTwo: 'menu', \n iconOne: 'home',\n color: \"#00567a\"\n });\n\n const { mcid, key } = this.props.auth_feedback;\n const tracking = deviceData(this.props.location, 'navigate');\n\n let bool = true;\n\n if (typeof this.props.program === 'undefined' || this.props.program === null) {\n bool = false;\n await this.props.getSASPResidencyProgram({ mcid: mcid, key: key });\n\n return this.setState({\n ...this.state,\n tracking: tracking,\n loading: bool\n })\n } else {\n return this.setState({\n ...this.state,\n tracking: tracking,\n loading: bool,\n program: this.props.program\n })\n } \n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.program !== this.props.program) {\n return this.setState({\n ...this.state,\n program: this.props.program\n })\n }\n\n if (prevState.program !== this.state.program) {\n console.log(`this.state.program: `, this.state.program);\n if (typeof this.state.program === 'undefined') {\n return this.setState({\n ...this.state,\n laoding: true,\n })\n }\n\n return this.setState({\n ...this.state,\n loading: false,\n })\n }\n }\n\n handleAccess = (obj) => {\n if (obj.data.accesslevel === 2) {\n return \n } else {\n this.setState({\n ...this.state,\n loading: true,\n })\n\n this.props.sendSASPResidentAccess(obj.data);\n }\n\n return null;\n }\n\n render () {\n if (this.state.loading) {\n return (\n \n )\n } else {\n return (\n <>\n \n
{this.state.program} \n\n
\n
\n \n \n \n \n \n Resident\n \n\n Access Permissions \n \n \n\n \n {this.state.program.residents.map((item, index) => {\n let target = {\n pathname: 'resident',\n data: {\n programid: this.state.program.programid,\n residentid: item.residentid,\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n accesslevel: item.accesslevel,\n pathname: 'resident'\n } \n }\n\n return (\n \n \n {\n return this.handleAccess(target);\n }}>\n {item.displayName}\n \n \n\n \n {item.accessLevel !== -1\n ? (\n <>\n {\n return this.handleAccess(target);\n }}>\n {item.accessleveltext}\n \n >\n ) : (\n <>\n {\n return this.handleAccess(target);\n }}>\n {item.accessleveltext}\n \n >\n )\n }\n \n \n )\n })}\n \n
\n \n \n
\n\n
\n
\n >\n );\n }\n \n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details, program } = state.auth;\n const { headerText, iconOne, iconTwo } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n deckList,\n auth_feedback,\n user_details,\n program\n };\n};\n\nconst ProgramScreen = connect(mapStateToProps, { \n updateHeaderInfo, getDecks, logout, updateUserProfile, getUserDetails, submitCME, getSASPResidencyProgram, sendSASPResidentAccess\n})(\n Program\n);\n\nexport { ProgramScreen };\n","import { Divider, Typography, Grid, Tab } from \"@material-ui/core\";\nimport React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { getDecks, updateHeaderInfo, logout, updateUserProfile, getUserDetails, submitCME, getSASPResidentData, sendSASPResidentAccess } from \"../actions\";\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport { Link } from \"react-router-dom\";\nimport { CopyrightWidget, LoadingCard } from \"../components\";\nimport { deviceData, setContainer, getThisYear, getPGY, LOADIGNARRAY, getLoadingPhrases } from \"../common\";\nimport { isBrowser, } from 'react-device-detect';\n\nimport \"../styles/deckCreationStyles.css\";\nimport \"../styles/masterStyles.css\";\n\nclass ResidentClass extends Component {\n state = {\n loading: true,\n program: null,\n resident: null,\n tracking: null,\n loadingtext: 'Loaading...',\n interval: null\n }\n\n myLoadingTextInterval = () => {\n let cnt = 0;\n let _interval = 3333;\n let interval = setInterval(() => {\n this.setState({\n ...this.state,\n loadingtext: getLoadingPhrases(cnt)\n })\n cnt++;\n }, _interval, cnt);\n\n return this.setState({\n ...this.state,\n interval: interval\n })\n }\n\n componentDidMount = async () => {\n await this.props.updateHeaderInfo({\n route:\"/resident\", \n name: \"SASP\", \n iconTwo: 'menu', \n iconOne: 'back',\n color: \"#00567a\",\n interval: null\n });\n\n const tracking = deviceData(this.props.location, 'navigate');\n\n this.myLoadingTextInterval();\n\n await this.props.getSASPResidentData({\n mcid: this.props.user_details.mcid,\n key: this.props.user_details.key,\n residentid: this.props.location.state.residentid,\n programid: this.props.location.state.programid,\n accesslevel: this.props.location.state.accesslevel\n })\n \n return this.setState({\n ...this.state,\n tracking: tracking,\n program: this.props.program\n })\n \n };\n\n componentDidUpdate = async (prevProps, prevState) => {\n if (prevProps.resident !== this.props.resident) {\n return this.setState({\n ...this.state,\n resident: this.props.resident\n })\n }\n\n if (prevState.resident !== this.state.resident) {\n clearInterval(this.state.interval);\n console.log(`residents: `, this.state.resident);\n return this.setState({\n ...this.state,\n loading: false,\n interval: null\n })\n }\n }\n\n componentWillUnmount = () => {\n if ( (!this.state.loading) || this.state.interval ) {\n clearInterval(this.state.interval);\n this.setState({ ...this.state, interval: null})\n }\n }\n\n render () {\n if (this.state.loading) {\n return (\n \n )\n } else {\n return (\n <>\n \n
Resident Details \n\n
\n
\n \n \n \n Resident Name \n {this.state.resident.name} \n \n \n Access Level \n {this.state.resident.accessleveltext} \n \n \n Last Accessed \n {this.state.resident.lastaccessed} \n \n \n App Version \n {this.state.resident.appversion} \n \n \n
\n \n
\n\n
Results \n\n
\n
\n \n \n \n Category \n Resident \n Peer Group \n \n \n \n {this.state.resident.data.map((item, index) => {\n return (\n \n {item.area} \n \n {item.scores.user}%\n {/* ({item.scores.answered_user} questions) */}\n \n \n {item.scores.peers}%\n {/* ({item.scores.answered_peers} questions) */}\n \n \n )\n })}\n \n \n
\n \n
\n \n
\n
\n >\n );\n }\n \n }\n}\n\nconst mapStateToProps = state => {\n const { auth_feedback, user_details, resident, program } = state.auth;\n const { headerText, iconOne, iconTwo } = state.style;\n const { deckList } = state.decks;\n return {\n headerText,\n iconOne,\n iconTwo,\n deckList,\n auth_feedback,\n user_details,\n resident,\n program\n };\n};\n\nconst ResidentScreen = connect(mapStateToProps, { \n updateHeaderInfo, getDecks, logout, updateUserProfile, getUserDetails, submitCME, getSASPResidentData, sendSASPResidentAccess\n})(\n ResidentClass\n);\n\nexport { ResidentScreen };\n","import { StylesProvider } from \"@material-ui/core/styles\";\nimport React from \"react\";\nimport { HashRouter as Router, Route, Switch } from \"react-router-dom\";\nimport { Footer, Header } from \"./components\";\nimport CreateDeckScreen from \"./screens/CreateDeckScreen\";\nimport EditDeckScreen from \"./screens/EditDeckScreen\";\nimport DeregisterScreen from \"./screens/DeregisterScreen\";\nimport LoginRoute from \"./screens/LoginRoute\";\nimport LoginScreen from \"./screens/LoginScreen\";\nimport ProtectedRoute from \"./screens/PrivateRoute\";\nimport QuestionsScreen from \"./screens/QuestionsScreen\";\nimport SingleQuestionsScreen from \"./screens/SingleQuestionsScreen\";\nimport CompletedTestScreen from \"./screens/CompletedTestScreen\";\nimport SplashScreen from \"./screens/SplashScreen\";\nimport { TestScreen } from \"./screens/TestScreen\";\nimport { RedirectScreen } from \"./screens/RedirectScreen\";\nimport DeckListScreen from \"./screens/DeckListScreen\";\nimport NoteListScreen from \"./screens/NoteListScreen\";\nimport ViewDeckScreen from \"./screens/ViewDeckScreen\";\nimport ViewMessageScreen from \"./screens/ViewMessageScreen\";\nimport { PublicDecksScreen } from \"./screens/PublicDecksScreen\";\nimport { HomeScreen } from \"./screens/HomeScreen\";\nimport { ErrorScreen } from \"./screens/ErrorScreen\";\nimport { ProfileScreen } from \"./screens/ProfileScreen\";\nimport { SettingsScreen } from \"./screens/SettingsScreen\";\nimport { LeaderBoardScreen } from \"./screens/LeaderBoardScreen\";\nimport { NotificationsScreen } from \"./screens/NotificationsScreen\"; \nimport { CMEInfoScreen } from \"./screens/CMEInfoScreen\";\nimport { CMERedirectScreen } from \"./screens/CMERedirectScreen\";\nimport \"./styles/globalStyles.css\";\nimport FlashCardsScreen from \"./screens/FlashCardsScreen\";\nimport FlashCardReviewScreen from \"./screens/FlashCardReviewScreen\";\nimport { AnimatePresence } from 'framer-motion';\nimport QuestionTestScreen from \"./screens/QuestionTestScreen\";\nimport { ProgramScreen } from \"./screens/ProgramScreen\";\nimport { ResidentScreen } from \"./screens/ResidentScreen\";\n\n//TODO change question screen to protected route\n\nclass Routes extends React.Component {\n componentDidMount = async () => {\n \n }\n\n render() {\n // console.log('\\n\\nSTARTING Routes....');\n // console.log(\"router props: \", this.props);\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n );\n }\n}\n\nexport default Routes;","import React from 'react';\nimport { Provider } from 'react-redux';\nimport { store } from \"./initStore\";\nimport Routes from \"./Router\";\nimport { Component } from 'react';\n// import { fcm_messages } from \"./init-fcm\";\nimport { isBrowser, isElectron, isIOS, isIOS13, isAndroid } from 'react-device-detect';\nimport { androidNotifFunc, iosNotifFunc, webNotifFunc} from './common';\n\nclass App extends Component {\n // componentDidMount = async () => {\n // if (fcm_messages !== null) {\n // if (isAndroid) {\n // androidNotifFunc(fcm_messages);\n // } else if (isIOS || isIOS13) {\n // iosNotifFunc(fcm_messages);\n // } else if (isElectron || isBrowser ) {\n // webNotifFunc(fcm_messages)\n // }\n // }\n \n // }\n\n render = () => {\n return (\n \n \n \n )\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(`This web app is being served cache-first by a service \\nworker. To learn more, visit https://bit.ly/CRA-PWA`);\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(`New content is available and will be used when all \\ntabs for this page are closed. See https://bit.ly/CRA-PWA.`);\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n // console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport './index.css';\nimport * as serviceWorker from './serviceWorker';\nimport { closeAlert, preventCopy } from \"./common\"\nimport { isBrowser, isElectron, isIOS } from 'react-device-detect';\n\nconst startApp = async (props) => {\n if (\"serviceWorker\" in navigator) {\n if ((isBrowser || isElectron) && 1 === 0) {\n // const regURL = \"./fcm/firebase-messaging-sw.js\";\n const regURL = '';\n navigator.serviceWorker.register(regURL, {\n updateViaCache: 'none'\n }).then(async (registration) => {\n }).catch((e) => {\n let _emsg = \"Service worker registration failed\";\n if (navigator.notification) {\n // navigator.notification.alert(\n // _emsg, \n // closeAlert, \n // 'Error', \n // 'Close'\n // );\n } else {\n }\n\n \n }).finally(() => {\n ReactDOM.render( , document.getElementById('root'));\n });\n } else {\n ReactDOM.render(, document.getElementById('root'));\n }\n } else {\n ReactDOM.render(, document.getElementById('root'));\n }\n}\n\nif (window.cordova) {\n document.addEventListener('deviceready', startApp(true), false);\n function onDeviceReady() {\n if (isIOS) {\n window.cordova.plugins.disableCopyPaste.start(function(){\n }, function(sError) {\n });\n }\n\n window.open = window.cordova.InAppBrowser.open;\n }\n navigator.splashscreen.hide();\n} else {\n preventCopy();\n startApp(false)\n};\n\nserviceWorker.unregister();"],"sourceRoot":""}