{"version":3,"sources":["config/Config.js","serviceWorker.js","actions/index.js","reducers/populateStore.js","reducers/incrementXP.js","reducers/index.js","store/accountInfo.js","api/ApiClient.js","resources/coins.png","components/gamification/PointsTotal.js","components/gamification/VisiblePointsTotal.js","components/global/Nav.js","services/auth/MicrosoftAuthService.js","components/auth/ThirdPartyLogin.js","utils/urlSAS.js","components/auth/PaidWikiConsent.js","components/auth/PaidDictionaryConsent.js","components/auth/UnpaidGeneralConsent.js","components/auth/ThirdPartySignUp.js","components/auth/Person.js","resources/profile.svg","components/gamify/Scoreboard.js","components/social/SocialIconsHeader.js","styles/modalStyles.js","modals/disappearNotification.js","Home.js","Info.js","components/gamification/GlobalErrorModalView.js","components/gamification/GlobalErrorModalConnect.js","components/report/ReportVideoButton.js","styles/playerRecorderStyles.js","utils/utilMethods.js","modals/FailedContentModal.js","components/player-recorder/WebRecorder.js","components/player-recorder/Record.js","components/video-verify/Verify.js","components/video-verify/VerifyUserVideo.js","components/player-recorder/WebRecorderExplore.js","components/player-recorder/RecordNewVideo.js","components/misc/DeleteContent.js","components/social/FacebookShareButton.js","components/video-ui/GroupedVideoListing.js","components/video-ui/VideoListing.js","components/misc/CustomFilter.js","components/misc/CustomPageDropdown.js","components/video-verify/DuplicateSeedVideos.js","components/player-recorder/WebModelVideoRecorder.js","components/player-recorder/RecordNewModelVideo.js","components/explore/Explore.js","components/vocab/VocabList.js","components/vocab/VocabSpecificList.js","components/vocab/RecordVocabList.js","components/vocab/CreateVocabList.js","components/player-recorder/Webcam.js","components/profile/User.js","components/player-recorder/WebRecorderSeedFactory.js","components/player-recorder/SeedFactory.js","components/tos/FBTOS.js","components/tos/FBPrivacy.js","utils/userAgent.js","components/profile/Profile.js","components/auth/GoogleAuthIntermediate.js","components/video-ui/UserVideoListing.js","components/profile/UserProfile.js","components/global/Footer.js","services/auth/GoogleAuthService.js","services/auth/FacebookAuthService.js","services/auth/AuthService.js","services/video/videoUtils.js","components/player-recorder/WikiRecorder.js","components/player-recorder/RecorderWikiLayer.js","services/video/saveRecording.js","components/player-recorder/Player.js","components/player-recorder/PlayerWikiLayer.js","components/global/ViewBlocker.js","components/wiki/Wikipedia.js","components/admin-dashboard/AdminDashboard.js","components/admin-dashboard/StatsDashboard.js","components/admin-dashboard/APIDashboard.js","App.js","index.js"],"names":["module","exports","msAuthConfig","clientId","scopes","redirectUri","process","fbAuthconfig","Boolean","window","location","hostname","includes","updateScore","increment","userid","apiClient","type","points","populateStore","userAccount","account","requestFailedModal","val","modalOn","state","arguments","length","undefined","action","user","reqFailedModal","incrementXP","userXPIncrement","combineReducers","configureStore","initialState","createStore","rootReducer","ApiClient","constructor","getCSV","async","routeName","url","response","fetch","method","headers","authorization","localStorage","getItem","json","status","csvContent","data","forEach","rowArray","row","join","encodedUri","encodeURI","link","document","createElement","setAttribute","fileName","body","appendChild","isLoggedOut","Error","removeItem","href","getJSONFile","jsonRes","jsonData","blob","Blob","URL","createObjectURL","download","click","removeChild","getJSON","self","queryString","reqRes","responseStatus","retryCount","toString","Promise","resolve","reject","setTimeout","props","dispatch","httpServerError","e","postJSON","isForm","uniqueness","Math","random","Date","getTime","append","Headers","concat","JSON","stringify","credentials","error","PointsTotal","_jsx","children","xpPoints","connect","TopNavContainer","React","Component","super","textDecoration","logout","toggleUserDropdown2","this","setState","prevState","isDropdownOpen","responseFacebook","getApplicationNode","getElementById","handleClick","name","description","FB","ui","picture","caption","message","onDropdownSelect","selection","targetUrl","label","activeLink","navigateTo","toggle","bind","dropDownMenu","createRef","toggleUserDropdown","isOpen","defaultProfileImg","signedInGroupId","style","light","personURL","profileImg","handleClose","handleShow","componentDidMount","pathname","then","res","componentWillReceiveProps","show","history","push","render","links","text","AccountBoxRoundedIcon","alt","className","navLinks","map","item","index","_jsxs","onClick","Dropdown","ref","background","color","DropdownToggle","AccountCircleRoundedIcon","DropdownMenu","id","DropdownItem","tag","Link","to","userName","NavLink","exact","activeclassname","Fragment","width","height","viewBox","fill","xmlns","d","transform","slice","TopNav","withRouter","MicrosoftAuthService","getMicrosoftAccount","userAgentApplication","getAccount","logOut","logIn","agent","loginPopup","loginResponse","catch","UserAgentApplication","auth","config","postLogoutRedirectUri","cache","cacheLocation","storeAuthStateInCookie","ThirdPartyLoginContainer","_this","responseGoogleD","full","loginConsentType","marginBottom","googleStyling","border","video","position","display","margin","videoplaceholder","maxWidth","cookieText","fontSize","fontWeight","err","universalLogin","email","signedRequest","accessToken","responseGoogle","Authorization","access_token","axios","get","reestablishUserAccount","ssoToken","signinType","facebookAccessToken","localToken","generatedToken","resT","setItem","appRoot","tokenData","isAccountReestablished","alert","jwtToken","reRes","urlToken","facebook_id","signinProvider","oldJWTToken","onMSLogin","idToken","rawIdToken","isSignedIn","isFirefox","userCookieConsent","navigator","userAgent","indexOf","pth","onSuccess","getContent","h1marginTop","paddingLeft","x","y","rx","stroke","Modal","onHide","backdrop","top","Header","closeButton","Title","Body","ThirdPartyLogin","disambiguateSASURL","proc","replace","PaidDictionaryConsent","imgcontainer","controls","loop","preload","src","kind","srcLang","h2fontSize","h3fontSize","target","rel","ThirdPartySignupContainer","labelDisplay","marginLeft","inputFieldDisplay","minWidth","requiredFieldCSS","passwordMatchWarning","handleInputChange","event","value","checked","registerErrors","newUserSignUp","preventDefault","acceptedConsent","continueSignUp","openInfoModal","toggleInfoPopup","paidConsentLinks","unPaidConsentLinks","thirdPartyUserid","token","accountType","age18True","acceptTerms","consentForm","errorMsg","errors","isRegisterationCompleted","firstTimeUser","toastId","enabled","onSubmit","ToastContainer","autoClose","ModalHeader","toggleVerifyPopup","ModalBody","ModalFooter","Row","Col","onChange","for","anchorTagFooter","md","disabled","ThirdPartySignup","PersonContainer","person","size","score","Person","ScoreboardContainer","requestingDailyScores","requestingTopScores","getOverAllTopScores","overAllScoreData","dailyScoreData","alltimers","imgSrc","img","Scoreboard","SocialIconsHeader","header","float","iconStyle","invisibleModalStyle","overlay","borderRadius","content","left","right","bottom","marginRight","overflow","visibleModalStyle","modalStyles","padding","levelMessage","textAlign","levelEmoji","confirmEmoji","closeModal","invisibleClose","loaderStyle","DisappearNotification","handleCloseInvisibleModal","showInvisibleModal","text2","symbol","isTransparent","componentDidUpdate","prevProps","CheckRoundedIcon","MoreHorizIcon","ReactModal","contentLabel","Home","displayInline","scoreCount","buttonStyle","postMessage","maxHeight","marginTopBottom","marginTop","numberLabelfontSz","notify","loadUserScores","scoresData","wikiCount","userLevel","level","pointScore","userSpecificLevel","recordedTotal","totalRecordedVideos","verifiedTotal","totalVerifiedVideos","TotalUserVideosCount","totalUserVideos","scoresDataLoaded","getUserLevelStatus","stopEventPropagation","stopPropagation","getUserLevelDisplayText","currentTotalCount","TotalRecordedVideos","userLevelStatusText","userLevelName","emptyMessage","determineCTA","TotalVerifiedVideos","throttleCount","loadedCount","hasMore","isLoading","TotalModelVideosCount","RecordVideoPercentage","VerifyVideoPercentage","tooltipOpen","cancelTooltipOpen","isLoggedIn","showStayInTouchModal","bannerHtml","stayInTouchEmail","toggleCancelTooltip","isNewAccount","loadUser","generateComplexObjects","messages","flattened","replies","filter","m","parent","_id","title","trim","Info","howitWorksVideo","infoASLVideo","role","cx","cy","r","x1","y1","x2","y2","filterUnits","result","in","values","dy","stdDeviation","mode","in2","gradientUnits","offset","GlobalErrorModalView","elems","getElementsByClassName","el","currentTarget","HighlightOffIcon","InfoRoundedIcon","ReportButtonContainer","iconColor","cursor","paddingRadio","textareaStyle","setFlagType","flagType","showPopup","showConfirmDialog","flagReason","userId","loggedInUserId","videoData","onClose","onOpen","skipToNewVideo","ReportButton","playerRecorderControls","playerRecorderControlText","lineHeight","playerRecorderControlSmall","debounce","processAllowed","txt","fn","FailedContentModal","AriaModal","titleText","onExit","verticallyCenter","initialFocus","underlayStyle","paddingTop","tabIndex","WebRecorderContainer","startTimer","recordTime","timerId","setInterval","stopTimer","clearInterval","blobToFile","theBlob","lastModifiedDate","recordingStart","showControls","showTimer","recordingStarted","camera","recorder","RecordRTC","mimeType","startRecording","stopCamera","stopRecording","showMidStateConfirm","stopRecordingCallback","getBlob","targetSrc","videoDownload","playIcon","Sync","submitState","notify3k","show3kNotification","notify300","show300Notification","changeRecordState","handleSubmit","preventAction","vresponse","incrementRecordedCount","showSpinner","FormData","modelVideoId","vocabUserVideoId","count","responseToPost","userLevelUpdated","updateUserLevel","newVideoCount","totalRecordings","clearPrevVideo","clearVideoOptions","redo","isRedo","isCountdownActive","counter","PrimitiveDot","post","file","isLabelVisible","showFailedContentModal","cameraCleanup","listen","srcObject","getTracks","track","stop","componentWillUnmount","captureCamera","callback","mediaDevices","getUserMedia","audio","console","startCountdown","countdown","innerCountdownTimeout","initiateRecorder","autoPlay","playsInline","setRef","alignItems","showVideoLabel","videoName","displayhtml","MdInfoOutline","ReactTooltip","StopRoundedIcon","buttonStop","RedoRoundedIcon","buttonSubmit","CheckBoxRoundedIcon","Roller","WebRecorder","propTypes","PropTypes","object","newVideo","func","RecordContainer","btnStylingSmall","showHavingTrouble","showHavingTroubleButton","showLabel","showhideLabel","showLabelButton","hideLabelButton","hideLabel","heading","btnStyling","buttonPos","selectStyles","control","styles","muted","volume","mountedCamera","newRecordedVideos","targetSRC","generateSearchOptions","uniqueList","datum","searchTerm","resArr","Object","setDropdownState","initializeCamera","stream","determineConsent","canViewRecord","handleChange","selectedOption","searchForSign","sign","tempVids","recordVideos","showVideoState","requiredVideoValue","skip","currentVideoIndex","tid","completed","loggedInUser","modelid","consideredVideos","uv","newIndx","videosDefined","getRecordVideos","loadSearchOptions","isPullingSearchList","searchOptionsList","getSelectedVideo","videoId","recordMode","videoChoice","randomVideo","playRandomVideo","showbuttons","playMyChoiceVideo","showSelectDropdown","revertToOriginalState","dataFirstLoad","noContent","ready","isUserStudy","rdd","showStudyMessage","acceptConsent","consentedToDictionaryStudy","reload","blockPage","showFlagIcon","stayOpen","studyCode","showVideosCount","studyCompleted","searchText","updateCount","carouselItems","i","PlayCircleFilledWhiteIcon","VideocamRoundedIcon","VisibilityOffIcon","VisibilityIcon","sm","xs","paddingBottom","record","Select","closeOnSelect","options","Octicon","icon","Search","BlockUi","loader","blocking","convertedUrl","myChoiceVideo","ReportVideoButton","Loader","Record","VerifyContainer","userVideos","isDuplicate","splice","btnReport","backgroundColor","getVerificationCount","getVerifyVideos","dta","onOpenFlagModal","openFlagVideoModal","nextVideo","getVotes","totalVerificationsCount","voted","onHideStudyModal","showStudyCompletion","removeFirstVideo","uvs","vote","userVideoId","yesOrNo","videoid","upVotes","downVotes","waitPlayVideo","interval","modelPlayDuration","play","setModelVideoDuration","duration","voteNo","exampleVid","userVid","showModal","videoList","showAccessMessage","verifyCodeExists","boxStyle","imageStyle","h1","handleOpenModal","handleCloseModal","componentWillMount","setAppElement","videoDefined","verify","playModel","eventHandler","playSubmission","otherFunction","CheckIcon","modelVideo","onLoadedData","$event","contextTypes","router","Verify","VerifyUserVideoContainer","userVideo","onFinish","modelVideoURL","modVideo","thumbsUp","FaThumbsUp","thumbsDown","FaThumbsDown","Button","Play","Check","X","VerifyUserVideo","WebRecorderExploreContainer","current","recordState","isSubmitting","buttonStart","videoKey","WebRecorderExplore","RecordNewVideo","showModelVideoDiv","showSelfRecordDiv","showModelDiv","showRecordDiv","DeleteContentContainer","onDeleteContent","deleteExtension","explorePage","updateVideoList","searchValue","tabState","Footer","DeleteContent","GroupedVideoListingContainer","flggedFontSize","paginationArrow","flagRemoval","nextPage","updatedPage","currentPage","totalPages","updateUserVideosList","checkedValue","videos","previousPage","isFluent","getUserVideos","totalCount","parseInt","pageCount","pageSize","floor","groupId","showHideVersions","disablePreviousPagination","pointerEvents","disableNextPagination","flaggedMsg","profile","search","isFlagged","modelUserVideos","avertFlagViolated","tabindex","vid","flexGrow","paddingRight","FaAngleDoubleLeft","FaAngleDoubleRight","GroupedVideoListing","VideoListingContainer","changeLetter","isLoadDisallowed","targetLetter","showCount","alreadyLoadedIds","dataInWaiting","videoCount","pullVideos","isSilent","filteredData","modelVideos","alis","mv","results","query","containsObject","obj","list","onShowVerifyModal","openVerifyModal","onShowRecordNewModal","openRecordNewModal","toggleRecordNewPopup","disableButton","verified","verifyResults","newResults","verifiedByUser","showFacebookShare","curUser","generateShareUrl","verifyCallback","recordCallback","handleScroll","scrollDiv","scrollTop","groupedData","onscroll","documentElement","scrollHeight","clientHeight","targetAdd","dataRemnants","newFilterSet","st","currentQuery","toggleFluency","isFluentSignersOnly","groupedVideo","updatedPageNo","letter","onScroll","VideoListing","Filter","searchChange","setFilter","placeholder","CustomPageDropdown","onPageChange","page","setPage","maxPages","pagesObj","DuplicateSeedVideosContainer","CustomFilter","NewLayout","_ref","Table","Pagination","SettingsWrapper","seedVideosData","CustomRowComponent","rowData","plugins","LocalPlugin","selectors","rowDataSelector","_ref2","Griddle","pageProperties","recordCount","sortProperties","components","Layout","PageDropdown","PageDropdownEnhancer","PageDropdownContainer","styleConfig","classNames","NextButton","PreviousButton","SettingsToggle","TableHeading","TableBody","RowDefinition","ColumnDefinition","DuplicateSeedVideos","WebModelVideoRecorderContainer","textTransform","prepareCamera","checkDuplicateSeedVideos","videoNameInput","modName","seedVideos","seedVideosList","handleSeedSubmit","openDuplicateSeedVideosModal","seedNameCheck","showSubmitState","persist","cameraReady","toUpperCase","videoNameError","destroy","isLoadingCamera","verificationStateText","cvsTextProcessing","autocomplete","required","seedMarker","WebModelVideoRecorder","RecordNewModelVideo","ExploreContainer","seedVideoBtn","onAddModelVideo","pullExplorePageSearchOptions","log","userdata","updateSelectedUser","Explore","VocabListContainer","listName","onAddVocabListVideo","pullVocabListSearchOptions","infuseListOptions","listOrder","generatedList","infusedList","ii","targetUV","find","initialLoad","extension","split","isSharedLink","unpackedVideoOptions","getOptions","loadOptions","dropdownSelectOptions","filtered","select","sOptions","searchVisible","searchTermUser","listCreator","performQuery","matches","isPreload","clearSearchResults","navigateToRecord","navigateToNewLink","open","toggleListMode","isYourListMode","expandContract","isVisible","it","isExpanded","deleteList","listId","searchPlaceholder","vocabListDisplay","expandedVideosList","ExpandLessRoundedIcon","ExpandMoreRoundedIcon","date","substring","PlayCircleFilledRoundedIcon","LinkRoundedIcon","zIndex","SelectSearch","HighlightOffRoundedIcon","borderTop","decodeURIComponent","videosLeft","urlComponents","CreateVocabListContainer","saveNewList","selectedVideos","allVideos","qq","addSelection","listMod","listRMod","removeSelection","listLMod","modifyListName","videoOptions","AddCircleIcon","vocabMarker","CreateVocabList","doMath","correct","incorrect","votes","User","thumbnail","model","sortDescending","scope","columnMetadata","exampleMetadata","showFilter","showSettings","sortable","order","WebRecorderSeedFactoryContainer","WebRecorderSeedFactory","SeedFactoryContainer","FBTOS","FBPrivacy","browserCompatibilityCheck","browser","isMobile","isCompatible","isTablet","isSafari","test","ProfileContainer","selectFieldDisplay","profileAboutMe","profileResetPWLink","linkChangeProfilePic","loginMsgStyling","shouldBlockNavigation","handleDateChange","dob","callSaveProfile","onbeforeunload","registerUser","generateJWT","jwt","saveProfile","handleValidation","aboutMarker","aboutMe","usernameMarker","registerUserRes","saveProfileRes","updateProfileImage","openUploadModal","uploadedImgSrc","toggleUploadPopup","gender","identity","aslLevel","genAccountMessage","startedAge","homeState","uploadedFile","originalImgSrc","cropResult","profilepicbuttonsEnable","userNameError","promptMessage","profilePicFlagged","profileImgSizeException","originalFileSize","uid","cropImage","restoreOriginal","_crop","onImageDrop","files","round","reader","FileReader","readAsDataURL","onloadend","cropper","getCroppedCanvas","toDataURL","hideGenAccount","Prompt","when","maxLength","DatePicker","selected","placeholderText","onSelect","Dropzone","onDrop","accept","multiple","getRootProps","getInputProps","Cropper","aspectRatio","guides","crop","Profile","GoogleAuthIntermediateContainer","GoogleAuthIntermediate","UserVideoListingContainer","identifyFiltered","preLoadDictionary","preLoadWiki","wikiVideos","preLoadSeed","switchSubFocus","tabFocus","subTabState","secondPull","alreadyLoadedVideoIds","alreadyLoadedSeedIds","isYourProfile","alreadyLoadedWikiIds","targetUserId","targetProfileId","seedCount","paidUserVideos","wiki","wasFromUnpaidStudy","salis","pD","pS","newIds","walis","isDropdownComplete","dictionaryCount","updateQueryResults","handleSearchInputChange","targetTerm","filteredNames","sentence","urlString","searchParams","rootUrl","isCurrentUser","wikiTotalCount","itF","targetFiltered","targetDataInWaiting","targetStateProperty","preloadStateProperty","flaggedByCVS","articleName","Moment","format","flexDirection","autoComplete","onKeyPress","key","borderBottom","tabState2","UserVideoListing","require","UserProfileContainer","showConfirmDeleteDialog","deleteUserAccount","whichUser","loadProfile","isProfileLoading","birthday","calculateAge","isProfileLoaded","about","isEditAvailable","isFlaggedImg","TotalModelVideos","totalModelVideos","bD","today","birthDate","age","getFullYear","getMonth","getDate","ageInYears","userAge","enableEdit","switchFocus","parsed","parse","emailId","loggedInUserEmail","uniqueId","loggedInUserUniqueId","isSocialMediaEnabled","isSocialEnabled","allowProfileRender","readonly","editMode","showControl","hideControl","showGender","UserProfile","GoogleAuthService","getGoogleAccount","FacebookAuthService","getFacebookAccount","getLoginStatus","authResponse","userID","path","api","locale","fields","AuthService","isAuthenticatedUsingMS","msaccount","msAuthService","accountIdentifier","isAuthenticated","glAuth","googleAuthService","bfAuth","fbAuthService","glaccount","fbaccount","fbuser","stringTimeToSeconds","str","arr","setPlayProgress","context","start","playPauseTimeout","progressBarInterval","clearTimeout","videoTarget","playRate","playbackRate","vMillisecondDuration","prog","currentVideoTimeProgress","si","pauseProgressOn","newPercent","pausePlayProgress","WikiRecorder","videoPlaceholderStyle","justifyContent","outerInitTimeout","innerInitTimeout","videoPlayback","currentVideoDuration","currSentence","clearRecTime","isTimerVisible","acc","rej","clearCountdown","recordLoader","nextProps","currContext","recordTransitionState","uiControls","c","selectedIndex","overwriteVideo","controlsVisible","Progress","toggleMode","isRecorderLoaded","setDurationHack","currentTime","evv","dur","videoStyle","isRecording","recordingTime","selectedControlsName","isPlaying","redoBtn","hideWindowControls","videoTransitionOverlay","confirmBtn","RecorderWikiLayerContainer","findCorrectFlipIndex","targetFlippableControlIndex","selectedControlButtons","flipPlayPauseControls","rmb","calculatePlayDuration","handleOverrideControls","isConfirmIncluded","overrideConfirmBtns","handleControls","tempSetRedoConfirmBtns","resetRecordState","flipPauseButton","player","recordTransitionValue","tempCount","topicTextUserList","videoDuration","rClock","recordMethods","vidDuration","Infinity","isNaN","durationMS","confirm","vduration","newRecording","sentenceIndex","sectionIndex","sectionSentences","articleId","sentenceText","saveWikiRecording","articleTitle","appendNewVideoData","finalSectionIndex","moveToSectionFinishState","overlays","nextRecordingOverlay","pause","rewind","playPrev","playNext","initiateRecordingClock","initTime","diff","tm","millisToMinutesAndSeconds","overrideButtons","redoRecordingOverride","confirmRecordingState","recallPreviousUserRecording","moveToConfirmStateOverride","showWindowControls","moveToConfirmState","isSaving","recordBtn","isArticleFinished","sectionEndOverlay","finishSectionOverlay","finishArticleOverlay","readModeButtons","startStopRecording","isReRecord","loadNextRecordVideo","selectSentence","redoRecording","PauseCircleFilledRoundedIcon","finishRecording","deSelectLine","ThumbUpAltRoundedIcon","recordNext","coins","backToLanding","recordingUpdatedOverlay","turnOffCamera","mediaStream","playbackEnded","defineRecorder","flipTarget","isPauseTarget","millis","minutes","seconds","toFixed","transitionBetweenRecordings","sentenceVideos","initializeRecorderFunc","RecorderWikiLayer","PlayerContainer","currRecording","pointsMod","recId","isVideoLoaded","currentVoteUp","voteUpCount","currentVoteDown","voteDownCount","currentVideoSelection","currentTargetId","allVotes","userVoteStatus","voteUp","voteDown","FormGroup","FormControlLabel","Switch","thumbStyle","trackStyle","autoReadMode","toggleAutoRead","Player","PlayerWikiLayer","playLock","resetPlayer","readMethods","decreasePlaybackSpeed","increasePlaybackSpeed","timeout","doesNextVideoExist","doesNextRecordingExist","readNext","doesPrevRecordingExist","secI","senI","inx","SkipPreviousRoundedIcon","ReplayRoundedIcon","SkipNextRoundedIcon","IndeterminateCheckBoxRoundedIcon","AddBoxRoundedIcon","ViewBlocker","isDisplayBlocked","WikiContainer","unescape","detail","readVideoMethods","loadVideoCollection","isPainted","loadNextSentenceVideo","genDefaultHighlightState","previous","sentences","readHighlightState","recordHighlightState","wikiStructure","sentenceRecordings","recordings","currentSectionRecordings","readNextVideo","sectionRecordings","targetSentence","sort","a","b","localeCompare","setTextBackground","sentenceId","sentState","bestSelectedIndex","selectBestVideo","preferredUser","section","indexNextRecording","preferredUserId","checkIfPreferredUserAvailable","findUserWithMostConsecutiveRecordings","isSelected","identifyNextViableIndex","isViableVideoFound","recs","userFoundInLoop","nextViableSentenceIndex","nextViableSectionIndex","sentenceRecordingslength","structureWikiHTML","recordNextVideo","cancelOverride","beginSectionRecord","clearRecordState","userRecording","tryFindUserRecording","setRecorderRef","recording","updatedWikiStructure","replaceTarget","prevBack","j","onMouseOver","switchColor","onMouseOut","switchColorRev","headerTitle","LocalMoviesRoundedIcon","s_id","generateClassName","dangerouslySetInnerHTML","__html","formattedSentences","debounceSearchText","clearPrevState","topicId","getContentTopicInfo","refs","wikiframe","srcdoc","topicOptions","inputValue","contentTopics","contentTopic","contentTopicsList","selectedTopicTextId","showWikiInfo","splashView","wikiContent","enhancedHTML","contentTopicSentences","contentTopicInfo","getSelectedTextInfo","selectedTextId","contentTopicVideos","currVideo","isInitialOverrideSelection","switchSelectedUser","updateSelectedVideoState","targetIndex","switchVideo","vi","update","setValue","selectedCategories","transitionNewTab","categories","toggleWiki","clickTransition","wikiVideoOptions","canViewWiki","addEventListener","tryClick","tryRecordingPaint","paintUserPreviouslyRecordedVideos","term","unSetTextBackground","targetId","elem","removeAttribute","isTemp","hasAttribute","userIndices","hasOwnProperty","continuityBrokenAtIndex","clen","continuity","keys","sorted","entries","sr","currentUID","rec","generateRecordingStatus","paintSentence","k","sid","clearHighlights","rhs","resetHighlights","titles","categories4","sentenceCount","categorySelections","cat","showBlocker","ArrowLeftRoundedIcon","playFirst","playPrevious","playLast","Wikipedia","AdminDashboardContainer","userAccountTypes","a11yProps","focusVideo","selectedVideo","focusModelVideo","selectedModelVideo","changeStyle","parentNode","currentElement","renderModelVidUI","renderVidUI","uName","processDefaultDisplayList","queryData","uvids","handleAccountInputChange","loadFlaggedVideos","initialize","valueTab","activePage","pendingVideos","pendingVideosCount","updateTotalItemsCount","approvedVideos","approvedVideosCount","flaggedVideos","flaggedVideosCount","dateStart","startDate","dateEnd","endDate","processListGroupByOption","performModelQuery","processModelList","updateModelQueryResults","handleDateStart","handleDateEnd","flipByUserObj","byUserObj","renderUserUI","flipBySignObj","bySignObj","renderSignUI","signsList","toLowerCase","bySignUI","loadList","RemoveCircleRoundedIcon","videoArr","videoListUI","autoplay","videoListing","userList","byUserUI","processModelDisplayList","mvids","processSignDisplayList","processUserDisplayList","selectedGroup","selectGroupByOption","closeModelVideo","toggleAdminMode","isAdminMode","approveAllVideos","confirmVideo","isApproved","vids","ids","modder","hasPlayed","v","totalItemsCount","newValue","handlePageChange","pageNumber","mapPendingVideos","isHandled","mapApprovedVideos","mapFlaggedVideos","AppBar","Tabs","Tab","itemsCountPerPage","pageRangeDisplayed","dateFormat","StatsDashboardContainer","loadTargetUserStudy","pullUserStatsSearchOptions","pullWikiStatsSearchOptions","targetStructuredUserData","targetStructuredGeneralData","targetStructuredWikiData","searchTextWiki","arOptions","userArticleDisplay","wikiArticlesDisplay","showUserLoader","loadTargetUserStudyUser","handleSearchInputChangeWiki","dropdownSelectOptionsWiki","loadTargetUserStudyWiki","targetArticle","userType","article","genArticleDisplay","targetUser","targetUserStudy","generalStats","generateSearchOptionsWiki","setDropdownStateWiki","searchWikiVisible","getOptionsWiki","searchWikiPlaceholder","seedCoverage","covg","generalUserList","userEmail","userArticles","soa_k","soa","numberOfCompletedWikiSentences","numberOfClaimedArticles","generalArticleList","numberOfSentences","recordingsCount","userStudyType","numberOfArticlesOpened","percentageArticleCompletion","numberOfSentencesBelongingToArticlesStarted","numberOfSentencesCompleted","APIDashboardContainer","getSupportedActions","downloadDBBackup","allowedActions","backupJSON","targetCollection","download2021DictionaryCSV","d2021DCSV","downloadWikiCSV","dWikiCSV","generateAllTypeButtons","generateFullAdminRangePerType","typeName","allowedActionsView","aa","browserHistory","createBrowserHistory","basename","reactPlugin","ReactPlugin","ApplicationInsights","instrumentationKey","extensions","extensionConfig","identifier","loadAppInsights","AppContainer","items","checkForFlaggedUser","avertViolationsCount","cvsViolationsCount","blockedAccount","getRecordingsCount","userAccess","userAccessLevels","loggedInUserLevel","isUserLoggedIn","loggedInUserName","updateUserAccountType","loggedInAccountType","updateUserToken","userToken","updateUserEmail","updateUserName","onProfileImgChanged","imgUrl","updateLoggedInUserName","updateLoggedInThirdPartyUserId","loggedInThirdPartyUserId","updateCurrentUserLevel","uLevel","updateSelectedUserDetails","selectedEmail","selectedUserId","setPageHeaderState","homeSubnav","mainTitle","showPageHeader","setTopLevelState","handleStayInTouchChange","inpt","stayInTouchSignup","setUserCookieConsent","cookieConsent","updateMSUserAuthStatus","updateUserAuthStatus","totalUserRecordings","customFilter","option","ErrorFallback","resetErrorBoundary","locationString","isEUGeo","isTokenVerificationComplete","loggedInUserParticipatingGroups","isGroupSignIn","signedInGroup","mappedSelections","verifyStudyCodeExists","otherProfile","socialMedialLinks","WcpConsent","init","_siteConsent","isEU","isConsentRequired","rLocation","route","categoryPreferences","themes","onInitCallback","Analytics","Advertising","SocialMedia","unlisten","Container","userAccessLevel","ErrorBoundary","FallbackComponent","onReset","HttpErrorModal","groupSignIn","isOwnedGroup","groups","h3","Route","setCookieConsent","updateUserId","Logout","App","ReactDOM","Provider","store","BrowserRouter","serviceWorker","registration","unregister"],"mappings":"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","file":"static/js/main.d3adea86.chunk.js","sourcesContent":["// Microsoft Login Config\r\nmodule.exports = {\r\n msAuthConfig:{\r\n clientId: 'cf7087d6-8df3-464e-8175-de980eb23b70',\r\n scopes: [\r\n 'user.read',\r\n 'calendars.read'\r\n ],\r\n redirectUri: process.env.REACT_APP_CLIENT_URL_MSFT\r\n },\r\n // googleAuthConfig:{\r\n // clientId:'152340878085-4gmhgu0po35uv36899qeifo8fea4ec2f.apps.googleusercontent.com',\r\n // redirectUri:'http://localhost:3000'\r\n // },\r\n fbAuthconfig:{\r\n\r\n }\r\n \r\n};","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' || window.location.hostname.includes(\"localhost\")\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n // window.location.hostname.match(\r\n // /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n // )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","let nextTodoId = 0\r\nexport const updateScore = (increment, userid, apiClient) => {\r\n return ({\r\n type: 'UPDATE_SCORE',\r\n points: increment\r\n })\r\n \r\n const targetUrl = \"/gamify/updateScore\";\r\n const values = {\r\n increment: increment, userid: userid\r\n };\r\n\r\n apiClient.postJSON(this, targetUrl, values).then((res) => {\r\n\r\n });\r\n\r\n}\r\n\r\nexport const populateStore = (userAccount) => {\r\n return ({\r\n type: 'POPULATE_STORE',\r\n account: userAccount\r\n})};\r\n\r\nexport const requestFailedModal = (val) => {\r\n return ({\r\n type: 'REQUEST_FAILED',\r\n modalOn: val\r\n });\r\n};","const populateStore = (state = {}, action) => {\r\n \r\n switch (action.type) {\r\n case 'POPULATE_STORE':\r\n return {\r\n ...state,\r\n user: action.account\r\n }\r\n case 'REQUEST_FAILED':\r\n \r\n return {\r\n ...state,\r\n reqFailedModal: action.modalOn\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default populateStore","const incrementXP = (state = {}, action) => {\r\n \r\n switch (action.type) {\r\n case 'UPDATE_SCORE':\r\n \r\n return {\r\n ...state,\r\n userXPIncrement: (state.userXPIncrement || 0) + action.points\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default incrementXP","import { combineReducers } from 'redux'\r\nimport populateStore from './populateStore'\r\nimport incrementXP from './incrementXP'\r\n\r\nexport default combineReducers({\r\n incrementXP,\r\n populateStore\r\n})","import {\r\n combineReducers,\r\n createStore,\r\n } from 'redux';\r\nimport rootReducer from '../reducers';\r\n\r\nfunction configureStore(initialState = {}) {\r\n const store = createStore(rootReducer, initialState);\r\n return store;\r\n};\r\n\r\nexport default configureStore();","import store from '../store/accountInfo.js';\r\n\r\nexport default class ApiClient {\r\n\r\n getCSV = async (routeName, queryString = \"\") => {\r\n \r\n var url = process.env.REACT_APP_SERVER_URL + routeName + queryString;\r\n let response = await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n authorization: localStorage.getItem(\"jwtToken\")\r\n }\r\n });\r\n\r\n let json = await response.json();\r\n\r\n // Reauthenticate via login page\r\n if (response.status === 200) {\r\n\r\n let csvContent = \"data:text/csv;charset=utf-8,\";\r\n json.data.forEach(function (rowArray) {\r\n let row = rowArray.join(\",\");\r\n csvContent += row + \"\\r\\n\";\r\n });\r\n var encodedUri = encodeURI(csvContent);\r\n var link = document.createElement(\"a\");\r\n link.setAttribute(\"href\", encodedUri);\r\n link.setAttribute(\"download\", json.fileName + \".csv\");\r\n document.body.appendChild(link);\r\n\r\n return link;\r\n }\r\n else if (response.status === 401) {\r\n return { isLoggedOut: true }\r\n }\r\n else if (response.status === 403) {\r\n localStorage.removeItem(\"jwtToken\")\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n }\r\n else {\r\n throw Error(\"Failed to connect to server\");\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n getJSONFile = async (routeName, queryString = \"\") => {\r\n \r\n var url = process.env.REACT_APP_SERVER_URL + routeName + queryString;\r\n let response = await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n authorization: localStorage.getItem(\"jwtToken\")\r\n }\r\n });\r\n\r\n let jsonRes = await response.json();\r\n \r\n // Reauthenticate via login page\r\n if (response.status === 200) {\r\n \r\n const fileName = jsonRes.fileName;\r\n \r\n const jsonData = jsonRes.data;\r\n const blob = new Blob([jsonData],{type:'application/json'});\r\n const href = await URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = href;\r\n link.download = fileName + \".json\";\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n \r\n }\r\n else if (response.status === 401) {\r\n return { isLoggedOut: true }\r\n }\r\n else if (response.status === 403) {\r\n localStorage.removeItem(\"jwtToken\")\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n }\r\n else {\r\n throw Error(\"Failed to connect to server\");\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n getJSON = async (self, routeName, queryString = \"\") => {\r\n \r\n try {\r\n let responseStatus = 500;\r\n let retryCount = 0;\r\n let reqRes = undefined;\r\n while (responseStatus.toString()[0] === \"5\" && retryCount < 5) {\r\n \r\n reqRes = await new Promise(async (resolve, reject) => {\r\n var url = process.env.REACT_APP_SERVER_URL + routeName + queryString;\r\n let response = await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n authorization: localStorage.getItem(\"jwtToken\")\r\n }\r\n });\r\n let json = await response.json();\r\n // Reauthenticate via login page\r\n if (response.status === 200 || response.status === 217) {\r\n responseStatus = 200;\r\n resolve(json);\r\n }\r\n else if (response.status === 401) {\r\n responseStatus = 401;\r\n resolve({ isLoggedOut: true })\r\n }\r\n else if (response.status === 403) {\r\n localStorage.removeItem(\"jwtToken\")\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n responseStatus = 200;\r\n resolve({})\r\n }\r\n else {\r\n responseStatus = response.status;\r\n resolve({})\r\n }\r\n });\r\n retryCount += 1;\r\n // Wait 500 ms before next retry to give servers time in their regeneration alcove\r\n if (responseStatus.toString()[0] === \"5\") {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({})\r\n }, 500);\r\n });\r\n }\r\n }\r\n\r\n\r\n if (self && responseStatus.toString()[0] === \"5\") {\r\n self.props.dispatch(self.props.requestFailedModal(true));\r\n setTimeout(() => {\r\n self.props.dispatch(self.props.requestFailedModal(false));\r\n }, 7000);\r\n return {\r\n httpServerError: true\r\n }\r\n\r\n }\r\n\r\n return reqRes;\r\n }\r\n catch (e) {\r\n if (self) {\r\n self.props.dispatch(self.props.requestFailedModal(true));\r\n\r\n setTimeout(() => {\r\n \r\n self.props.dispatch(self.props.requestFailedModal(false));\r\n }, 7000);\r\n }\r\n\r\n return {\r\n httpServerError: true\r\n }\r\n }\r\n }\r\n\r\n postJSON = async (self, routeName, body, isForm) => {\r\n try {\r\n \r\n let uniqueness = (Math.random() + (new Date()).getTime());\r\n var url = process.env.REACT_APP_SERVER_URL + routeName;\r\n let response = undefined\r\n\r\n let responseStatus = 500;\r\n let retryCount = 0;\r\n let reqRes = undefined;\r\n\r\n while (responseStatus.toString()[0] === \"5\" && retryCount < 5) {\r\n if (retryCount === 0 && isForm) {\r\n body.append(\"uniqueness\", uniqueness);\r\n }\r\n else if (retryCount === 0 && !isForm) {\r\n body[\"uniqueness\"] = uniqueness;\r\n }\r\n\r\n reqRes = await new Promise(async (resolve, reject) => {\r\n if (isForm) {\r\n response = await fetch(url, {\r\n method: 'POST',\r\n headers: new Headers({ \"Authorization\": `${localStorage.getItem(\"jwtToken\")}` }),\r\n body: body,\r\n });\r\n }\r\n else {\r\n response = await fetch(url, {\r\n method: 'POST',\r\n body: JSON.stringify(body),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n authorization: localStorage.getItem(\"jwtToken\")\r\n }\r\n });\r\n }\r\n \r\n\r\n let json = await response.json();\r\n \r\n if (response.status === 200 || response.status === 217) {\r\n responseStatus = 200;\r\n resolve(json);\r\n }\r\n else if (response.status === 401) {\r\n responseStatus = 401;\r\n resolve({ isLoggedOut: true })\r\n }\r\n else if (response.status === 403) {\r\n localStorage.removeItem(\"jwtToken\")\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n responseStatus = 200;\r\n resolve({})\r\n }\r\n else {\r\n responseStatus = response.status;\r\n resolve({})\r\n }\r\n });\r\n\r\n retryCount += 1;\r\n // Wait 500 ms before next retry to give servers time in their regeneration alcove\r\n if (responseStatus.toString()[0] === \"5\") {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({})\r\n }, 500);\r\n });\r\n }\r\n }\r\n\r\n if (responseStatus.toString()[0] === \"5\") {\r\n \r\n self.props.dispatch(self.props.requestFailedModal(true));\r\n setTimeout(() => {\r\n self.props.dispatch(self.props.requestFailedModal(false));\r\n }, 7000)\r\n return {\r\n httpServerError: true\r\n }\r\n\r\n }\r\n\r\n return reqRes;\r\n }\r\n catch (error) {\r\n \r\n self.props.dispatch(self.props.requestFailedModal(true));\r\n setTimeout(() => {\r\n self.props.dispatch(self.props.requestFailedModal(false));\r\n }, 7000);\r\n return {\r\n httpServerError: true\r\n }\r\n }\r\n\r\n }\r\n\r\n}","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAE+0lEQVRoge2YO28cVRTHf+fOYx/ZdRJiJwakNBESIg0SkVKBSKBAKShAiCZfgccnoCCfIBIfINBCCgrookjuIDQUpAkGCoKTmDjWem3vzM7cQzEz69mdWe+udzYNPtLVvO6Zc/73nHvOfwaO5Vj+3yLPw4g+YAm4YoU3BS6iXACWUVrplC7KJsofKvxmlDXgrrzKzqR3LxSA/slla/lc4AMUP7mZPRx/lOQYArdRbspFfhpnYyEA9AFL1uErUa4DggIxEIBE6bkCNueFAE463JxnigLf4PJJWUQqB6DrnFTDHSxvANAH2U2OM4kD1ABDFp1fqPOOvEInP83M7fGIWOHGwPkAZJvZnYckSns5XeUSPb4cnVY5AFE+Sg0i3QpeGHKwPywfjz6uPgIhqwODVSaogo1YHb1dOYBgywwManPOlwngM4hA1C2uSPUAHgnRbmrIA10iqSqziuFgEwM2gGi7COAorz5URGFv3VB/2eKfVnBA2ySbsp+WUZuOfKpJ6qwhqUBy8DzuQrgliCijUjkAp6ZoH8KHQrwluGcUr62JYz4HKTGpoVmI9yDeETRM1MUr2qscgH9KiZ4modYAon+E2BFMU3EaIJ5i3MTyICEsaAzaBw3BBoIGB2Aknei0nweAswr7YHs5BxXYS1Z0tDTJIZVKcidSA/PCc0ghBPzzSvxYiDs5R8Y4KmMvMg4Cpg1muVy/cgD7XXBr4JxVvFNgnwm6C+N6g1Bc1WxTywkwSyAJDcSGxamVA9h8aGidtXguOAa8M4q3AvRAe8m+IALNVSFJiZy4gAdST0aO0IFmfWAY8FQAZuHzT/9W4p7QU8UxUPPB95Kj28g5VGpo/LXtQbRVBHBos5+Hz6uF/R50d8EqNOpQ86BemwFAKvEOhE8FFJrv65DPpRHI+LxarssR+bwINOvQrMHePmzvgK0nOvXaFM5r2gc6M/aBjM/LLHw+a0w2Ny/H55t1cBSebAjaUpw2uH6uhCpolI7+nH3ACjckz+c7BZ3pJOPztcRKrQ5LLaWzIZhtaPjDzpXJNH2gQOYWyedbJyGKQTVxXOQg+4TcvcFQRBSnrbgvaemGLUYgZNVkuVYxn8+vdnZeeR8ItgyNc3bA52Xij41DpITPm7piPBCH4Ryvqg8EjwSvJbhNHfB52QOiGZ3P2GfqRMbnnZV0E5d97ByhDxQALJzPZxWrrOZP6ANl6VYAsHA+Pw5AVX1g0Xw+3gKtJWMhfWDRfD76XQgDCLePpj8RwKL5fL7OH0V/IgAbgvHAWVXMAvh8vmnNqo/ycCKA4JmhsZKwNPHBOadJxamIz8/TBxC+mwzgieCfENyGDq96A6QCPn/UPoByjxpfjKqUcSF2/zKEz2S45M0x4g4EG2kdn11fsdzCcHX0zzSURMAY3QBeDB4J0bbgnVa8lg6Hs0ymqOPWJAskY+aPSADcxnJTXufnMVbLAPCtwKeQ1PT+YyH6VzANxamDuEkO48xex2OHX41h08B5lGUY+SSFdeA+sIbLXbnIRD5cKI76I0v7fbmDcCn/cFy9nraOA/c80XflWjEN5pHiHrhGp4FedUS+FkFFwBR4+kx8Xg16y2vq1aqdhwmMP/yBy6rmM0E/hPSjfto+AIHCbQw3/ffG5/C8MtUni35PO/Z4W+EtLK8hXEBYIc1hga7CpsC6wn2BNafBXbkyOYeP5ViOZT75D8PSujxLAbsEAAAAAElFTkSuQmCC\"","import React from 'react'\r\n\r\nconst PointsTotal = (state) => {\r\n \r\n if (state.user) {\r\n return (\r\n \r\n {state.user.xpPoints + (state.userXPIncrement || 0)}\r\n \r\n )\r\n }\r\n return (0)\r\n }\r\n\r\nexport default PointsTotal","import { connect } from 'react-redux'\r\nimport PointsTotal from './PointsTotal'\r\n\r\nconst mapStateToProps = state => {\r\n return({\r\n user: state.populateStore.user,\r\n userXPIncrement: (state.incrementXP.userXPIncrement)\r\n })\r\n}\r\n\r\nexport default connect(mapStateToProps)(PointsTotal)","import React from \"react\";\r\nimport {\r\n Collapse,\r\n Navbar,\r\n NavbarToggler,\r\n NavbarBrand,\r\n Nav,\r\n div,\r\n Dropdown, DropdownToggle, DropdownMenu, DropdownItem\r\n} from \"reactstrap\";\r\nimport { NavLink, Link } from 'react-router-dom';\r\nimport { PropTypes } from 'prop-types';\r\nimport cookie from \"react-cookies\";\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { MdModeEdit } from \"react-icons/md\";\r\nimport DuoRoundedIcon from '@material-ui/icons/DuoRounded';\r\nimport AccountBoxRoundedIcon from '@material-ui/icons/AccountBoxRounded';\r\nimport coins from '../../resources/coins.png';\r\nimport VisiblePointsTotal from '../gamification/VisiblePointsTotal';\r\nimport ReactDropdown from 'react-dropdown';\r\nimport 'react-dropdown/style.css';\r\nimport AccountCircleRoundedIcon from '@material-ui/icons/AccountCircleRounded';\r\n\r\n// const options = [\r\n// 'Explore', 'Record', 'Verify', 'Vocabulary'\r\n// ];\r\n\r\n// const options = [\r\n// 'Record'\r\n// ];\r\n\r\nclass TopNavContainer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.toggle = this.toggle.bind(this);\r\n this.dropDownMenu = React.createRef();\r\n this.toggleUserDropdown = this.toggleUserDropdown.bind(this);\r\n this.state = {\r\n isOpen: false,\r\n isDropdownOpen: false,\r\n defaultProfileImg: 'profile.svg',\r\n signedInGroupId: \"\",\r\n activeLink: false\r\n };\r\n this.FB = window.FB;\r\n this.style = {\r\n light: \"ffffff\"\r\n };\r\n\r\n this.personURL = this.props.profileImg;\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleShow = this.handleShow.bind(this);\r\n }\r\n\r\n textDecoration = {\r\n textDecoration: \"underline\"\r\n }\r\n\r\n componentDidMount() {\r\n\r\n // Set active state of dropdown\r\n if (window.location.pathname.includes(\"verify\") || window.location.pathname.includes(\"record\") || window.location.pathname.includes(\"explore\")) {\r\n this.setState({ activeLink: true })\r\n }\r\n\r\n this.apiClient.getJSON(this, \"/getUser/byId\")\r\n .then((res) => {\r\n if (res && res.status) {\r\n if (!res.isLoggedOut) {\r\n this.setState({ user: res.data });\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n });\r\n\r\n }\r\n componentWillReceiveProps(props) {\r\n if (!this.state.user) {\r\n\r\n this.apiClient.getJSON(this, \"/getUser/byId\")\r\n .then((res) => {\r\n if (res && res.status) {\r\n if (!res.isLoggedOut) {\r\n this.setState({ user: res.data });\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n });\r\n }\r\n }\r\n\r\n logout = async () => {\r\n localStorage.removeItem(\"jwtToken\");\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n };\r\n\r\n toggle() {\r\n this.setState(prevState => ({\r\n isOpen: !prevState.isOpen\r\n }));\r\n }\r\n\r\n toggleUserDropdown2 = (state) => {\r\n if (state) {\r\n this.setState(prevState => ({\r\n isDropdownOpen: state\r\n }));\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.setState(prevState => ({\r\n isDropdownOpen: state\r\n }));\r\n }, 100);\r\n }\r\n\r\n }\r\n\r\n toggleUserDropdown() {\r\n this.setState(prevState => ({\r\n isDropdownOpen: !prevState.isDropdownOpen\r\n }));\r\n }\r\n responseFacebook = (response) => {\r\n\r\n }\r\n\r\n handleClose() {\r\n this.setState({ show: false });\r\n }\r\n\r\n handleShow() {\r\n this.setState({ show: true });\r\n }\r\n\r\n getApplicationNode = () => {\r\n return document.getElementById('root');\r\n };\r\n\r\n handleClick = (url, name, description) => {\r\n this.FB.ui(\r\n {\r\n method: 'feed',\r\n name: name,\r\n link: url,\r\n picture: '',\r\n caption: 'ASL',\r\n description: description,\r\n message: \"\"\r\n });\r\n }\r\n\r\n\r\n navigateTo(url) {\r\n if (url !== \"/verify\" && url !== \"/record\" && url !== \"/explore\" && url !== \"/vocab\") {\r\n this.setState({ activeLink: false })\r\n }\r\n this.props.history.push(url)\r\n }\r\n\r\n onDropdownSelect = (selection) => {\r\n let targetUrl = \"\"\r\n switch (selection.label) {\r\n case 'Explore':\r\n targetUrl = \"/explore\";\r\n break;\r\n case 'Record':\r\n targetUrl = \"/record\";\r\n break;\r\n case \"Verify\":\r\n targetUrl = \"/verify\";\r\n break;\r\n case 'Vocabulary':\r\n targetUrl = \"/vocab\";\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setState({ activeLink: true });\r\n this.navigateTo(targetUrl);\r\n }\r\n\r\n render() {\r\n this.links = [\r\n {\r\n text: \"Explore\",\r\n url: \"/explore\"\r\n },\r\n {\r\n text: \"ASL Wiki\",\r\n url: \"/wiki\"\r\n },\r\n {\r\n text: \"About\",\r\n url: \"/info\"\r\n },\r\n {\r\n text: ,\r\n url: '/profile',\r\n className: 'userinfo',\r\n user: true\r\n }\r\n ];\r\n\r\n\r\n const defaultOption = \"Dictionary\"\r\n\r\n //const loginClass = this.props.disableLogin ? \"nav-anchorLink disabled\" : \"nav-anchorLink\";\r\n const navLinks = this.links.map((item, index) => {\r\n if (!item.user) {\r\n return (\r\n
\r\n this.navigateTo(item.url)} aria-current=\"page\">\r\n {item.text}\r\n \r\n
\r\n )\r\n } else if (item.user) {\r\n if (this.state.user) {\r\n return (
this.toggleUserDropdown2(true)}>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.toggleUserDropdown2(false);\r\n }} tag={Link} to=\"/userProfile\" aria-label=\"MyProfilelink\">\r\n My Profile\r\n \r\n\r\n this.logout()} aria-label=\"Signoutlink\">\r\n Sign out\r\n \r\n \r\n \r\n
\r\n {this.state.user && this.state.user.userName}\r\n
\r\n
\r\n
\r\n \r\n {/* \r\n \r\n \r\n */}\r\n \r\n {/* XP */}\r\n \r\n \r\n
\r\n
)\r\n } else {\r\n return (\r\n
\r\n
this.props.history.push(\"/tpLogin\")} aria-label=\"Login/Signup Link\">\r\n Sign in\r\n
\r\n
\r\n )\r\n }\r\n }\r\n })\r\n return (\r\n \r\n
this.navigateTo(\"/\")}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n {navLinks.slice(0, navLinks.length - 1)}\r\n
\r\n {navLinks[navLinks.length - 1]}\r\n {/* \r\n \r\n Delete Account\r\n \r\n Are you sure you want to delete your account? All of your videos and other data will be deleted, and will not be recoverable. Click yes to continue.\r\n \r\n \r\n \r\n \r\n */}\r\n
\r\n );\r\n }\r\n}\r\n\r\nTopNavContainer.propTypes = {\r\n video: PropTypes.object\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst TopNav = withRouter(connect(\r\n \r\n mapDispatchToProps\r\n)(TopNavContainer));\r\n\r\nexport default TopNav;\r\n","import config from \"../../config/Config\";\r\nimport { UserAgentApplication } from 'msal';\r\nexport default class MicrosoftAuthService{\r\n constructor(){\r\n this.userAgentApplication = new UserAgentApplication({\r\n auth: {\r\n clientId: config.msAuthConfig.clientId,\r\n redirectUri:config.msAuthConfig.redirectUri,\r\n postLogoutRedirectUri:config.msAuthConfig.redirectUri\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\",\r\n storeAuthStateInCookie: true\r\n }\r\n });\r\n }\r\n\r\n getMicrosoftAccount = () =>{\r\n return this.userAgentApplication.getAccount();\r\n }\r\n\r\n logOut = () => {\r\n this.userAgentApplication.logout();\r\n }\r\n\r\n logIn = () => {\r\n var agent = this.userAgentApplication;\r\n return new Promise(function(resolve, reject){\r\n const loginRequest = {\r\n scopes: [\"https://graph.microsoft.com/User.Read\"]\r\n }\r\n agent.loginPopup(loginRequest).then(function (loginResponse) {\r\n if(loginResponse){\r\n resolve(loginResponse);\r\n }else{\r\n reject(\"unable to login\");\r\n }\r\n \r\n }).catch(function (error) {\r\n });\r\n });\r\n \r\n }\r\n\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Row, Col } from \"reactstrap\";\r\nimport FacebookLogin from \"react-facebook-login\";\r\nimport MicrosoftAuthService from \"../../services/auth/MicrosoftAuthService\";\r\nimport { MicrosoftLoginButton } from \"react-social-login-buttons\";\r\nimport { Modal } from 'react-bootstrap';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport axios from \"axios\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass ThirdPartyLoginContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n userid: '',\r\n isSignedIn: false,\r\n isFirefox: false,\r\n loginConsentType: \"2021DictionaryUserStudy\",\r\n email: '',\r\n show: false,\r\n userCookieConsent: this.props.userCookieConsent\r\n }\r\n this.handleShow = this.handleShow.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n componentWillReceiveProps(props) {\r\n\r\n this.setState({ userCookieConsent: props.userCookieConsent });\r\n }\r\n\r\n async componentDidMount() {\r\n let userAgent = window.navigator.userAgent\r\n\r\n if (userAgent.indexOf(\"Firefox\") > -1) {\r\n \r\n this.setState({ isFirefox: true });\r\n }\r\n else {\r\n \r\n this.setState({ isFirefox: false });\r\n }\r\n let pth = window.location.pathname;\r\n\r\n if (pth.includes(\"dynamic-signup-form/user/TestUser\")) {\r\n await this.setState({ loginConsentType: \"2021DictionaryUserStudy\" })\r\n }\r\n else if (pth.includes(\"dynamic-signup-form/user/2021DictionaryUserStudy\")) {\r\n await this.setState({ loginConsentType: \"2021DictionaryUserStudy\" })\r\n }\r\n else if (pth.includes(\"dynamic-signup-form/user/2021WikiUUserStudy\")) {\r\n await this.setState({ loginConsentType: \"2021DictionaryUserStudy\" })\r\n }\r\n else if (pth.includes(\"dynamic-signup-form/user/2021WikiPUserStudy\")) {\r\n await this.setState({ loginConsentType: \"2021DictionaryUserStudy\" })\r\n }\r\n }\r\n\r\n onSuccess() {\r\n this.setState({\r\n isSignedIn: true\r\n })\r\n }\r\n\r\n getContent() {\r\n if (this.state.isSignedIn) {\r\n return

hello user, you're signed in

\r\n } else {\r\n return (\r\n
\r\n

You are not signed in. Click here to sign in.

\r\n \r\n
\r\n )\r\n }\r\n\r\n }\r\n\r\n auth2;\r\n\r\n responseGoogleD = (response) => {\r\n\r\n var encod = \"?response_type=permission%20id_token&scope=profile%20email&openid.realm&redirect_uri=\"\r\n + encodeURI(process.env.REACT_APP_SERVER_URL + \"/google-auth?accountType=\" + this.state.loginConsentType)\r\n + \"&client_id=152340878085-4gmhgu0po35uv36899qeifo8fea4ec2f.apps.googleusercontent.com&ss_domain=\"\r\n + encodeURI(process.env.REACT_APP_SERVER_URL)\r\n + \"&gsiwebsdk=2&flowName=GeneralOAuthFlow\"\r\n\r\n\r\n\r\n\r\n\r\n var full = \"https://accounts.google.com/o/oauth2/auth/oauthchooseaccount\" + encod;\r\n window.location.href = full;\r\n\r\n\r\n }\r\n\r\n marginBottom = {\r\n marginBottom: \"20px\"\r\n }\r\n\r\n googleStyling = {\r\n border: \"1px solid grey\"\r\n }\r\n\r\n video = {\r\n width: \"100%\",\r\n position: \"relative\",\r\n display: \"block\",\r\n margin: \"0 auto\"\r\n }\r\n\r\n videoplaceholder = {\r\n maxWidth: \"350px\"\r\n }\r\n\r\n cookieText = {\r\n fontSize: \"30px\",\r\n fontWeight: \"500\"\r\n }\r\n\r\n handleShow() {\r\n this.setState({ show: true });\r\n }\r\n\r\n handleClose() {\r\n this.setState({ show: false });\r\n }\r\n\r\n\r\n responseFacebook = (data, err) => {\r\n this.universalLogin(data.email, data.signedRequest, \"facebook\", data.accessToken);\r\n };\r\n\r\n responseGoogle = async (response) => {\r\n\r\n const config = {\r\n headers: { Authorization: `Bearer ${response.access_token}` }\r\n };\r\n\r\n let res = await axios.get(\"https://www.googleapis.com/oauth2/v1/userinfo?alt=json\", config);\r\n\r\n };\r\n\r\n reestablishUserAccount = () => {\r\n return new Promise(async (resolve, reject) => {\r\n\r\n const res = await this.apiClient.postJSON(null, \"/deleteUserAccount/reestablish\");\r\n if (res && res.status) {\r\n if (res.status === 200) {\r\n resolve(true)\r\n }\r\n else {\r\n reject(false)\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n\r\n })\r\n }\r\n\r\n // Facebook and Microsoft which don't have tokens\r\n universalLogin = async (email, ssoToken, signinType, facebookAccessToken = \"\") => {\r\n\r\n let self = this;\r\n let localToken = localStorage.getItem(\"jwtToken\");\r\n let generatedToken = \"\";\r\n // Account exists and token present\r\n if (localToken !== null) {\r\n // Handle case where account exists \r\n\r\n const resT = await this.apiClient.getJSON(this, '/getUser/requestSignedToken', \"?jwtToken=\" + localToken + \"&signinType=\" + signinType + \"&email=\" + email + \"&access_token=\" + facebookAccessToken);\r\n\r\n if (!resT) {\r\n return;\r\n }\r\n\r\n generatedToken = resT.generatedToken;\r\n // If Account already exists, redirect to homepage\r\n if (resT && resT.user) {\r\n // Ensure that user jwt token exists, plant new one in case of sign out\r\n localStorage.setItem('jwtToken', generatedToken);\r\n const appRoot = process.env.REACT_APP_CLIENT_URL;\r\n window.location.href = appRoot\r\n }\r\n }\r\n else {\r\n // Handle case where no local token\r\n const tokenDataR = await this.apiClient.getJSON(this, '/getUser/requestSignedToken', \"?jwtToken=\" + ssoToken + \"&signinType=\" + signinType + \"&email=\" + email + \"&access_token=\" + facebookAccessToken);\r\n const tokenData = tokenDataR.data;\r\n const { isAccountReestablished } = tokenData;\r\n if (isAccountReestablished) {\r\n alert(\"We noticed you are logging into an account in the process of being deleted. If this is a mistake, please feel free to re-request account deletion again. You can create a fresh account by switching social providers.\")\r\n }\r\n\r\n // No Account found\r\n if (!tokenData.user) {\r\n\r\n this.props.history.push(\"/tpSignUp\", {\r\n email: tokenData.email,\r\n loginConsentType: this.state.loginConsentType,\r\n urlToken: tokenData.jwtToken,\r\n facebook_id: tokenData.facebook_id,\r\n signinProvider: signinType,\r\n oldJWTToken: tokenData.oldJWTToken,\r\n access_token: facebookAccessToken\r\n });\r\n }\r\n else {\r\n localStorage.setItem(\"jwtToken\", tokenData.jwtToken)\r\n if (isAccountReestablished) {\r\n this.reestablishUserAccount().then((reRes) => {\r\n if (reRes) {\r\n // If Account already exists, but not token, redirect to homepage and set local token\r\n localStorage.setItem(\"jwtToken\", tokenData.jwtToken)\r\n window.location.href = process.env.REACT_APP_CLIENT_URL;\r\n }\r\n else {\r\n alert(\"Something went wrong, please contact us\")\r\n }\r\n })\r\n }\r\n else {\r\n // If Account already exists, but not token, redirect to homepage and set local token\r\n window.location.href = process.env.REACT_APP_CLIENT_URL;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // if (msToken) {\r\n // alert(\"tokenAvailable\")\r\n // const tokenData = await this.apiClient.getJSON(this,'/getUser/requestSignedToken', \"?jwtToken=\" + localToken);\r\n // if (!tokenData) {\r\n // // throw \"Something Went Wrong\"\r\n // }\r\n // if (!tokenData.user) {\r\n // this.props.history.push(\"/profile\", {\r\n // email: email,\r\n // urlToken: tokenData.jwtToken\r\n // });\r\n // }\r\n // else {\r\n // localStorage.setItem()\r\n // }\r\n // }\r\n // // Create new account\r\n // else {\r\n // // Reroute to generate account view TODO Refactor this ugly API code\r\n // let tokenData = await this.apiClient.getJSON(this,'/getUser/generateFBMSFTTempLoginToken?email=' + email);\r\n // if (!tokenData) {\r\n // // throw \"Something Went Wrong\"\r\n // }\r\n // if (!tokenData.user) {\r\n // this.props.history.push(\"/profile\", {\r\n // email: email,\r\n // urlToken: tokenData.jwtToken\r\n // });\r\n // }\r\n // else {\r\n // localStorage.setItem()\r\n // }\r\n\r\n // }\r\n }\r\n }\r\n\r\n\r\n onMSLogin = () => {\r\n\r\n new MicrosoftAuthService().logIn().then(async (data, err) => {\r\n if (err) {\r\n throw err;\r\n }\r\n\r\n this.universalLogin(data.account.userName, data.idToken.rawIdToken, \"Microsoft\");\r\n\r\n });\r\n }\r\n render() {\r\n const howitWorksVideo = `${process.env.PUBLIC_URL}/asl_interpretationVideos/You_use_ASL.mp4`;\r\n return (\r\n
\r\n
\r\n

Sign in

\r\n
\r\n
\r\n

Please sign in to the site using one of the following accounts.

\r\n
\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n {!this.state.isFirefox &&
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
}\r\n {/*
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
*/}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n

** Please note that Microsoft Login doesn't work on Firefox, only on Chrome and Edge, and Facebook access has been removed. If you had a Facebook account, and would\r\n like to restore access, please contact us.

\r\n
\r\n \r\n \r\n Cookies Warning\r\n \r\n Please enable third-party cookies on your browser settings for the login functionality to work! For Chrome instructions, click here.\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst ThirdPartyLogin = connect(\r\n\r\n mapDispatchToProps\r\n)(ThirdPartyLoginContainer);\r\n\r\n\r\nexport default ThirdPartyLogin\r\n","\r\n\r\nexport const disambiguateSASURL = (url, proc) => {\r\n if (!url) {\r\n return \"\";\r\n }\r\n let userAgent = window.navigator.userAgent\r\n // if (url.includes(\"TestImage.mp4\") {\r\n // url = url.replace(\"TestImage.mp4\", \"TestImageFlipped.mp4\");\r\n // }\r\n\r\n if (url.includes(\"controlvideos\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/controlvideos/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=controlvideos&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_CONTROL_VIDEOS \r\n }\r\n if (url.includes(\"originalvideos\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/originalvideos/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=originalvideos&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_USER_VIDEOS\r\n }\r\n else if (url.includes(\"modifiedvideos\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/modifiedvideos/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=modifiedvideos&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_USER_VIDEOS\r\n }\r\n else if (url.includes(\"convertedvideos\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/convertedvideos/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=convertedvideos&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_USER_VIDEOS\r\n }\r\n else if (url.includes(\"wikitext\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/wikitext/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=wikitext&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_USER_VIDEOS\r\n }\r\n else if (url.includes(\"seedvideosprod\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/seedvideosprod/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=seedvideosprod&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_SEEDVIDEOS\r\n }\r\n else if (url.includes(\"seedvideos\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/seedvideos/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=seedvideos&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_SEEDVIDEOS\r\n }\r\n else if (url.includes(\"svgs\")) {\r\n url = url.replace(\"https://asluservideos.blob.core.windows.net/svgs/\", process.env.REACT_APP_SERVER_URL + \"/getBlob?containerName=svgs&blobName=\")\r\n return url;\r\n // return url + proc.REACT_APP_USER_VIDEOS\r\n }\r\n else {\r\n // return url + proc.REACT_APP_USER_VIDEOS;\r\n return url;\r\n }\r\n\r\n}\r\n","\r\n\r\nimport React from \"react\";\r\nimport AccountCircleRoundedIcon from '@material-ui/icons/AccountCircleRounded';\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\n\r\nclass PaidWikiConsent extends React.Component {\r\n imgcontainer = {\r\n height: 40,\r\n width: 40\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n

Microsoft Research Special Project Participation Consent Form

\r\n
\r\n

INTRODUCTION

\r\n

\r\n Thank you for deciding to volunteer in a Microsoft Corporation research project. You have no obligation to participate and you may decide to terminate your participation at any time. You also understand that the researcher has the right to withdraw you from participation in the project at any time. Below is a description of the research project, and your consent to participate. Read this information carefully. If you agree to participate, sign in the space provided.\r\n

\r\n
\r\n
\r\n

TITLE OF RESEARCH PROJECT

\r\n

ASL Dataset Community

\r\n
\r\n
\r\n

PRINCIPAL INVESTIGATOR

\r\n

Danielle Bragg

\r\n
\r\n
\r\n

PURPOSE

\r\n

\r\n The purpose of this project is to collect sign language videos from volunteer contributors to advance sign language recognition, while fostering American Sign Language (ASL) community online. The website falls under the category of \"citizen science\", where people contribute for the purpose of advancing science or research. Contributors will be able to do three things: 1) record videos of themselves executing specific signs, 2) validate that other contributors executed signs correctly, and 3) explore the communal dataset.\r\n

\r\n
\r\n\r\n\r\n\r\n
\r\n

PROCEDURES

\r\n

During this project, the following will happen:

\r\n
    \r\n
  • You will create a user profile, including a username, email address, and optional picture and demographics.
  • \r\n
  • \r\n You will then be able to do three main things on the website: 1) record videos of yourself signing, 2) validate that other contributors executed signs correctly, and 3) explore the communal dataset.\r\n
  • \r\n
  • \r\n For every 300 signs you record, we will send you a $30 Amazon gift card, for up to 3000 signs. The gift card will be sent to the email address associated with your profile.\r\n
  • \r\n
\r\n\r\n

\r\n Microsoft may document and collect information about your participation by storing your profile information, the videos you submit, your ratings of other contributors’ videos, and any other interactions with the site.\r\n

\r\n\r\n

Approximately 60 participants will be involved in this study.

\r\n\r\n
\r\n
\r\n

PERSONAL INFORMATION AND CONFIDENTIALITY

\r\n

Microsoft Research is ultimately responsible for determining the purposes and uses of your personal information.

\r\n
    \r\n
  • Personal information we collect.\r\n During the project we may collect personal information about you such as image, likeness, email, age, gender, and ASL experience.\r\n
  • \r\n
  • \r\n How we use personal information.\r\n The personal information and other data collected during this project will be used primarily to perform research for purposes described in the introduction above. Such information and data, or the results of the research may eventually be used to develop and improve our commercial products, services or technologies.\r\n\r\n
  • \r\n\r\n
  • Right of Publicity.\r\n By submitting video(s) of yourself, you confirm that you are the depicted person in the video(s) you submit and you grant Microsoft an unrestricted, perpetual, worldwide, royalty-free, irrevocable license, with rights to assign and sublicense, to use your image and likeness for the research project above and in any related services, on a worldwide basis.\r\n\r\n
  • \r\n\r\n
  • How we store and share your personal information.\r\n Your personal data will be stored for a period of up to 5 years from your last login. This project is a collaboration with Boston University, who will have access to collected data. In addition, we may release a dataset that includes videos and other demographics publicly to help advance research.\r\n
  • \r\n\r\n
  • How you can access and control your personal information.\r\n If you wish to review or copy any personal information you provided during the study, log in to your account to view, edit or delete data from the live site. If you have any additional questions, please email the research team at: aslgames@microsoft.com. Please note that we will not be able to delete data that has already been shared publicly in a research dataset release. We will respond to questions or concerns within 30 days.\r\n
  • \r\n\r\n

    For additional information on how Microsoft handles your personal information, please see the Microsoft Privacy Statement.

    \r\n
\r\n
\r\n
\r\n

RESEARCH RESULTS & FEEDBACK

\r\n

\r\n Microsoft will own all of the research data and analysis and other results (collectively “Research Results”) generated from the information you provide and your participation in the research project. You may also provide suggestions, comments or other feedback (“Feedback”) to Microsoft with respect to the research project. Feedback is entirely voluntary, and Microsoft shall be free to use, disclose, reproduce, license, or otherwise distribute, and leverage the Feedback and Research Results.\r\n

\r\n
\r\n
\r\n

MICROSOFT AND CONFIDENTIALITY

\r\n

\r\n The research project and information you learn by participating in the project is confidential to Microsoft. Sharing this confidential information with people other than those we’ve identified above could negatively affect the scientific integrity of the research study and could even make it more difficult for Microsoft to develop new products based on the information obtained in this study. It is therefore important that you do not talk about the project outside of the study team (unless you are legally required to do so by a court or other government order). This does not apply if the information is general public knowledge or if you have a legal right to share the information.\r\n

\r\n
\r\n
\r\n

BENEFITS AND RISKS

\r\n

Benefits:\r\n The research team expects to collect videos of diverse signers from this project which we hope will improve the accuracy of sign language recognition systems for diverse signers, for example enabling the creation of drive-through. You will receive any public benefit that may come of these Research Results being shared with the greater scientific community.\r\n

\r\n

Risks:\r\n During participation, you may experience discomfort at contributing videos of yourself. Because you will be able to view videos recorded by other contributors, it is also possible that you will view inappropriate or offensive content. To alleviate this risk, the website allows participants to flag inappropriate content, which will be reviewed by a moderator.\r\n

\r\n
\r\n
\r\n

FUTURE USE OF YOUR IDENTIFIABLE INFORMATION

\r\n

\r\n Identifiers might be removed from your identifiable private information, and after such removal, the information could be used for future research studies or distributed to another investigator for future research studies without your (or your legally authorized representative’s) additional informed consent,\r\n

\r\n
\r\n\r\n
\r\n

PAYMENT FOR PARTICIPATION

\r\n

\r\n For every 300 signs you record, we will send you a $30 Amazon gift card, for up to 3000 signs. The gift card will be sent to the email address associated with your profile.\r\n

\r\n

\r\n Your data may be used to make new products, tests or findings. These may have value and may be developed and owned by Microsoft and/or others. If this happens, there are no plans to pay you.\r\n

\r\n
\r\n\r\n
\r\n

PARTICIPATION

\r\n

\r\n Taking part in research is always a choice. If you decide to be in the study, you can change your mind at any time without affecting any rights including payment to which you would otherwise be entitled. If you decide to withdraw, you should contact the person in charge of this study, and also inform that person if you would like your personal information removed as well.\r\n

\r\n

\r\n Microsoft or the person in charge of this study may discontinue the study or your individual participation in the study at any time without your consent for reasons including\r\n

\r\n
\r\n\r\n\r\n
    \r\n
  • \r\n Your failure to follow directions\r\n
  • \r\n
  • \r\n It is discovered that you do not meet study requirements\r\n
  • \r\n\r\n
  • \r\n It is in your best interest medically\r\n
  • \r\n\r\n
  • \r\n The study is canceled\r\n
  • \r\n\r\n
  • \r\n Administrative reasons\r\n
  • \r\n\r\n
\r\n\r\n

\r\n If you leave the study, the study staff will still be able to use your information that they have already collected, however, you have the right to ask for it to be removed when you leave.\r\n

\r\n\r\n

\r\n Significant new findings that develop during the course of this study that might impact your willingness to be in this study will be given to you.\r\n

\r\n\r\n
\r\n

CONTACT INFORMATION

\r\n

\r\n Should you have any questions concerning this project, please contact the research team at aslgames@microsoft.com.\r\n

\r\n

\r\n Should you have any questions about your rights as a research subject, please contact Microsoft Research Ethics Program Feedback at MSRStudyfeedback@microsoft.com.\r\n

\r\n
\r\n\r\n\r\n
\r\n

CONSENT

\r\n

\r\n By clicking CONTINUE, you confirm that the study was explained to you, you had a chance to ask questions before beginning the study, and all your questions were answered satisfactorily. At any time, you may ask other questions. By clicking CONTINUE, you voluntarily consent to participate, and you do not give up any legal rights you have as a study participant.\r\n

\r\n

\r\n Please confirm your consent by clicking CONTINUE. If you wish, you may now save a copy of this consent form for future reference. On behalf of Microsoft, we thank you for your contribution and look forward to your research session.\r\n

\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n )\r\n }\r\n}\r\n\r\nexport default PaidWikiConsent\r\n","import React from \"react\";\r\nimport AccountCircleRoundedIcon from '@material-ui/icons/AccountCircleRounded';\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\n\r\nclass PaidDictionaryConsent extends React.Component {\r\n imgcontainer = {\r\n height: 40,\r\n width: 40\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n

Microsoft Research Special Project Participation Consent Form

\r\n
\r\n

INTRODUCTION

\r\n

\r\n Thank you for deciding to volunteer in a Microsoft Corporation research project. You have no obligation to participate and you may decide to terminate your participation at any time. You also understand that the researcher has the right to withdraw you from participation in the project at any time. Below is a description of the research project, and your consent to participate. Read this information carefully. If you agree to participate, sign in the space provided.\r\n

\r\n
\r\n
\r\n

TITLE OF RESEARCH PROJECT

\r\n

ASL Dataset Community

\r\n
\r\n
\r\n

PRINCIPAL INVESTIGATOR

\r\n

Danielle Bragg

\r\n
\r\n
\r\n

PURPOSE

\r\n

\r\n The purpose of this project is to collect sign language videos from volunteer contributors to advance sign language recognition, while fostering American Sign Language (ASL) community online. The website falls under the category of \"citizen science\", where people contribute for the purpose of advancing science or research. Contributors will be able to do three things: 1) record videos of themselves executing specific signs, 2) validate that other contributors executed signs correctly, and 3) explore the communal dataset.\r\n

\r\n
\r\n\r\n\r\n\r\n
\r\n

PROCEDURES

\r\n

During this project, the following will happen:

\r\n
    \r\n
  • You will create a user profile, including a username, email address, and optional picture and demographics.
  • \r\n
  • \r\n You will then be able to do three main things on the website: 1) record videos of yourself signing, 2) validate that other contributors executed signs correctly, and 3) explore the communal dataset.\r\n
  • \r\n
  • \r\n For every 300 signs you record, we will send you a $30 Amazon gift card, for up to 3000 signs. The gift card will be sent to the email address associated with your profile.\r\n
  • \r\n
\r\n\r\n

\r\n Microsoft may document and collect information about your participation by storing your profile information, the videos you submit, your ratings of other contributors’ videos, and any other interactions with the site.\r\n

\r\n\r\n

Approximately 60 participants will be involved in this study.

\r\n\r\n
\r\n
\r\n

PERSONAL INFORMATION AND CONFIDENTIALITY

\r\n

Microsoft Research is ultimately responsible for determining the purposes and uses of your personal information.

\r\n
    \r\n
  • Personal information we collect.\r\n During the project we may collect personal information about you such as image, likeness, email, age, gender, and ASL experience.\r\n
  • \r\n
  • \r\n How we use personal information.\r\n The personal information and other data collected during this project will be used primarily to perform research for purposes described in the introduction above. Such information and data, or the results of the research may eventually be used to develop and improve our commercial products, services or technologies.\r\n\r\n
  • \r\n\r\n
  • Right of Publicity.\r\n By submitting video(s) of yourself, you confirm that you are the depicted person in the video(s) you submit and you grant Microsoft an unrestricted, perpetual, worldwide, royalty-free, irrevocable license, with rights to assign and sublicense, to use your image and likeness for the research project above and in any related services, on a worldwide basis.\r\n\r\n
  • \r\n\r\n
  • How we store and share your personal information.\r\n Your personal data will be stored for a period of up to 5 years from your last login. This project is a collaboration with Boston University, who will have access to collected data. In addition, we may release a dataset that includes videos and other demographics publicly to help advance research.\r\n
  • \r\n\r\n
  • How you can access and control your personal information.\r\n If you wish to review or copy any personal information you provided during the study, log in to your account to view, edit or delete data from the live site. If you have any additional questions, please email the research team at: aslgames@microsoft.com. Please note that we will not be able to delete data that has already been shared publicly in a research dataset release. We will respond to questions or concerns within 30 days.\r\n
  • \r\n\r\n

    For additional information on how Microsoft handles your personal information, please see the Microsoft Privacy Statement.

    \r\n
\r\n
\r\n
\r\n

RESEARCH RESULTS & FEEDBACK

\r\n

\r\n Microsoft will own all of the research data and analysis and other results (collectively “Research Results”) generated from the information you provide and your participation in the research project. You may also provide suggestions, comments or other feedback (“Feedback”) to Microsoft with respect to the research project. Feedback is entirely voluntary, and Microsoft shall be free to use, disclose, reproduce, license, or otherwise distribute, and leverage the Feedback and Research Results.\r\n

\r\n
\r\n
\r\n

MICROSOFT AND CONFIDENTIALITY

\r\n

\r\n The research project and information you learn by participating in the project is confidential to Microsoft. Sharing this confidential information with people other than those we’ve identified above could negatively affect the scientific integrity of the research study and could even make it more difficult for Microsoft to develop new products based on the information obtained in this study. It is therefore important that you do not talk about the project outside of the study team (unless you are legally required to do so by a court or other government order). This does not apply if the information is general public knowledge or if you have a legal right to share the information.\r\n

\r\n
\r\n
\r\n

BENEFITS AND RISKS

\r\n

Benefits:\r\n The research team expects to collect videos of diverse signers from this project which we hope will improve the accuracy of sign language recognition systems for diverse signers, for example enabling the creation of drive-through. You will receive any public benefit that may come of these Research Results being shared with the greater scientific community.\r\n

\r\n

Risks:\r\n During participation, you may experience discomfort at contributing videos of yourself. Because you will be able to view videos recorded by other contributors, it is also possible that you will view inappropriate or offensive content. To alleviate this risk, the website allows participants to flag inappropriate content, which will be reviewed by a moderator.\r\n

\r\n
\r\n
\r\n

FUTURE USE OF YOUR IDENTIFIABLE INFORMATION

\r\n

\r\n Identifiers might be removed from your identifiable private information, and after such removal, the information could be used for future research studies or distributed to another investigator for future research studies without your (or your legally authorized representative’s) additional informed consent,\r\n

\r\n
\r\n\r\n
\r\n

PAYMENT FOR PARTICIPATION

\r\n

\r\n For every 300 signs you record, we will send you a $30 Amazon gift card, for up to 3000 signs. The gift card will be sent to the email address associated with your profile.\r\n

\r\n

\r\n Your data may be used to make new products, tests or findings. These may have value and may be developed and owned by Microsoft and/or others. If this happens, there are no plans to pay you.\r\n

\r\n
\r\n\r\n
\r\n

PARTICIPATION

\r\n

\r\n Taking part in research is always a choice. If you decide to be in the study, you can change your mind at any time without affecting any rights including payment to which you would otherwise be entitled. If you decide to withdraw, you should contact the person in charge of this study, and also inform that person if you would like your personal information removed as well.\r\n

\r\n

\r\n Microsoft or the person in charge of this study may discontinue the study or your individual participation in the study at any time without your consent for reasons including\r\n

\r\n
\r\n\r\n\r\n
    \r\n
  • \r\n Your failure to follow directions\r\n
  • \r\n
  • \r\n It is discovered that you do not meet study requirements\r\n
  • \r\n\r\n
  • \r\n It is in your best interest medically\r\n
  • \r\n\r\n
  • \r\n The study is canceled\r\n
  • \r\n\r\n
  • \r\n Administrative reasons\r\n
  • \r\n\r\n
\r\n\r\n

\r\n If you leave the study, the study staff will still be able to use your information that they have already collected, however, you have the right to ask for it to be removed when you leave.\r\n

\r\n\r\n

\r\n Significant new findings that develop during the course of this study that might impact your willingness to be in this study will be given to you.\r\n

\r\n\r\n
\r\n

CONTACT INFORMATION

\r\n

\r\n Should you have any questions concerning this project, please contact the research team at aslgames@microsoft.com.\r\n

\r\n

\r\n Should you have any questions about your rights as a research subject, please contact Microsoft Research Ethics Program Feedback at MSRStudyfeedback@microsoft.com.\r\n

\r\n
\r\n\r\n\r\n
\r\n

CONSENT

\r\n

\r\n By clicking CONTINUE, you confirm that the study was explained to you, you had a chance to ask questions before beginning the study, and all your questions were answered satisfactorily. At any time, you may ask other questions. By clicking CONTINUE, you voluntarily consent to participate, and you do not give up any legal rights you have as a study participant.\r\n

\r\n

\r\n Please confirm your consent by clicking CONTINUE. If you wish, you may now save a copy of this consent form for future reference. On behalf of Microsoft, we thank you for your contribution and look forward to your research session.\r\n

\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n )\r\n }\r\n}\r\n\r\nexport default PaidDictionaryConsent\r\n","\r\n\r\nimport React from \"react\";\r\nimport AccountCircleRoundedIcon from '@material-ui/icons/AccountCircleRounded';\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\n\r\nclass UnpaidGeneralConsent extends React.Component {\r\n imgcontainer = {\r\n height: 40,\r\n width: 40\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

SIGN UP

\r\n\r\n\r\n
\r\n

Microsoft Research Project Participation Consent Form

\r\n
\r\n

INTRODUCTION

\r\n

\r\n Thank you for deciding to volunteer in a Microsoft Corporation research project. You have no obligation to participate and you may decide to terminate your participation at any time. You also understand that the researcher has the right to withdraw you from participation in the project at any time. Below is a description of the research project, and your consent to participate. Read this information carefully. If you agree to participate, sign in the space provided.\r\n

\r\n
\r\n
\r\n

TITLE OF RESEARCH PROJECT

\r\n

ASL Dataset Community

\r\n
\r\n
\r\n

PRINCIPAL INVESTIGATOR

\r\n

Danielle Bragg

\r\n
\r\n
\r\n

PROCEDURES

\r\n

During this project, the following will happen:

\r\n
    \r\n
  • You will create a user profile, including a username, email address, and optional picture and demographics.
  • \r\n\r\n
\r\n

\r\n You will then be able to do three main things on the website: 1) record videos of yourself signing, 2) validate that other contributors executed signs correctly, and 3) explore the communal dataset. Microsoft may document and collect information about your participation by storing your profile information, the videos you submit, your ratings of other contributors’ videos, and any other interactions with the site.\r\n

\r\n

\r\n Approximately 200 participants will be involved in this study.\r\n

\r\n\r\n
\r\n
\r\n

PERSONAL INFORMATION AND CONFIDENTIALITY

\r\n

Microsoft Research is ultimately responsible for determining the purposes and uses of your personal information.

\r\n
    \r\n
  • Personal information we collect. During the project we may collect personal information about you such as image, likeness, email, age, gender, and ASL experience.
  • \r\n
  • \r\n How we use personal information.\r\n The personal information and other data collected during this project will be used primarily to perform research for purposes described in the introduction above. Such information and data, or the results of the research may eventually be used to develop and improve our commercial products, services or technologies.\r\n
  • \r\n\r\n
  • Right of Publicity.\r\n By submitting video(s) of yourself, you confirm that you are the depicted person in the video(s) you submit and you grant Microsoft an unrestricted, perpetual, worldwide, royalty-free, irrevocable license, with rights to assign and sublicense, to use your image and likeness for the research project above and in any related services, on a worldwide basis.\r\n
  • \r\n\r\n
  • How we store and share your personal information.\r\n Your personal data will be stored for a period of up to 5 years from your last login. This project is a collaboration with Boston University, who will have access to collected data. In addition, we may release a dataset that includes videos and other demographics publicly to help advance research.\r\n\r\n
  • \r\n\r\n
  • How you can access and control your personal information.\r\n If you wish to review or copy any personal information you provided during the study, log in to your account to view, edit or delete data from the live site. If you have any additional questions, please email the research team at: aslgames@microsoft.com. Please note that we will not be able to delete data that has already been shared publicly in a research dataset release. We will respond to questions or concerns within 30 days.\r\n
  • \r\n\r\n

    For additional information on how Microsoft handles your personal information, please see the Microsoft Privacy Statement.

    \r\n
\r\n
\r\n
\r\n

RESEARCH RESULTS & FEEDBACK

\r\n

\r\n Microsoft will own all of the research data and analysis and other results (collectively “Research Results”) generated from the information you provide and your participation in the research project. You may also provide suggestions, comments or other feedback (“Feedback”) to Microsoft with respect to the research project. Feedback is entirely voluntary, and Microsoft shall be free to use, disclose, reproduce, license, or otherwise distribute, and leverage the Feedback and Research Results.\r\n

\r\n
\r\n
\r\n

MICROSOFT AND CONFIDENTIALITY

\r\n

\r\n The research project and information you learn by participating in the project is confidential to Microsoft. Sharing this confidential information with people other than those we’ve identified above could negatively affect the scientific integrity of the research study and could even make it more difficult for Microsoft to develop new products based on the information obtained in this study. It is therefore important that you do not talk about the project outside of the study team (unless you are legally required to do so by a court or other government order). This does not apply if the information is general public knowledge or if you have a legal right to share the information.\r\n\r\n

\r\n
\r\n
\r\n

BENEFITS AND RISKS

\r\n

Benefits:\r\n The research team expects to collect videos of diverse signers from this project which we hope will improve the accuracy of sign language recognition systems for diverse signers, for example enabling the creation of drive-through. You will receive any public benefit that may come of these Research Results being shared with the greater scientific community.\r\n

\r\n

Risks:\r\n During participation, you may experience discomfort at contributing videos of yourself. Because you will be able to view videos recorded by other contributors, it is also possible that you will view inappropriate or offensive content. To alleviate this risk, the website allows participants to flag inappropriate content, which will be reviewed by a moderator.\r\n

\r\n
\r\n
\r\n

FUTURE USE OF YOUR IDENTIFIABLE INFORMATION

\r\n

\r\n Identifiers might be removed from your identifiable private information, and after such removal, the information could be used for future research studies or distributed to another investigator for future research studies without your (or your legally authorized representative’s) additional informed consent\r\n

\r\n
\r\n\r\n
\r\n

PAYMENT FOR PARTICIPATION

\r\n

\r\n You will not be paid to take part in this study.\r\n

\r\n

\r\n Your data may be used to make new products, tests or findings. These may have value and may be developed and owned by Microsoft and/or others. If this happens, there are no plans to pay you.\r\n

\r\n
\r\n\r\n
\r\n

PARTICIPATION

\r\n

\r\n Taking part in research is always a choice. If you decide to be in the study, you can change your mind at any time without affecting any rights including payment to which you would otherwise be entitled. If you decide to withdraw, you should contact the person in charge of this study, and also inform that person if you would like your personal information removed as well.\r\n

\r\n

\r\n Microsoft or the person in charge of this study may discontinue the study or your individual participation in the study at any time without your consent for reasons including:\r\n

\r\n
\r\n\r\n\r\n
    \r\n
  • \r\n Your failure to follow directions\r\n
  • \r\n
  • \r\n It is discovered that you do not meet study requirements\r\n
  • \r\n\r\n
  • \r\n It is in your best interest medically\r\n
  • \r\n\r\n
  • \r\n The study is canceled\r\n
  • \r\n\r\n
  • \r\n Administrative reasons\r\n
  • \r\n\r\n
\r\n\r\n

If you leave the study, the study staff will still be able to use your information that they have already collected, however, you have the right to ask for it to be removed when you leave.

\r\n\r\n

\r\n Significant new findings that develop during the course of this study that might impact your willingness to be in this study will be given to you.\r\n

\r\n\r\n
\r\n

CONTACT INFORMATION

\r\n

\r\n Should you have any questions concerning this project, please contact the research team at aslgames@microsoft.com.\r\n

\r\n

\r\n Should you have any questions about your rights as a research subject, please contact Microsoft Research Ethics Program Feedback at MSRStudyfeedback@microsoft.com.\r\n

\r\n
\r\n\r\n\r\n
\r\n

CONSENT

\r\n

\r\n By clicking CONTINUE, you confirm that the study was explained to you, you had a chance to ask questions before beginning the study, and all your questions were answered satisfactorily. At any time, you may ask other questions. By clicking CONTINUE, you voluntarily consent to participate, and you do not give up any legal rights you have as a study participant.\r\n

\r\n

\r\n Please confirm your consent by clicking CONTINUE. If you wish, you may now save a copy of this consent form for future reference. On behalf of Microsoft, we thank you for your contribution and look forward to your research session.\r\n

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n )\r\n }\r\n}\r\n\r\nexport default UnpaidGeneralConsent\r\n","import React, { Component } from 'react';\r\nimport { Row, Col } from \"reactstrap\";\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport PaidWikiConsent from '../auth/PaidWikiConsent';\r\nimport PaidDictionaryConsent from '../auth/PaidDictionaryConsent';\r\nimport UnpaidGeneralConsent from '../auth/UnpaidGeneralConsent';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass ThirdPartySignupContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n thirdPartyUserid: this.props.thirdPartyUserid,\r\n email: this.props.email,\r\n token: this.props.token,\r\n accountType: this.props.accountType,\r\n age18True: false,\r\n acceptTerms: false,\r\n consentForm: false,\r\n errorMsg: '',\r\n openInfoModal: false,\r\n errors: {},\r\n registerErrors: '',\r\n isRegisterationCompleted: false,\r\n firstTimeUser: true\r\n };\r\n this.toastId = null;\r\n }\r\n\r\n labelDisplay = {\r\n marginLeft: \"15px\",\r\n fontWeight: \"bold\"\r\n }\r\n\r\n inputFieldDisplay = {\r\n minWidth: \"250px\",\r\n marginBottom: \"12px\",\r\n height: \"36px\"\r\n }\r\n\r\n requiredFieldCSS = {\r\n fontSize: \"15px\",\r\n marginLeft: \"8px\",\r\n color: \"#CA1916\",\r\n fontWeight: \"500\"\r\n }\r\n\r\n passwordMatchWarning = {\r\n fontWeight: \"450\",\r\n color: \"#CC0000\"\r\n }\r\n h2fontSize = {\r\n fontSize: \"1.75rem\",\r\n color: \"#556B2F\"\r\n }\r\n\r\n h3fontSize = {\r\n fontSize: \"1.5rem\",\r\n color: \"#556B2F\"\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ openInfoModal: true });\r\n let self = this;\r\n\r\n\r\n }\r\n\r\n handleInputChange = async (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value,\r\n registerErrors: ''\r\n });\r\n };\r\n newUserSignUp = (event) => {\r\n event.preventDefault();\r\n let self = this;\r\n\r\n this.props.history.push(\"/profile\", {\r\n email: self.props.history.location.state.email,\r\n urlToken: self.props.history.location.state.urlToken,\r\n loginConsentType: self.props.history.location.state.loginConsentType,\r\n facebook_id: self.props.history.location.state.facebook_id,\r\n signinType: self.props.history.location.state.signinProvider,\r\n acceptedConsent: true,\r\n oldJWTToken: self.props.history.location.state.oldJWTToken,\r\n access_token: this.props.history.location.state.access_token\r\n }\r\n );\r\n }\r\n continueSignUp = () => {\r\n this.setState({ openInfoModal: false });\r\n }\r\n\r\n logOut = () => {\r\n this.props.history.push('/tpLogout');\r\n }\r\n\r\n toggleInfoPopup = (event) => {\r\n event.preventDefault();\r\n this.setState(prevState => ({\r\n openInfoModal: !prevState.openInfoModal\r\n }));\r\n }\r\n\r\n paidConsentLinks = [\"2021WikiPUserStudy\", \"2021DictionaryUserStudy\"]\r\n unPaidConsentLinks = [\"test\", \"2021WikiUUserStudy\"]\r\n\r\n\r\n render() {\r\n const enabled = this.state.age18True && this.state.acceptTerms && this.state.consentForm;\r\n\r\n if (!this.props.history.location.state.loginConsentType || this.props.history.location.state.loginConsentType === \"GuestUser\") {\r\n return (\r\n
\r\n
You're trying to signup without a special link. Please use one of the special links you were provided with to signup. Please refer to your invitation email, or contact the person you've been working with if you have any questions.
\r\n
Individual Dictionary Sign Record User Study\r\n
window.location = \"https://community.aslgames.org/tpLogin/dynamic-signup-form/user/2021DictionaryUserStudy\"} className=\"record-btn record-btn special-signup-link-btn\">Dictionary Signup Link
\r\n
\r\n {/*
Wikipedia User Study 2021\r\n
window.location = \"https://community.aslgames.org/tpLogin/dynamic-signup-form/user/2021WikiPUserStudy\"} className=\"record-btn record-btn special-signup-link-btn\">Wiki Signup Link
\r\n
*/}\r\n\r\n
Abraham's Wikipedia User Study\r\n
window.location = \"https://community.aslgames.org/tpLogin/dynamic-signup-form/user/2021WikiUUserStudy\"} className=\"record-btn record-btn special-signup-link-btn\">Wiki Signup Link
\r\n
\r\n \r\n\r\n
\r\n )\r\n }\r\n // Paid Consent Forms\r\n //\r\n //alert(this.paidConsentLinks.indexOf(this.props.history.location.state.loginConsentType))\r\n if (this.paidConsentLinks.indexOf(this.props.history.location.state.loginConsentType) > -1) {\r\n return (\r\n
\r\n
\r\n \r\n \r\n NEW USER ACCOUNT\r\n \r\n

You are about to create a new account. If you are an existing user, please log out and login back using the authentication type and login info used previously, else please continue.

\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n

SIGN UP

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {this.state.registerErrors}\r\n \r\n \r\n \r\n \r\n

* means required

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n )\r\n }\r\n else {\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n NEW USER ACCOUNT\r\n \r\n

You are about to create a new account. If you are an existing user, please log out and login back using the authentication type and login info used previously, else please continue.

\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {this.state.registerErrors}\r\n \r\n \r\n \r\n \r\n

* means required

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst ThirdPartySignup = connect(\r\n\r\n mapDispatchToProps\r\n)(ThirdPartySignupContainer);\r\n\r\n\r\nexport default ThirdPartySignup\r\n","import React from \"react\";\r\nimport AccountCircleRoundedIcon from '@material-ui/icons/AccountCircleRounded';\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass PersonContainer extends React.Component {\r\n imgcontainer = {\r\n height: 40,\r\n width: 40\r\n }\r\n render() {\r\n return (\r\n
\r\n {/* */}\r\n {/* {this.props.alt} */}\r\n \r\n\r\n {/* */}\r\n

\r\n {this.props.name}\r\n

\r\n

\r\n {this.props.score}\r\n

\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst Person = connect(\r\n \r\n mapDispatchToProps\r\n)(PersonContainer);\r\n\r\nexport default Person","export default __webpack_public_path__ + \"static/media/profile.972edb68.svg\";","import React from \"react\";\r\nimport Person from '../auth/Person';\r\nimport defaultProfileImg from '../../resources/profile.svg';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass ScoreboardContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n dailyScoreData: [],\r\n overAllScoreData: [],\r\n defaultProfileImg: 'profile.svg',\r\n signedInGroupId: this.props.signedInGroupId\r\n }\r\n //this.getDailyTopScores = this.getDailyTopScores.bind(this);\r\n this.getOverAllTopScores = this.getOverAllTopScores.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getOverAllTopScores();\r\n }\r\n\r\n requestingDailyScores = false;\r\n requestingTopScores = false;\r\n\r\n componentWillReceiveProps(props) {\r\n this.setState({ signedInGroupId: props.signedInGroupId });\r\n\r\n if (this.state.overAllScoreData.length === 0 && !this.requestingTopScores) {\r\n this.requestingTopScores = true\r\n this.getOverAllTopScores();\r\n }\r\n\r\n }\r\n\r\n getOverAllTopScores = () => {\r\n this.apiClient.getJSON(this, \"/getDailyTopScoresList\", '')\r\n .then((res) => {\r\n if (res && res.status) {\r\n this.setState({ overAllScoreData: res.data })\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n })\r\n }\r\n\r\n render() {\r\n\r\n let alltimers = null;\r\n if (this.state.overAllScoreData) {\r\n alltimers = this.state.overAllScoreData.map((person, index) => {\r\n var imgSrc = defaultProfileImg;\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n })\r\n }\r\n return (\r\n null\r\n //
\r\n //
\r\n // Leaderboard\r\n //
\r\n // {/*
Daily top contributors
\r\n // {contestants} */}\r\n //
All-time top contributors
\r\n // {alltimers}\r\n //
\r\n\r\n )\r\n\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst Scoreboard = connect(\r\n \r\n mapDispatchToProps\r\n)(ScoreboardContainer);\r\n\r\n\r\nexport default Scoreboard\r\n\r\n\r\n","import React from \"react\";\r\n\r\nexport default class SocialIconsHeader extends React.Component{\r\n\r\n header ={\r\n float:\"right\"\r\n }\r\n\r\n iconStyle = {\r\n height:\"40px\",\r\n width:\"40px\"\r\n }\r\n\r\n render() {\r\n return(\r\n
\r\n {/* \r\n\r\n \r\n\r\n \r\n\r\n */}\r\n
\r\n )\r\n }\r\n}","export const invisibleModalStyle = {\r\n background: 'rgba(255,255,255, 0.75)',\r\n overlay: { position: 'static' },\r\n borderRadius: \"20px\",\r\n content : {\r\n top : '30%',\r\n left : '50%',\r\n color: 'grey',\r\n fontSize: '20px',\r\n width : '400px',\r\n background: 'transparent',\r\n border: '0px',\r\n height : '280px', \r\n right : 'auto',\r\n bottom : 'auto',\r\n marginRight : '-50%',\r\n transform : 'translate(-50%, -50%)',\r\n overflow: \"hidden\"\r\n }\r\n}\r\n\r\n// TODO Refactor\r\nexport const visibleModalStyle = {\r\n background: '#fff',\r\n overlay: { position: 'static' },\r\n borderRadius: \"20px\",\r\n border: '3px solid #127BC2',\r\n content : {\r\n top : '30%',\r\n left : '50%',\r\n\r\n color: 'grey',\r\n fontSize: '20px',\r\n width : '400px',\r\n height : '200px', \r\n right : 'auto',\r\n bottom : 'auto',\r\n marginRight : '-50%',\r\n transform : 'translate(-50%, -50%)',\r\n overflow: \"hidden\"\r\n }\r\n}\r\n\r\nexport const modalStyles = {\r\n content : {\r\n top : '50%',\r\n left : '50%',\r\n width : '400px',\r\n padding : '50px',\r\n height : '200px', \r\n right : 'auto',\r\n bottom : 'auto',\r\n marginRight : '-50%',\r\n transform : 'translate(-50%, -50%)',\r\n overflow: \"hidden\"\r\n },\r\n levelMessage: {\r\n textAlign: \"center\",\r\n fontSize: '20px'\r\n },\r\n levelEmoji: {\r\n textAlign: \"center\",\r\n fontSize: \"40px\"\r\n },\r\n confirmEmoji: {\r\n textAlign: \"center\",\r\n fontSize: \"40px\",\r\n color: 'green'\r\n },\r\n closeModal: {\r\n position: 'absolute',\r\n right: '15px',\r\n top: '5px'\r\n },\r\n invisibleClose: {\r\n height: \"200px\",\r\n width: \"400px\",\r\n background: \"transparent\",\r\n position: 'absolute',\r\n top: '0px',\r\n left: '0px',\r\n }\r\n };\r\n\r\n\r\nexport const loaderStyle = { \r\n position: \"fixed\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n textAlign: \"center\"\r\n };","import React from \"react\";\r\nimport ReactModal from 'react-modal';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { invisibleModalStyle, visibleModalStyle, modalStyles } from '../styles/modalStyles';\r\nimport CheckRoundedIcon from '@material-ui/icons/CheckRounded';\r\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\r\n\r\nexport default class DisappearNotification extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n text: \"\",\r\n text2: \"\",\r\n symbol: \"\",\r\n showInvisibleModal: false,\r\n background: 'transparent',\r\n isTransparent: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n //this.setState({ text: self.props.text, showInvisibleModal: self.props.showInvisibleModal, isTransparent: self.props.isTransparent });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n\r\n if (this.props.text !== prevProps.text) {\r\n this.setState({ text: this.props.text });\r\n }\r\n\r\n if (this.props.showInvisibleModal !== prevProps.showInvisibleModal) {\r\n this.setState({ showInvisibleModal: this.props.showInvisibleModal });\r\n }\r\n\r\n if (this.props.isTransparent !== prevProps.isTransparent) {\r\n this.setState({ isTransparent: this.props.isTransparent });\r\n }\r\n\r\n }\r\n\r\n componentWillReceiveProps(props){\r\n this.setState({text: props.text, showInvisibleModal: props.showInvisibleModal, isTransparent: props.isTransparent });\r\n }\r\n\r\n handleCloseInvisibleModal = () => {\r\n this.setState({ showInvisibleModal: false });\r\n }\r\n\r\n render() {\r\n let symbol = \"\";\r\n switch (this.props.symbol) {\r\n case \"check-mark\":\r\n symbol =
;\r\n break;\r\n case \"processing\":\r\n symbol =
;\r\n break;\r\n default:\r\n symbol =
;\r\n break;\r\n }\r\n return (\r\n \r\n \r\n \r\n
\r\n
{this.state.text}
\r\n
{this.state.text2}
\r\n {symbol}\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col, Button, Input } from 'reactstrap';\r\nimport Scoreboard from './components/gamify/Scoreboard';\r\nimport SocialIconsHeader from './components/social/SocialIconsHeader';\r\nimport ProgressBar from 'react-bootstrap/ProgressBar';\r\nimport { Tooltip } from 'reactstrap';\r\nimport ApiClient from \"./api/ApiClient\";\r\nimport { MdInfoOutline } from \"react-icons/md\";\r\nimport ReactTooltip from 'react-tooltip'\r\nimport DisappearNotification from \"./modals/disappearNotification\";\r\nimport { disambiguateSASURL } from \"./utils/urlSAS\";\r\nimport { capitalize } from \"./utils/textMethods\";\r\n// import { ReactComponent as CollageSvg } from './resources/HomepageCollageSVG.svg';\r\n// import { ReactComponent as SignsSVG } from './resources/SignsSVG.svg';\r\n\r\nclass Home extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n message: '',\r\n throttleCount: 6,\r\n verifiedTotal: 0,\r\n recordedTotal: 0,\r\n loadedCount: 0,\r\n hasMore: false,\r\n isLoading: false,\r\n TotalRecordedVideos: 0,\r\n showInvisibleModal: false,\r\n TotalVerifiedVideos: 0,\r\n TotalUserVideosCount: 0,\r\n TotalModelVideosCount: 0,\r\n RecordVideoPercentage: 0,\r\n VerifyVideoPercentage: 0,\r\n tooltipOpen: false,\r\n cancelTooltipOpen: false,\r\n userLevelStatusText: \"\",\r\n userLevelName: this.props.userLevel.name,\r\n isLoggedIn: this.props.isLoggedIn,\r\n showStayInTouchModal: false,\r\n bannerHtml: \"\",\r\n stayInTouchEmail: \"\"\r\n }\r\n\r\n this.toggle = this.toggle.bind(this);\r\n this.toggleCancelTooltip = this.toggleCancelTooltip.bind(this);\r\n }\r\n\r\n displayInline = {\r\n display: \"inline-block\"\r\n }\r\n\r\n scoreCount = {\r\n display: \"inline-block\",\r\n paddingLeft: \"15px\",\r\n fontWeight: \"600\",\r\n //textDecoration:\"underline\",\r\n fontSize: \"20px\"\r\n }\r\n\r\n buttonStyle = {\r\n float: \"right\",\r\n margin: \"5px\"\r\n }\r\n\r\n postMessage = {\r\n maxHeight: \"170px\"\r\n }\r\n\r\n marginTopBottom = {\r\n marginTop: \"8px\",\r\n marginBottom: \"5px\"\r\n }\r\n\r\n numberLabelfontSz = {\r\n fontSize: \"1.25rem\"\r\n }\r\n\r\n componentDidMount() {\r\n // New accounts only\r\n const self = this;\r\n\r\n if (this.props.location.state && this.props.location.state.isNewAccount) {\r\n this.notify()\r\n this.props.loadUser()\r\n }\r\n\r\n this.loadUserScores();\r\n }\r\n\r\n\r\n\r\n notify = () => {\r\n this.setState({ showInvisibleModal: true })\r\n setTimeout(() => {\r\n this.setState({ showInvisibleModal: false })\r\n }, 3000);\r\n }\r\n\r\n componentWillReceiveProps(props) {\r\n // Show post-signup confirmation on new page\r\n this.setState({ isLoggedIn: props.isLoggedIn, signedInGroupId: props.signedInGroupId, userLevelName: props.userLevel.name });\r\n if (!this.state.scoresDataLoaded) {\r\n this.loadUserScores();\r\n }\r\n }\r\n\r\n loadUserScores = () => {\r\n this.apiClient.getJSON(this, \"/getUserScores\", \"\")\r\n .then((res) => {\r\n if (res && res.status) {\r\n if (res !== null && res.data.userName) {\r\n var scoresData = res.data;\r\n const wikiCount = scoresData.wikiCount;\r\n\r\n this.setState({\r\n userName: scoresData.userName,\r\n userLevel: scoresData.level,\r\n pointScore: scoresData.xpPoints,\r\n userSpecificLevel: scoresData.level,\r\n recordedTotal: scoresData.totalRecordedVideos,\r\n verifiedTotal: scoresData.totalVerifiedVideos,\r\n TotalUserVideosCount: scoresData.totalUserVideos,\r\n scoresDataLoaded: true\r\n });\r\n this.getUserLevelStatus();\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({ isLoggedOut: false });\r\n });\r\n }\r\n stopEventPropagation = (event) => {\r\n event.stopPropagation();\r\n }\r\n\r\n getUserLevelStatus = () => {\r\n var text = \"You are currently at \" + this.getUserLevelDisplayText() + \" level! \";\r\n var currentTotalCount = this.state.TotalRecordedVideos;\r\n if (currentTotalCount < 10) {\r\n var countReqForNextLevel = 10 - currentTotalCount;\r\n text += countReqForNextLevel + \" videos required to go to pro level!\";\r\n } else if (currentTotalCount <= 49) {\r\n var countReqForNextLevel1 = 50 - currentTotalCount;\r\n text += countReqForNextLevel1 + \" videos required to go to beast level!\";\r\n }\r\n this.setState({ userLevelStatusText: text });\r\n }\r\n getUserLevelDisplayText = () => {\r\n if (this.state.userLevelName === \"Rookie\") {\r\n return \"Rookie\";\r\n }\r\n return this.state.userLevelName;\r\n }\r\n\r\n generateComplexObjects(messages, flattened) {\r\n messages.forEach(message => {\r\n var replies = flattened.filter(m => m.parent === message._id);\r\n if (replies) {\r\n message.replies = replies;\r\n this.generateComplexObjects(replies, flattened);\r\n }\r\n });\r\n }\r\n\r\n\r\n handleInputChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n\r\n\r\n emptyMessage = (event) => {\r\n this.setState({ message: '' });\r\n }\r\n\r\n determineCTA = () => {\r\n if (this.state.TotalRecordedVideos < 50) {\r\n this.props.history.push(\"/record\");\r\n }\r\n else if (this.state.TotalVerifiedVideos > 50) {\r\n this.props.history.push(\"/verify\");\r\n }\r\n else {\r\n this.props.history.push(\"/wiki\");\r\n }\r\n }\r\n\r\n toggle() {\r\n this.setState({\r\n tooltipOpen: !this.state.tooltipOpen\r\n });\r\n }\r\n toggleCancelTooltip() {\r\n this.setState({\r\n tooltipOpen: !this.state.tooltipOpen\r\n });\r\n }\r\n render() {\r\n document.title = 'Home - The ASL Data Community';\r\n const submitEnabled = this.state.message.trim() !== \"\";\r\n let self = this;\r\n // if (this.state.userLevel) {\r\n // \r\n // }\r\n //const loginText = login or create an account;\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n \"mosaic\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Our Purpose
\r\n
\r\n The website is a type of citizen science site, where people participate for the purpose of advancing science. Initially, the site will primarily collect individual signs from ASL students. Once this version is released and vetted, we will proceed to collect longer utterances from fluent signers, which are essential to creating accurate language models.\r\n
\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Home;\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport { disambiguateSASURL } from \"./utils/urlSAS\";\r\n\r\nclass Info extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoggedIn: this.props.isLoggedIn\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n //throw \"dsf\"\r\n }\r\n\r\n marginBottom = {\r\n marginBottom: \"50px\"\r\n }\r\n\r\n video = {\r\n width: \"100%\",\r\n position: \"relative\",\r\n display: \"block\",\r\n margin: \"0 auto\"\r\n }\r\n render() {\r\n document.title = 'Info - The ASL Data Community';\r\n const howitWorksVideo = `${process.env.PUBLIC_URL}/asl_interpretationVideos/How_it_Works.mp4`;\r\n const infoASLVideo = `${process.env.PUBLIC_URL}/asl_interpretationVideos/ASL_Data_Community_Info.mp4`;\r\n const deleteASLAccountVideo = `${process.env.PUBLIC_URL}/asl_interpretationVideos/Delete_Account.mp4`;\r\n const teamASLSiteVideo = `${process.env.PUBLIC_URL}/asl_interpretationVideos/who_is_involved.mp4`;\r\n return (\r\n
\r\n
\r\n
\r\n

Improving sign language resources for all

\r\n
By enabling diverse signers to share ASL videos online, we aim to provide useful community resources, while also improving ASL datasets and resulting technologies for all users.
\r\n
\r\n
\r\n {/* Morbi enim nunc faucibus a pellentesque sit amet porttitor. Aliquam vestibulum morbi blandit cursus risus at. Ante metus dictum at tempor commodo. */}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

The purpose of this website is to enable volunteers to contribute American Sign Language (ASL) videos to advance sign language recognition, translation, and generation, while fostering ASL community online. The website is a type of citizen science site, where people participate for the purpose of advancing science. Initially, the site will primarily collect individual signs from ASL students. Once this version is released and vetted, we will proceed to collect longer utterances from fluent signers, which are essential to creating accurate language models.

\r\n

Currently, computational sign language systems are quite limited, largely because of a lack of videos with known content from which to learn. This site aims to collect a large set of such videos from diverse signers to help improve recognition accuracy for diverse signers (for example, different genders, races, skin tones, accents, etc.). Examples of applications that would be possible with sign language computation include drive-throughs that take signed meal orders, dictionaries that look up signs that are demonstrated, and personal assistants that respond to signed commands or questions.

\r\n

In addition to helping sign language recognition and computer vision, contributed videos will be a valuable resource for people curious about diversity in sign execution, and linguists and other researchers studying sign languages. You will receive any public benefit that may come of the video dataset and research results being shared with the greater scientific community.

\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
How the Dictionary works
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n

\r\n Use the Record page to submit new videos. You will be prompted with a particular sign. You will then have the opportunity to record yourself signing that sign. You may re-record yourself until you are satisfied. When you are done, the video will be added to the dataset, and will be viewable to other dataset contributors.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n

\r\n Use the Verify page to review videos from other contributors. To make sure that contributed videos are accurate executions of signs, we provide the contributor video and model signer side-by-side.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n

\r\n Use the Explore page to view the community-generated dataset! You can search for your own videos, or those of your friends. If you view somebody else’s video, and want to provide your own version of the executed sign or want to verify their submission, you can do that by clicking on the provided links.\r\n

\r\n
\r\n
\r\n

\r\n The dictionary is a community-generated resource, which shows how diverse people sign ASL vocabulary. You can do three main things on this part of the site: 1) record and contribute videos of yourself signing, 2) validate that other contributors executed signs appropriately, and 3) explore the communal dataset.\r\n

\r\n
\r\n
\r\n
How the Wiki works
\r\n

\r\n The wiki provides community-generated interpretations or translations of English texts, helping to make information accessible to people who prefer ASL. Through this part of the site, you can view articles (in both English and ASL), and contribute your own translations for others to use. To view or contribute to a particular article, navigate to the wiki tab and select a topic.\r\n

\r\n

\r\n Record – Move the top slider to Record mode. Click on a sentence or section heading to record your own version. You may re-record yourself until you are satisfied. When you are done, the video will be added to the dataset, and will be viewable to others on the site. You will automatically be advanced to the next sentence or section for recording.\r\n

\r\n

\r\n Read – Move the top slider to Read mode. The English text will be available on the right, with ASL translations on the left. Click on a particular sentence to start auto-playing the article starting from that point. The current sentence will be highlighted on the right, and the ASL video will play on the left. The system will automatically progress to the next sentence (as long as a translation is available). Under the video, you can select from different available signers. If no signers are available, you can return to Record mode (above), and contribute your own translation for others to use!\r\n

\r\n
\r\n \r\n
\r\n
\r\n You can delete your account and associated data through your profile page. To do this, click on the profile icon at the top-right of the navigation bar, and click “My Profile”. Navigate to the “Profile” tab, and click “Delete Account” at the bottom. This will delete your profile, as well as all recorded videos and video evaluations.\r\n
\r\n\r\n
\r\n
\r\n
Our Team
\r\n
\r\n
\r\n

We would like to thank Swathi Tella, Jeremiah Long, and John Lukosky for their work on this project.

\r\n
\r\n
\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Mary Bellard\r\n
\r\n
\r\n Senior Accessibility Architecht\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Lauren Berger\r\n
\r\n
\r\n Postdoc\r\n
\r\n
\r\n Boston University\r\n
\r\n
\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Danielle Bragg\r\n
\r\n
\r\n Senior Researcher\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Naomi Caselli\r\n
\r\n
\r\n Professor\r\n
\r\n
\r\n Boston University\r\n
\r\n
\r\n\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Abraham Glasser\r\n
\r\n
\r\n Graduate Student\r\n
\r\n
\r\n Rochester Institute of Technology\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Miriam Goldberg\r\n
\r\n
\r\n Graduate Student\r\n
\r\n
\r\n Boston University\r\n
\r\n
\r\n {/*
\r\n */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Hannah Goldblatt\r\n
\r\n
\r\n Graduate Student\r\n
\r\n
\r\n Boston University\r\n
\r\n
\r\n {/*
*/}\r\n\r\n {/* */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Vanessa Milan\r\n
\r\n
\r\n Principle Designer\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n {/*
\r\n */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Fyodor Minakov\r\n
\r\n
\r\n Development Lead\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n {/*
\r\n */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Paul Oka\r\n
\r\n
\r\n Director of Engineering\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n {/*
\r\n */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Philip Rosenfield\r\n
\r\n
\r\n Senior Research Program Manager\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n {/*
\r\n */}\r\n
\r\n
\r\n \"profile-img\"\r\n
\r\n
\r\n Bill Thies\r\n
\r\n
\r\n Principal Researcher\r\n
\r\n
\r\n Microsoft Research\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Info;\r\n","import React from 'react'\r\nimport ReactModal from 'react-modal';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { invisibleModalStyle, visibleModalStyle, modalStyles } from '../../styles/modalStyles';\r\nimport CheckRoundedIcon from '@material-ui/icons/CheckRounded';\r\nimport MoreHorizIcon from '@material-ui/icons/MoreHoriz';\r\nimport InfoRoundedIcon from '@material-ui/icons/InfoRounded';\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\n\r\nlet hideMe = false\r\n\r\nconst GlobalErrorModalView = (state) => {\r\n if (state.reqFailedModal) {\r\n let elems = document.getElementsByClassName(\"GlobalAPIErrorModal\");\r\n \r\n if (elems.length > 0) {\r\n \r\n elems[0].style.display='visible'; \r\n }\r\n \r\n return (\r\n \r\n {\r\n el.currentTarget.style.display='none';\r\n }}>\r\n
\r\n
\r\n
Don't panic! Something went wrong. Please try again or refresh.
\r\n
\r\n
\r\n \r\n )\r\n }\r\n return (null)\r\n}\r\n\r\nexport default GlobalErrorModalView","import { connect } from 'react-redux'\r\nimport GlobalErrorModalView from './GlobalErrorModalView'\r\nimport PointsTotal from './PointsTotal'\r\n\r\nconst mapStateToProps = state => {\r\n if (state.populateStore && state.populateStore.reqFailedModal) {\r\n \r\n return ({\r\n reqFailedModal: (state.populateStore.reqFailedModal)\r\n })\r\n }\r\n // else {\r\n // return {}\r\n // }\r\n}\r\n\r\nexport default connect(mapStateToProps)(GlobalErrorModalView)\r\n\r\n\r\n","import React from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { FaFlag } from 'react-icons/fa';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport FlagRoundedIcon from '@material-ui/icons/FlagRounded';\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass ReportButtonContainer extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state={\r\n showPopup:false,\r\n showConfirmDialog:false,\r\n flagReason:'',\r\n flagType:'',\r\n userId:this.props.loggedInUserId,\r\n videoData:this.props.data\r\n }\r\n this.onSubmit = this.onSubmit.bind(this);\r\n this.onClose = this.onClose.bind(this);\r\n this.onOpen = this.onOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n\r\n iconColor = {\r\n color:\"black\",\r\n cursor:\"pointer\"\r\n }\r\n paddingRadio = {\r\n paddingLeft:\"8px\"\r\n }\r\n\r\n onSubmit = async(event) => {\r\n event.preventDefault();\r\n // fyd post\r\n //await this.onFlagVideo();\r\n }\r\n onClose(){\r\n this.setState({showPopup:false});\r\n }\r\n onOpen(){\r\n this.setState({showPopup:true});\r\n }\r\n handleClose() {\r\n this.setState({ showConfirmDialog: false });\r\n this.props.skipToNewVideo();\r\n }\r\n\r\n handleInputChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n // onFlagVideo = async() => {\r\n // var self = this;\r\n // var sdata = \"\"\r\n // var data = {\r\n // userId: self.props.loggedInUserId, userVideoId: self.props.data._id,\r\n // convertedUrl: self.props.data.convertedUrl, flagType: self.state.flagType, flagReason: self.state.flagReason \r\n // }; \r\n // try {\r\n // sdata = data;\r\n // }\r\n // catch (e) {\r\n // }\r\n // TODO changes from post to postJSON\r\n // var response = await this.apiClient.post(\"/flagVideo\", sdata);\r\n // if (response.status === 200){\r\n // this.setState({showPopup:false, showConfirmDialog:true});\r\n // }\r\n // else {\r\n // alert(\"Unable to flag video\");\r\n // }\r\n // };\r\n\r\n // disableButton = () => {\r\n // if (this.props.data !== null){\r\n // const userVideo = this.props.data;\r\n // if (userVideo.user._id === this.props.loggedInUserId){\r\n // return true;\r\n // }else{\r\n // return false;\r\n // }\r\n // }\r\n // }\r\n \r\n textareaStyle = {\r\n width:\"100%\"\r\n };\r\n\r\n setFlagType = (event) => {\r\n var value = event.target.value;\r\n this.setState({flagType : value});\r\n }\r\n render() {\r\n return (null);\r\n //const showFlagIcon = this.disableButton() ? {display:'none'}:{};\r\n //const ContentHeader = this.props.data !== null ? this.props.data.modelVideo.name : \"Text\";\r\n return (\r\n \r\n \r\n \r\n \r\n Report Content\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Reason:\r\n \r\n
\r\n \r\n {this.state.aboutMarker && Please select appropriate about me content above.}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Gender

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Age

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

How do you identify?

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

ASL Level

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Age started learning ASL

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Home State

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n

* Means required

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n {this.state.showFailedContentModal && }\r\n \r\n UPLOAD IMAGE\r\n \r\n \r\n {({ getRootProps, getInputProps }) => {\r\n return (\r\n \r\n \r\n {\r\n

Click here to select the files to upload

\r\n }\r\n \r\n )\r\n }}\r\n \r\n {/*
\r\n \r\n
*/}\r\n { this.cropper = cropper; }}\r\n src={this.state.uploadedImgSrc}\r\n style={{ height: 400, width: '100%', margin: '10' }}\r\n // Cropper.js options\r\n aspectRatio={1 / 1}\r\n guides={false}\r\n crop={this._crop.bind(this)} />\r\n \r\n \r\n {/* */}\r\n
\r\n \r\n {' '}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n }\r\n
\r\n )\r\n } else {\r\n return (

Please login or create an account

)\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst Profile = connect(\r\n\r\n mapDispatchToProps\r\n)(ProfileContainer);\r\n\r\n\r\nexport default Profile","import React from 'react';\r\nimport queryString from 'query-string';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass GoogleAuthIntermediateContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n }\r\n\r\n reestablishUserAccount = () => {\r\n return new Promise(async (resolve, reject) => {\r\n const res = await this.apiClient.postJSON(this, \"/deleteUserAccount/reestablish\");\r\n if (res && res.status) {\r\n if (res.status === 200) {\r\n resolve(true)\r\n }\r\n else {\r\n reject(false)\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n })\r\n\r\n }\r\n\r\n async componentDidMount() {\r\n // let tokenExists = true\r\n // let urlToken = localStorage.getItem('jwtToken');\r\n // if (!urlToken) {\r\n // tokenExists = false;\r\n\r\n let urlToken = window.location.search.split(\"?token=\")[1].split(\"&accountType=\")[0];\r\n let accountType = window.location.search.split(\"&accountType=\")[1]\r\n let self = this;\r\n \r\n\r\n //}\r\n this.props.apiClient.getJSON(null, '/getUser/requestSignedToken', '?jwtToken=' + urlToken + \"&signinType=goog\")\r\n .then(async (res) => {\r\n \r\n if (res && res.status) {\r\n // If Account already exists, redirect to homepage\r\n if (res.data.jwtToken && res.data.user) {\r\n const { isAccountReestablished } = res.data\r\n // Ensure that user jwt token exists, plant new one in case of sign out\r\n localStorage.setItem('jwtToken', res.data.jwtToken);\r\n if (isAccountReestablished) {\r\n this.reestablishUserAccount().then((reRes) => {\r\n if (reRes && reRes.status) {\r\n if (reRes.data) {\r\n\r\n alert(\"We noticed you are logging into an account in the process of being deleted. If this is a mistake, please feel free to re-request account deletion again. You can create a fresh account by switching social providers.\");\r\n window.location.href = process.env.REACT_APP_CLIENT_URL;\r\n }\r\n else {\r\n alert(\"Something went wrong, please contact us\")\r\n }\r\n }\r\n else if (reRes && reRes.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n })\r\n }\r\n else {\r\n const appRoot = process.env.REACT_APP_CLIENT_URL;\r\n window.location.href = appRoot\r\n }\r\n }\r\n // Create new account\r\n else {\r\n\r\n // Reroute to generate account view TODO Refactor this ugly API code\r\n //localStorage.setItem('jwtToken', urlToken);\r\n //let tokenData = await this.props.apiClient.getJSON(this,'/getUser/decodeAndGenerateAccount', '?jwtToken='+urlToken);\r\n this.props.history.push(\"/tpSignUp\", {\r\n email: res.data.email,\r\n urlToken: urlToken,\r\n signinProvider: \"Google\",\r\n oldJWTToken: res.data.oldJWTToken,\r\n loginConsentType: accountType\r\n // userId: tokenData.sub,\r\n // thirdPartyUserid: tokenData.sub,\r\n // uid: tokenData.uid\r\n });\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst GoogleAuthIntermediate = connect(\r\n \r\n mapDispatchToProps\r\n)(GoogleAuthIntermediateContainer);\r\n\r\nexport default GoogleAuthIntermediate\r\n","import React, { Component } from \"react\";\r\nimport PropTypes from 'prop-types'\r\nimport VerifyUserVideo from '../video-verify/VerifyUserVideo';\r\nimport RecordNewVideo from '../player-recorder/RecordNewVideo';\r\nimport { connect } from 'react-redux';\r\nimport Moment from 'react-moment';\r\nimport DeleteContent from '../misc/DeleteContent';\r\nimport HighlightOffRoundedIcon from '@material-ui/icons/HighlightOffRounded';\r\nimport SelectSearch from 'react-select-search';\r\nimport \"../../styles/profile.css\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport Griddle, { plugins, RowDefinition, ColumnDefinition } from 'griddle-react';\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { debounce } from \"../../utils/utilMethods\";\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { FaChevronLeft, FaChevronRight, FaAngleDoubleLeft, FaAngleDoubleRight } from \"react-icons/fa\";\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport ReportVideoButton from '../report/ReportVideoButton';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nconst VIDEO_LIMIT = 8;\r\n\r\nclass UserVideoListingContainer extends Component {\r\n static contextTypes = {\r\n router: PropTypes.object\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n userId: this.props.userId,\r\n loggedInUser: this.props.loggedInUser,\r\n isCurrentUser: this.props.userId === this.props.loggedInUser,\r\n data: null,\r\n userVideo: null,\r\n openVerifyModal: false,\r\n openRecordNewModal: false,\r\n userLevel: this.props.userLevel,\r\n signedInGroupId: this.props.signedInGroupId,\r\n videoCount: 0,\r\n searchValue: '',\r\n currentPage: 1,\r\n targetTerm: \"\",\r\n wikiVideos: [],\r\n dropdownSelectOptions: [],\r\n subTabState: \"UserVideos\",\r\n wikiTotalCount: 0,\r\n totalPages: 1,\r\n userVideos: [],\r\n alreadyLoadedSeedIds: [],\r\n totalCount: 0,\r\n scrollDiv: '',\r\n isYourProfile: false,\r\n alreadyLoadedVideoIds: [],\r\n alreadyLoadedWikiIds: [],\r\n seedVideos: [],\r\n preLoadWiki: [],\r\n preLoadSeed: [],\r\n preLoadDictionary: [],\r\n seedCount: 0,\r\n wikiCount: 0,\r\n dictionaryCount: 0,\r\n isDropdownComplete: false,\r\n isLoading: false\r\n }\r\n\r\n this.onShowVerifyModal = this.onShowVerifyModal.bind(this);\r\n this.onShowRecordNewModal = this.onShowRecordNewModal.bind(this);\r\n this.updateVideoList = this.updateVideoList.bind(this);\r\n this.disableButton = this.disableButton.bind(this);\r\n }\r\n\r\n async componentWillMount() {\r\n if (!this.state.isLoading) {\r\n this.updateVideoList(this.state.searchValue, this.props.tabState);\r\n }\r\n \r\n }\r\n\r\n\r\n identifyFiltered = () => {\r\n switch (this.props.tabState) {\r\n case \"DictionaryVideos\":\r\n return [this.state.preLoadDictionary, this.state.userVideos, \"userVideos\", \"preLoadDictionary\"];\r\n case \"WikiVideos\":\r\n return [this.state.preLoadWiki, this.state.wikiVideos, \"wikiVideos\", \"preLoadWiki\"];\r\n case \"SeedVideos\":\r\n return [this.state.preLoadSeed, this.state.seedVideos, \"seedVideos\", \"preLoadSeed\"];\r\n default:\r\n return\r\n }\r\n }\r\n\r\n async componentWillReceiveProps(props) {\r\n\r\n if (this.state.userId !== props.userId && !this.state.isLoading) {\r\n this.setState({ userVideos: [] });\r\n this.updateVideoList(this.state.searchValue, this.props.tabState);\r\n }\r\n this.setState({\r\n userId: props.userId,\r\n userLevel: props.userLevel,\r\n loggedInUser: props.loggedInUser,\r\n signedInGroupId: props.signedInGroupId,\r\n isCurrentUser: props.userId === props.loggedInUser\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n window.onscroll = () => {\r\n const self = this;\r\n if (document.documentElement.scrollHeight - document.documentElement.scrollTop <= document.documentElement.clientHeight + 100) {\r\n let self = this;\r\n let itF = this.identifyFiltered();\r\n let targetFiltered = itF[0];\r\n let targetDataInWaiting = itF[1];\r\n let targetStateProperty = itF[2];\r\n let preloadStateProperty = itF[3];\r\n\r\n if (targetFiltered.length > 0 && targetDataInWaiting.length > 0) {\r\n const targetAdd = targetDataInWaiting.slice(0, VIDEO_LIMIT);\r\n const dataRemnants = targetDataInWaiting.slice(VIDEO_LIMIT, targetDataInWaiting.length);\r\n this.setState({ [targetStateProperty]: dataRemnants });\r\n const newFilterSet = [...targetFiltered, ...targetAdd];\r\n if (preloadStateProperty === \"preLoadDictionary\") {\r\n this.setState({ preLoadDictionary: newFilterSet });\r\n }\r\n else {\r\n this.setState({ [preloadStateProperty]: newFilterSet });\r\n }\r\n\r\n }\r\n else {\r\n };\r\n }\r\n }\r\n }\r\n\r\n switchSubFocus = (tabFocus) => {\r\n this.setState({ subTabState: tabFocus });\r\n }\r\n\r\n\r\n pullVideos = async (search, isSilent, extension, secondPull) => {\r\n // isSilent is false on first pull, results from first pull show up immediately.\r\n if (extension === \"DictionaryVideos\") {\r\n //\r\n }\r\n if (!isSilent) {\r\n // alert(\"invoked \" + extension)\r\n await this.setState({\r\n alreadyLoadedVideoIds: [], dataInWaiting: [], totalCount: 0, preLoadWiki: [], alreadyLoadedSeedIds: [],\r\n preLoadSeed: [],\r\n preLoadDictionary: []\r\n })\r\n }\r\n await this.setState({ isYourProfile: this.isYourProfile() });\r\n return new Promise((resolve, reject) => {\r\n var self = this;\r\n\r\n const body = {\r\n isSilent,\r\n targetLetter: this.state.targetLetter,\r\n search: search,\r\n alreadyLoadedVideoIds: this.state.alreadyLoadedVideoIds,\r\n alreadyLoadedWikiIds: this.state.alreadyLoadedWikiIds,\r\n alreadyLoadedSeedIds: this.state.alreadyLoadedSeedIds,\r\n email: this.props.email,\r\n targetUserId: this.state.isYourProfile ? this.props.targetProfileId : this.props.userId,\r\n isYourProfile: this.state.isYourProfile\r\n }\r\n\r\n this.apiClient.postJSON(this, \"/userVideosFilterByUser/\" + extension, body)\r\n .then(async (res) => {\r\n if (extension === \"DictionaryVideos\") {\r\n // \r\n }\r\n if (res && res.status) {\r\n var self = this;\r\n\r\n if (!res.data.isSilent) {\r\n\r\n if (extension === \"DictionaryVideos\") {\r\n let alis = []\r\n let salis = []\r\n let pD = [];\r\n let pS = [];\r\n if (res.data.seedVideos) {\r\n self.state.seedCount += res.data.seedVideos.length;\r\n salis = [...this.state.alreadyLoadedSeedIds, ...res.data.seedVideos.map((mv) => mv.id.toString())];\r\n pS = [...res.data.seedVideos];\r\n }\r\n if (res.data.userVideos) {\r\n self.state.videoCount += res.data.userVideos.length;\r\n alis = [...this.state.alreadyLoadedVideoIds, ...res.data.userVideos.map((mv) => mv.id.toString())];\r\n pD = [...res.data.userVideos]\r\n }\r\n\r\n await this.setState({ alreadyLoadedVideoIds: alis, showCount: false, alreadyLoadedSeedIds: salis });\r\n await this.setState({ preLoadDictionary: pD, preLoadSeed: pS });\r\n }\r\n else if (extension === \"WikiVideos\") {\r\n // Filter for count only\r\n let paidUserVideos = res.data.userVideos.filter((wiki) => {\r\n return !wiki.wasFromUnpaidStudy\r\n });\r\n await this.setState({ wikiCount: paidUserVideos.length });\r\n let newIds = res.data.userVideos.map((mv) => mv.id.toString());\r\n const walis = [...self.state.alreadyLoadedWikiIds, ...newIds];\r\n await this.setState({ alreadyLoadedWikiIds: walis, showCount: false });\r\n await this.setState({ preLoadWiki: [...res.data.userVideos] });\r\n \r\n }\r\n if (secondPull) {\r\n if (extension === \"DictionaryVideos\") {\r\n // \r\n }\r\n // Silent Query\r\n this.pullVideos(search, true, extension, false);\r\n }\r\n }\r\n else {\r\n if (extension === \"DictionaryVideos\") {\r\n self.state.seedCount += res.data.seedVideos.length;\r\n self.state.videoCount += res.data.userVideos.length;\r\n // this.setState({ totalCount: self.state.totalCount += res.totalCount });\r\n if (res.data.userVideos && res.data.userVideos.length > 0) {\r\n await this.setState({ userVideos: [...res.data.userVideos], showCount: true });\r\n }\r\n if (res.data.seedVideos && res.data.seedVideos.length > 0) {\r\n await this.setState({ seedVideos: [...res.data.seedVideos], showCount: true });\r\n }\r\n }\r\n else if (extension === \"WikiVideos\") {\r\n // Filter for count only\r\n let paidUserVideos = res.data.userVideos.filter((wiki) => {\r\n return !wiki.wasFromUnpaidStudy\r\n });\r\n this.state.wikiCount += paidUserVideos.length\r\n // this.setState({ wikiTotalCount: self.state.wikiTotalCount += res.totalCount }); \r\n await this.setState({ wikiVideos: [...res.data.userVideos] });\r\n }\r\n }\r\n if (extension === \"DictionaryVideos\") {\r\n if (!this.state.isDropdownComplete || !this.state.dropdownSelectOptions.length) {\r\n this.setDropdownState([...this.state.dropdownSelectOptions, ...res.data.userVideos, ...res.data.seedVideos]);\r\n }\r\n }\r\n else {\r\n if (!this.state.isDropdownComplete || !this.state.dropdownSelectOptions.length) {\r\n this.setDropdownState([...this.state.dropdownSelectOptions, ...res.data.userVideos]);\r\n }\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n\r\n })\r\n });\r\n }\r\n\r\n updateVideoList = async (search, extension) => {\r\n // \r\n var self = this;\r\n\r\n await self.setState({ seedCount: 0, wikiCount: 0, dictionaryCount: 0, videoCount: 0, isLoading: true });\r\n\r\n // Initial Pull Loads Limit\r\n this.pullVideos(search, false, \"DictionaryVideos\", true);\r\n\r\n this.pullVideos(search, false, \"WikiVideos\", true);\r\n }\r\n\r\n // search = async () => {\r\n // await this.setState({ totalCount: 0, wikiTotalCount: 0 })\r\n // if (this.state.searchValue && this.state.searchValue !== '') {\r\n // this.updateVideoList(this.state.searchValue, this.props.tabState);\r\n // } else {\r\n // this.updateVideoList('', this.props.tabState);\r\n // }\r\n // }\r\n\r\n updateQueryResults = (query) => {\r\n // this.debounceSearchText(query, this.search);\r\n }\r\n\r\n\r\n // debounceInitTime;\r\n // debounceSearchText = debounce();\r\n\r\n handleSearchInputChange = (event) => {\r\n // const target = event.target;\r\n // const value = target.type === 'checkbox' ? target.checked : target.value;\r\n // const name = target.name;\r\n this.setState({\r\n [event]: event,\r\n errors: {}\r\n });\r\n this.setState({ targetTerm: event })\r\n // this.updateQueryResults(event)\r\n }\r\n\r\n clearSearchResults = async () => {\r\n await this.setState({ targetTerm: \"\" });\r\n }\r\n\r\n onShowVerifyModal = (userVideo) => {\r\n this.setState({ userVideo: userVideo, openVerifyModal: true });\r\n }\r\n\r\n onShowRecordNewModal = (userVideo) => {\r\n this.setState({ userVideo: userVideo, openRecordNewModal: true });\r\n }\r\n\r\n onClick = () => this.props.history.push(`/verify/${this.name}`);\r\n\r\n toggleVerifyPopup = (event) => {\r\n event.preventDefault();\r\n this.setState(prevState => ({\r\n openVerifyModal: !prevState.openVerifyModal\r\n }));\r\n }\r\n\r\n toggleRecordNewPopup = (event) => {\r\n event.preventDefault();\r\n this.setState(prevState => ({\r\n openRecordNewModal: !prevState.openRecordNewModal\r\n }));\r\n }\r\n\r\n disableButton = (userVideo) => {\r\n var verifyResults = userVideo.verifyResults;\r\n var parent = this;\r\n if (verifyResults !== undefined) {\r\n var newResults = verifyResults.filter(function (item) {\r\n return item.verifiedByUser === parent.props.loggedInUser;\r\n });\r\n if ((newResults && newResults.length > 0) || (userVideo.user.id === this.props.loggedInUser)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else if (userVideo.user.id === this.props.loggedInUser) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n setDropdownState = (data) => {\r\n this.setState({ dropdownSelectOptions: data, searchVisible: true })\r\n }\r\n\r\n getOptions = async (query) => {\r\n try {\r\n let loadOptions = null;\r\n const options = await new Promise((resolve, reject) => {\r\n loadOptions = setInterval(async () => {\r\n try {\r\n if (this.state.dropdownSelectOptions.length > 0) {\r\n var self = this;\r\n const filtered = self.state.dropdownSelectOptions.filter((select) => {\r\n let result = false;\r\n if (select.name) {\r\n result = (select.name.toUpperCase()).includes(query.toUpperCase());\r\n }\r\n else {\r\n result = (select.sentence.toUpperCase()).includes(query.toUpperCase());\r\n }\r\n return result;\r\n });\r\n const filteredNames = filtered.map((item) => {\r\n if (item.name) {\r\n return { name: item.name, value: item.name }\r\n }\r\n else {\r\n const resi = item.sentence.substring(0, 15) + \"...\";\r\n return { name: resi, value: item.sentence }\r\n }\r\n })\r\n resolve(filteredNames)\r\n }\r\n }\r\n catch (e) {\r\n resolve([])\r\n }\r\n }, 200)\r\n });\r\n clearInterval(loadOptions);\r\n this.setState({ sOptions: options })\r\n return options;\r\n }\r\n catch (e) {\r\n return []\r\n }\r\n }\r\n\r\n isYourProfile = () => {\r\n const urlString = window.location.href;\r\n var url = new URL(urlString);\r\n\r\n var uid = url.searchParams.get(\"userId\");\r\n // Another users account\r\n if (uid) {\r\n // alert(\"NOT YOUR PROFILE\")\r\n return false\r\n }\r\n else {\r\n // alert(\"YOUR PROFILE\")\r\n return true\r\n }\r\n\r\n }\r\n\r\n // verifyCallback = () => {\r\n // this.updateVideoList(this.state.searchValue, this.props.tabState);\r\n // this.setState({ openVerifyModal: false });\r\n // }\r\n\r\n // recordCallback = () => {\r\n // this.updateVideoList(this.state.searchValue, this.props.tabState);\r\n // this.setState({ openRecordNewModal: false });\r\n // }\r\n\r\n flagRemoval = () => {\r\n\r\n }\r\n\r\n handleScroll = () => {\r\n var target = this.state.scrollDiv;\r\n if (target !== \"\") {\r\n target.scrollTop = 0;\r\n }\r\n }\r\n\r\n handleClick = (event) => {\r\n event.preventDefault();\r\n this.setState({ scrollDiv: event.target });\r\n }\r\n\r\n generateShareUrl = (id) => {\r\n const rootUrl = process.env.REACT_APP_CLIENT_URL;\r\n const specificUrl = rootUrl + '/playVideo?id=' + id;\r\n return specificUrl;\r\n }\r\n\r\n render() {\r\n const flaggedMsg =

WARNING: This video has been flagged and we are in the process of reviewing it.

\r\n\r\n var self = this;\r\n\r\n var wikiVideos = self.state.preLoadWiki.map((userVideo, index) => {\r\n if (!userVideo.sentence.includes(this.state.targetTerm) && this.state.targetTerm.length > 0) {\r\n return (null);\r\n }\r\n else {\r\n return (\r\n\r\n
\r\n
\r\n
\r\n {/* {((userVideo.avertJobId && userVideo.avertJobStatus === \"InProgress\") || !userVideo.verifiedCVS) &&\r\n
\r\n \r\n WARNING: This video is currently under review.\r\n \r\n \r\n
\r\n } */}\r\n {(userVideo.avertFlagViolated || userVideo.flaggedByCVS) &&\r\n
\r\n \r\n NOTE: Inappropriate content was detected in this video, so it is not visible throughout the site.\r\n \r\n
\r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n {userVideo.articleName}\r\n

{userVideo.sentence}

\r\n
\r\n
\r\n \r\n {userVideo.date}\r\n \r\n\r\n
\r\n
\r\n 5\r\n
\r\n
\r\n {/* */}\r\n {this.state.isYourProfile &&
\r\n this.flagRemoval()} data={userVideo} loggedInUserId={this.props.loggedInUser} />\r\n
\r\n }\r\n {this.state.isYourProfile && \r\n }\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n );\r\n }\r\n });\r\n\r\n\r\n\r\n var seedVideos = self.state.preLoadSeed.map((userVideo, index) => {\r\n if (!userVideo.name.includes(this.state.targetTerm) && this.state.targetTerm.length > 0) {\r\n return (null);\r\n }\r\n else {\r\n return (\r\n\r\n
\r\n
\r\n
\r\n {/* {((userVideo.avertJobId && userVideo.avertJobStatus === \"InProgress\") || !userVideo.verifiedCVS) &&\r\n
\r\n \r\n WARNING: This video is currently under review.\r\n \r\n \r\n
\r\n } */}\r\n {(userVideo.avertFlagViolated) &&\r\n
\r\n \r\n NOTE: Inappropriate content was detected in this video, so it is not visible throughout the site.\r\n \r\n
\r\n }\r\n \r\n
\r\n
\r\n
\r\n {userVideo.name}\r\n
\r\n
\r\n \r\n {userVideo.date}\r\n \r\n\r\n
\r\n
\r\n 5\r\n
\r\n
\r\n {!this.state.isYourProfile &&
\r\n this.flagRemoval()} data={userVideo} loggedInUserId={this.props.loggedInUser} />\r\n
\r\n }\r\n {/* */}\r\n {this.state.isYourProfile &&\r\n \r\n }\r\n
\r\n
\r\n\r\n );\r\n }\r\n });\r\n\r\n var userVideos = self.state.preLoadDictionary.map((userVideo, index) => {\r\n\r\n if (this.state.targetTerm && (!userVideo.name.includes(this.state.targetTerm) && this.state.targetTerm.length > 0)) {\r\n return (null);\r\n }\r\n else {\r\n\r\n if (!userVideo.convertedUrl) {\r\n return null;\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n {/* {((userVideo.avertJobId && userVideo.avertJobStatus === \"InProgress\") || !userVideo.verifiedCVS) &&\r\n
\r\n \r\n WARNING: This video is currently under review.\r\n \r\n \r\n
\r\n } */}\r\n {(userVideo.avertFlagViolated) &&\r\n
\r\n \r\n NOTE: Inappropriate content was detected in this video, so it is not visible throughout the site.\r\n \r\n
\r\n }\r\n \r\n
\r\n
\r\n
\r\n {userVideo.name}\r\n
\r\n
\r\n \r\n {userVideo.date}\r\n \r\n\r\n
\r\n
\r\n 2\r\n
\r\n
\r\n {/* */}\r\n {!this.state.isYourProfile &&
\r\n this.flagRemoval()} data={userVideo} loggedInUserId={this.props.loggedInUser} />\r\n
\r\n }\r\n {this.state.isYourProfile && \r\n }\r\n
\r\n
\r\n );\r\n }\r\n });\r\n\r\n return (\r\n \r\n\r\n
\r\n
\r\n {\r\n if (event.key === 'Enter') {\r\n this.search()\r\n }\r\n }}\r\n >\r\n\r\n\r\n \r\n {this.state.targetTerm.length > 0 && }\r\n\r\n
\r\n {this.props.tabState === \"DictionaryVideos\" &&\r\n
this.switchSubFocus(\"UserVideos\")} className=\"tabs-item\"\r\n style={{\r\n borderBottom: this.state.subTabState === \"UserVideos\" ? \"4px solid #127BC2\" : \"none\",\r\n color: this.state.subTabState === \"UserVideos\" ? \"#127BC2\" : \"#697777\",\r\n paddingBottom: \"0px\"\r\n }}>\r\n {this.state.isYourProfile &&\r\n Your User Videos}\r\n {!this.state.isYourProfile &&\r\n User Videos}\r\n
\r\n }\r\n\r\n {this.props.tabState === \"DictionaryVideos\" &&\r\n\r\n
this.switchSubFocus(\"SeedVideos\")} className=\"tabs-item\" style={{\r\n borderBottom: this.state.subTabState === \"SeedVideos\" ? \"4px solid #127BC2\" : \"none\",\r\n color: this.state.subTabState === \"SeedVideos\" ? \"#127BC2\" : \"#697777\",\r\n paddingBottom: \"0px\",\r\n marginLeft: \"20px\"\r\n }}>\r\n {this.state.isYourProfile &&\r\n Your Seed Videos}\r\n {!this.state.isYourProfile &&\r\n Seed Videos}\r\n
\r\n }\r\n {(this.props.tabState === \"DictionaryVideos\" && this.state.userVideos && this.state.seedVideos && this.state.isYourProfile) &&\r\n Total Dictionary Video Count: {(this.props.tabState2 + this.props.totalUserVideos)}\r\n \r\n }\r\n {(this.props.tabState === \"WikiVideos\" && this.state.isYourProfile) &&\r\n Total Wiki Video Count: {this.state.wikiCount}\r\n }\r\n\r\n
\r\n
\r\n
Sign
\r\n
\r\n
Date Recorded
\r\n
Points
\r\n
\r\n
\r\n
\r\n\r\n {this.props.tabState === \"DictionaryVideos\" &&\r\n
\r\n
\r\n {(seedVideos.length > 0 && this.state.subTabState === \"SeedVideos\") &&\r\n
\r\n\r\n {seedVideos}\r\n
\r\n }\r\n\r\n {(userVideos.length > 0 && this.state.subTabState === \"UserVideos\") &&\r\n
\r\n {userVideos}\r\n
\r\n }\r\n
\r\n
\r\n }\r\n {this.props.tabState === \"WikiVideos\" &&\r\n
\r\n
\r\n {wikiVideos}\r\n
\r\n
\r\n }\r\n
\r\n\r\n \r\n Verify User Video\r\n \r\n this.verifyCallback()} userId={this.props.loggedInUser} />\r\n \r\n \r\n \r\n \r\n \r\n Record New Video\r\n {/* \r\n this.recordCallback()} userId={this.props.loggedInUser} email={this.props.email} signedInGroupId={this.props.signedInGroupId} />\r\n */}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst UserVideoListing = connect(\r\n\r\n mapDispatchToProps\r\n)(UserVideoListingContainer);\r\n\r\nexport default UserVideoListing;\r\n","import React from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\nimport Dropzone from 'react-dropzone';\r\nimport Cropper from 'react-cropper';\r\nimport DatePicker from \"react-datepicker\";\r\nimport UserVideoListing from \"../../components/video-ui/UserVideoListing\";\r\nimport SocialIconsHeader from '../../components/social/SocialIconsHeader';\r\nimport { SocialIcon } from 'react-social-icons';\r\nimport moment from 'moment';\r\nimport '../../../node_modules/cropperjs/dist/cropper.css';\r\nimport '../../../node_modules/react-datepicker/dist/react-datepicker.css';\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { MdInfoOutline } from \"react-icons/md\";\r\nimport ReactTooltip from 'react-tooltip';\r\nimport \"../../styles/profile.css\";\r\nimport AriaModal from 'react-aria-modal';\r\nimport BlockUi from 'react-block-ui';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { verifyTextContent } from \"../../utils/verifyText\";\r\nimport DisappearNotification from \"./../../modals/disappearNotification\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nconst queryString = require('query-string');\r\n\r\n\r\n\r\nclass UserProfileContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n const parsed = queryString.parse(props.location.search);\r\n const userId = parsed.userId !== undefined ? parsed.userId : this.props.loggedInUser;\r\n const emailId = parsed.email !== undefined ? parsed.email : this.props.email;\r\n\r\n this.state = {\r\n userId: parsed.userId !== undefined ? parsed.userId : this.props.loggedInUser,\r\n loggedInUser: this.props.loggedInUser,\r\n loggedInUserEmail: this.props.email,\r\n thirdPartyUserid: parsed.uniqueId !== undefined ? parsed.uniqueId : this.props.thirdPartyUserid,\r\n loggedInUserUniqueId: this.props.thirdPartyUserid,\r\n userLevel: this.props.userLevel,\r\n isSocialMediaEnabled: parsed.isSocialEnabled,\r\n signedInGroupId: this.props.signedInGroupId,\r\n isYourProfile: false,\r\n targetUserId: undefined,\r\n userName: '',\r\n email: emailId,\r\n allowProfileRender: false,\r\n TotalRecordedVideos: 0,\r\n TotalVerifiedVideos: 0,\r\n TotalUserVideosCount: 0,\r\n TotalModelVideosCount: 0,\r\n RecordVideoPercentage: 0,\r\n VerifyVideoPercentage: 0,\r\n isProfileLoading: false,\r\n isProfileLoaded: false,\r\n showConfirmDeleteDialog: false,\r\n gender: '',\r\n dob: '',\r\n aslLevel: '',\r\n identity: '',\r\n startedAge: '',\r\n homeState: '',\r\n aboutMe: '',\r\n openUploadModal: false,\r\n uploadedFile: null,\r\n uploadedImgSrc: '',\r\n originalImgSrc: '',\r\n cropResult: '',\r\n profileImg: '',\r\n profilepicbuttonsEnable: true,\r\n readonly: true,\r\n enableEdit: false,\r\n isEditAvailable: this.props.loggedInUser === userId,\r\n userVideos: [],\r\n tabState: \"DictionaryVideos\",\r\n userAge: undefined,\r\n editMode: false\r\n }\r\n const self = this;\r\n this.cropImage = this.cropImage.bind(this);\r\n this.deleteUserAccount = this.deleteUserAccount.bind(this);\r\n this.restoreOriginal = this.restoreOriginal.bind(this);\r\n this.enableEdit = this.enableEdit.bind(this);\r\n //this.calculateAge = this.calculateAge.bind(this);\r\n }\r\n\r\n showConfirmDeleteDialog = () => {\r\n this.setState({ showConfirmDeleteDialog: !this.state.showConfirmDeleteDialog });\r\n }\r\n\r\n deleteUserAccount = async () => {\r\n var vresponse = await this.apiClient.postJSON(this, \"/deleteUserAccount\", this.props);\r\n if (vresponse && vresponse.status) {\r\n if (vresponse.status === 200) {\r\n await this.setState({ show: false });\r\n localStorage.removeItem(\"jwtToken\");\r\n alert(\"Your account is about to be deleted. Your account information and videos are no longer visible. If this was a mistake, we'll keep your account for a time, and you can login again to restore its contents.\")\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n }\r\n else {\r\n alert(\"Unable to delete\");\r\n }\r\n return vresponse;\r\n }\r\n else if (vresponse && vresponse.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n }\r\n\r\n whichUser = async () => {\r\n const urlString = window.location.href;\r\n var url = new URL(urlString);\r\n var uid = url.searchParams.get(\"userId\");\r\n const self = this;\r\n // if (self.state.targetProfileId) {\r\n // \r\n // }\r\n // if (((this.state.targetProfileId !== uid) && (!this.state.isProfileLoading && !this.state.isProfileLoaded))) {\r\n // this.loadProfile(this.state.targetProfileId);\r\n // }\r\n\r\n // Another users account\r\n if (uid) {\r\n await this.setState({ isYourProfile: false, targetProfileId: uid });\r\n }\r\n else {\r\n await this.setState({ isYourProfile: true, targetProfileId: null });\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n var self = this;\r\n let jwt = localStorage.getItem(\"jwtToken\");\r\n if (!jwt) {\r\n window.location = process.env.PUBLIC_URL + \"/tpLogin\";\r\n }\r\n else {\r\n this.setState({ allowProfileRender: true })\r\n }\r\n this.whichUser()\r\n const parsed = queryString.parse(this.props.location.search);\r\n const thirdPartyUserid = parsed.uniqueId !== undefined ? parsed.uniqueId : this.props.thirdPartyUserid;\r\n this.loadProfile(thirdPartyUserid);\r\n }\r\n componentWillReceiveProps(props) {\r\n const self = this;\r\n const parsed = queryString.parse(props.location.search);\r\n const userId = parsed.userId !== undefined ? parsed.userId : this.props.loggedInUser;\r\n const thirdPartyUserid = parsed.uniqueId !== undefined ? parsed.uniqueId : props.thirdPartyUserid;\r\n this.setState({\r\n loggedInUser: props.loggedInUser,\r\n loggedInUserEmail: props.email,\r\n userLevel: props.userLevel,\r\n loggedInUserUniqueId: props.thirdPartyUserid,\r\n thirdPartyUserid: parsed.uniqueId !== undefined ? parsed.uniqueId : props.thirdPartyUserid,\r\n userId: parsed.userId !== undefined ? parsed.userId : props.loggedInUser,\r\n isEditAvailable: props.loggedInUser === userId,\r\n signedInGroupId: props.signedInGroupId\r\n });\r\n if ((thirdPartyUserid !== props.loggedInUser) && (!this.state.isProfileLoading)) {\r\n\r\n this.loadProfile(thirdPartyUserid);\r\n }\r\n }\r\n\r\n loadProfile = async (thirdPartyUserid) => {\r\n\r\n await this.setState({\r\n isProfileLoading: true\r\n });\r\n let self = this;\r\n if (self.state.isYourProfile) {\r\n\r\n this.loadUserScores();\r\n }\r\n await this.setState({ isProfileLoading: true });\r\n\r\n this.apiClient.getJSON(this, \"/loadProfile?thirdPartyUserId=\" + thirdPartyUserid)\r\n .then((res) => {\r\n if (res && res.status) {\r\n if (res.data.profile !== null) {\r\n if (res.data.profile.birthday !== null) {\r\n this.calculateAge(new Date(res.data.profile.birthday));\r\n }\r\n this.setState({\r\n isProfileLoaded: true,\r\n isProfileLoading: false,\r\n xpPoints: res.data.xpPoints,\r\n gender: res.data.profile.gender,\r\n userName: res.data.profile.userName,\r\n email: res.data.profile.email,\r\n dob: (res.data.profile.birthday !== undefined && res.data.profile.birthday !== null) ? new Date(res.data.profile.birthday) : '',\r\n aslLevel: res.data.profile.aslLevel,\r\n startedAge: res.data.profile.startedAge,\r\n homeState: res.data.profile.homeState,\r\n aboutMe: res.data.profile.about,\r\n profileImg: res.data.profile.img,\r\n isEditAvailable: (this.state.loggedInUser === this.state.userId),\r\n isFlaggedImg: res.data.profile.isFlagged,\r\n identity: res.data.profile.identity\r\n });\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n this.setState({ isLoggedOut: false });\r\n });\r\n\r\n }\r\n\r\n getUserLevelDisplayText = () => {\r\n if (this.state.userLevelName === \"Rookie\") {\r\n return \"Rookie\";\r\n }\r\n return this.state.userLevelName;\r\n }\r\n\r\n getUserLevelStatus = () => {\r\n var text = \"You are currently at \" + this.getUserLevelDisplayText() + \" level! \";\r\n var currentTotalCount = this.state.TotalRecordedVideos;\r\n if (currentTotalCount < 10) {\r\n var countReqForNextLevel = 10 - currentTotalCount;\r\n text += countReqForNextLevel + \" videos required to go to pro level!\";\r\n } else if (currentTotalCount <= 49) {\r\n var countReqForNextLevel1 = 50 - currentTotalCount;\r\n text += countReqForNextLevel1 + \" videos required to go to beast level!\";\r\n }\r\n this.setState({ userLevelStatusText: text });\r\n }\r\n\r\n loadUserScores = () => {\r\n const self = this;\r\n\r\n this.apiClient.getJSON(this, \"/getUserScores\")\r\n .then((res) => {\r\n if (res && res.status) {\r\n if (res.data) {\r\n var scoresData = res.data;\r\n const wikiCount = scoresData.wikiCount;\r\n this.setState({\r\n userSpecificLevel: scoresData.level,\r\n pointScore: scoresData.xpPoints,\r\n TotalRecordedVideos: scoresData.totalRecordedVideos,\r\n TotalModelVideos: scoresData.totalModelVideos,\r\n TotalVerifiedVideos: scoresData.totalVerifiedVideos,\r\n TotalUserVideosCount: scoresData.totalUserVideos\r\n });\r\n this.getUserLevelStatus();\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n this.setState({ isLoggedOut: false });\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n handleInputChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n const name = target.name;\r\n this.setState({\r\n [name]: value\r\n });\r\n }\r\n\r\n\r\n handleDateChange = (date) => {\r\n\r\n this.setState({ dob: date });\r\n }\r\n\r\n callSaveProfile = async () => {\r\n\r\n\r\n //if (this.state.aboutMe) {\r\n\r\n // let isTextFlagged = await verifyTextContent(this.apiClient, this.state.aboutMe, this, \"aboutMarker\");\r\n // if (isTextFlagged) {\r\n // return;\r\n // }\r\n\r\n // }\r\n // else {\r\n // this.setState({ cvsTextProcessing: false });\r\n // }\r\n this.setState({ cvsTextProcessing: false });\r\n\r\n\r\n var url = \"/saveProfile/update\";\r\n const vresponse = await this.apiClient.postJSON(this, url, this.state);\r\n if (vresponse && vresponse.status) {\r\n if (vresponse.status === 200) {\r\n return vresponse;\r\n }\r\n }\r\n else if (vresponse && vresponse.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n };\r\n\r\n calculateAge = (bD) => {\r\n var today = new Date();\r\n var birthDate = new Date(bD);\r\n var age = today.getFullYear() - birthDate.getFullYear();\r\n var m = today.getMonth() - birthDate.getMonth();\r\n\r\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n var ageInYears = age + \" yrs\";\r\n this.setState({ userAge: ageInYears });\r\n }\r\n\r\n saveProfile = async (event) => {\r\n event.preventDefault();\r\n let self = this;\r\n\r\n this.calculateAge(new Date(this.state.dob));\r\n\r\n let res = await this.callSaveProfile()\r\n\r\n if (res && res.status === 200) {\r\n //this.props.history.push('/');\r\n this.setState({ enableEdit: false });\r\n } else {\r\n const error = new Error(res.error);\r\n throw error;\r\n }\r\n }\r\n\r\n\r\n\r\n _crop() {\r\n // image in dataUrl\r\n }\r\n\r\n onImageDrop(files) {\r\n this.setState({\r\n uploadedFile: files[0],\r\n profilepicbuttonsEnable: !(files.length > 0)\r\n });\r\n var reader = new FileReader();\r\n var url = reader.readAsDataURL(files[0]);\r\n reader.onloadend = function (e) {\r\n this.setState({\r\n uploadedImgSrc: reader.result,\r\n originalImgSrc: reader.result\r\n })\r\n }.bind(this);\r\n };\r\n\r\n toggleUploadPopup = (event) => {\r\n event.preventDefault();\r\n this.setState(prevState => ({\r\n openUploadModal: !prevState.openUploadModal\r\n }));\r\n }\r\n cropImage() {\r\n if (typeof this.cropper.getCroppedCanvas() === 'undefined') {\r\n return;\r\n }\r\n this.setState({\r\n uploadedImgSrc: this.cropper.getCroppedCanvas().toDataURL(),\r\n });\r\n }\r\n restoreOriginal() {\r\n this.setState({\r\n uploadedImgSrc: this.state.originalImgSrc\r\n });\r\n }\r\n\r\n enableEdit(event) {\r\n event.preventDefault();\r\n this.setState({ enableEdit: true });\r\n }\r\n\r\n switchFocus = (tabFocus) => {\r\n this.setState({ tabState: tabFocus });\r\n }\r\n\r\n render() {\r\n if (!this.state.allowProfileRender || !this.state.isYourProfile) {\r\n return (\r\n
This view has been restricted
\r\n )\r\n }\r\n const parsed = queryString.parse(this.props.location.search);\r\n const userId = parsed.userId !== undefined ? parsed.userId : this.props.loggedInUser;\r\n const showControl = this.state.enableEdit ? {} : { display: 'none' };\r\n const hideControl = !this.state.enableEdit ? {} : { display: 'none' };\r\n const showGender = (this.state.gender === \"PNTD\" && !this.state.isEditAvailable) ? { display: 'none' } : {};\r\n const flaggedMsgContent =

WARNING: This profile pic has been flagged and we are in the process of reviewing it.

;\r\n return (\r\n \r\n \r\n
\r\n {/* {(this.state.userName && this.state.isYourProfile) &&\r\n
\r\n
\r\n
\r\n Welcome back, {this.state.userName}\r\n
\r\n
\r\n {this.state.userSpecificLevel === \"MVP\" &&\r\n You are currently at {this.state.userSpecificLevel} level!\r\n }\r\n {this.state.userSpecificLevel !== \"MVP\" &&\r\n You are currently at {this.state.userSpecificLevel} level! Keep adding and verifying videos to get to the next level.\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.state.userName}\r\n
\r\n
\r\n \r\n LEVEL\r\n \r\n \r\n {this.state.userSpecificLevel}\r\n \r\n
\r\n
\r\n \r\n Point Score\r\n \r\n \r\n {this.state.xpPoints}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.TotalRecordedVideos}\r\n \r\n \r\n / {this.state.TotalModelVideosCount}\r\n \r\n
\r\n
\r\n \r\n Total Recorded Videos\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.TotalVerifiedVideos}\r\n \r\n \r\n / {this.state.TotalUserVideosCount}\r\n \r\n
\r\n
\r\n \r\n Total Verified Videos\r\n \r\n
\r\n
\r\n
\r\n
\r\n } */}\r\n
\r\n
\r\n
this.switchFocus(\"Profile\")} className=\"tabs-item\" style={{\r\n borderBottom: this.state.tabState === \"Profile\" ? \"4px solid #6E6E6E\" : \"none\",\r\n color: this.state.tabState === \"Profile\" ? \"#333333\" : \"#697777\",\r\n marginLeft: \"0px\"\r\n }}>\r\n Profile\r\n
\r\n
this.switchFocus(\"DictionaryVideos\")} className=\"tabs-item\"\r\n style={{\r\n borderBottom: this.state.tabState === \"DictionaryVideos\" ? \"4px solid #6E6E6E\" : \"none\",\r\n color: this.state.tabState === \"DictionaryVideos\" ? \"#333333\" : \"#697777\"\r\n }}>\r\n Dictionary Videos\r\n
\r\n
this.switchFocus(\"WikiVideos\")} className=\"tabs-item\"\r\n style={{\r\n borderBottom: this.state.tabState === \"WikiVideos\" ? \"4px solid #6E6E6E\" : \"none\",\r\n color: this.state.tabState === \"WikiVideos\" ? \"#333333\" : \"#697777\"\r\n }}>\r\n Wiki Videos\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {this.state.tabState !== \"Profile\" &&\r\n \r\n }\r\n {this.state.tabState === \"Profile\" &&\r\n\r\n\r\n\r\n
\r\n
\r\n {this.state.enableEdit && }\r\n {this.state.isEditAvailable &&\r\n \r\n \r\n \r\n \r\n\r\n\r\n }\r\n
\r\n
\r\n
\r\n

About

\r\n \r\n
\r\n
\r\n {this.state.enableEdit &&\r\n \r\n \r\n {this.state.aboutMarker && Please fix the about me content.}\r\n \r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.aboutMe &&\r\n {this.state.aboutMe}\r\n }\r\n {!this.state.aboutMe &&\r\n None Selected\r\n }\r\n

\r\n }\r\n
\r\n
\r\n {this.state.isYourProfile &&
\r\n
\r\n

Username

\r\n
\r\n
\r\n {this.state.enableEdit &&\r\n \r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.email !== undefined &&\r\n {this.state.userName}\r\n }\r\n {this.state.userName === undefined &&\r\n None Selected\r\n }\r\n

\r\n }\r\n
\r\n
\r\n }\r\n {this.state.isYourProfile &&
\r\n
\r\n \r\n

Email

\r\n
\r\n
\r\n {this.state.enableEdit &&\r\n \r\n\r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.email !== undefined &&\r\n {this.state.email}\r\n }\r\n {this.state.email === undefined &&\r\n None Selected\r\n }\r\n

\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n

Gender

\r\n
\r\n
\r\n {this.state.enableEdit && \r\n }\r\n {!this.state.enableEdit &&\r\n
\r\n {this.state.gender &&\r\n {this.state.gender}\r\n }\r\n {!this.state.gender &&\r\n None Selected\r\n }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Age

\r\n\r\n
\r\n
\r\n {this.state.enableEdit &&\r\n \r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.userAge &&\r\n {this.state.userAge}\r\n }\r\n {!this.state.userAge &&\r\n None Selected\r\n }\r\n

\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Birthday

\r\n
\r\n
\r\n this.handleDateChange(date)}\r\n required />\r\n
\r\n
\r\n
\r\n {this.state.isYourProfile &&\r\n
\r\n
\r\n \r\n

Identify

\r\n
\r\n {this.state.enableEdit &&
\r\n \r\n\r\n
\r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.identity &&\r\n {this.state.identity}\r\n }\r\n {!this.state.identity === undefined &&\r\n None Selected\r\n }\r\n

\r\n }\r\n\r\n
\r\n }\r\n\r\n
\r\n
\r\n \r\n

ASL Level

\r\n
\r\n
\r\n\r\n\r\n {this.state.enableEdit &&\r\n \r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.aslLevel &&\r\n {this.state.aslLevel}\r\n }\r\n {!this.state.aslLevel &&\r\n None Selected\r\n }\r\n

\r\n }\r\n\r\n
\r\n\r\n
\r\n
\r\n {this.state.isYourProfile &&\r\n
\r\n
\r\n \r\n

Age learning ASL

\r\n
\r\n
\r\n {this.state.enableEdit &&\r\n \r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.startedAge !== undefined &&\r\n {this.state.startedAge}\r\n }\r\n {this.state.startedAge === undefined &&\r\n None Selected\r\n }\r\n

\r\n }\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n
\r\n \r\n

Home State

\r\n
\r\n
\r\n\r\n\r\n\r\n {this.state.enableEdit &&\r\n \r\n }\r\n {!this.state.enableEdit &&\r\n

\r\n {this.state.homeState &&\r\n {this.state.homeState}\r\n }\r\n {!this.state.homeState &&\r\n None Selected\r\n }\r\n

\r\n }\r\n\r\n
\r\n
\r\n
\r\n {this.state.isYourProfile &&
\r\n Delete Account\r\n
\r\n }\r\n {(this.state.isYourProfile && this.state.showConfirmDeleteDialog) && \r\n
\r\n
\r\n

\r\n Delete Account\r\n

\r\n
\r\n
\r\n

Are you sure you want to delete your account? All of your videos and other data will be deleted, and will not be recoverable. Click yes to continue.

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n UPLOAD IMAGE\r\n \r\n \r\n {({ getRootProps, getInputProps }) => {\r\n return (\r\n \r\n \r\n {\r\n

Click here to select the files to upload

\r\n }\r\n \r\n )\r\n }}\r\n \r\n {/*
\r\n \r\n
*/}\r\n { this.cropper = cropper; }}\r\n src={this.state.uploadedImgSrc}\r\n style={{ height: 400, width: '100%', margin: '10' }}\r\n // Cropper.js options\r\n aspectRatio={1 / 1}\r\n guides={false}\r\n crop={this._crop.bind(this)} />\r\n \r\n \r\n {/* */}\r\n
\r\n \r\n {' '}\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst UserProfile = connect(\r\n \r\n mapDispatchToProps\r\n)(UserProfileContainer);\r\n\r\n\r\nexport default UserProfile\r\n","import React, {Component} from 'react';\r\nimport { SocialIcon } from 'react-social-icons';\r\n\r\nclass Footer extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n\r\n }\r\n }\r\n\r\n footerLinkCSS = {\r\n float:\"left\",\r\n listStyle:\"none\",\r\n margin:\"0px 30px 0px -15px\"\r\n }\r\n\r\n socialMediaIconsCSS = {\r\n float:\"left\",\r\n listStyle:\"none\",\r\n margin:\"0px 5px 0px -15px\"\r\n }\r\n\r\n anchorTagFooter = {\r\n color:\"green\",\r\n textDecoration:\"underline\",\r\n fontSize:\"14px\",\r\n fontWeight:\"450\"\r\n }\r\n\r\n fontSizes = {\r\n fontSize:\"14px\",\r\n fontWeight:\"450\"\r\n }\r\n\r\n iconStyle = {\r\n height:\"30px\",\r\n width:\"30px\"\r\n }\r\n\r\n showCurrentYear() {\r\n return new Date().getFullYear();\r\n }\r\n\r\n\r\n render(){\r\n const logoUrl = `${process.env.PUBLIC_URL}/logoMicrosoft.jpg`;\r\n return(\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Footer\r\n","import config from \"../../config/Config\";\r\nimport ApiClient from \"../../api/ApiClient\";\r\n\r\nexport default class GoogleAuthService {\r\n //constructor(){\r\n // window.gapi.load('auth2', function() {\r\n // window.gapi.auth2.init({\r\n // client_id:config.googleAuthConfig.clientId,\r\n // scope:'https://www.googleapis.com/auth/userinfo.profile'\r\n // });\r\n // });\r\n //}\r\n getGoogleAccount = async (apiClient) => {\r\n const jwt = localStorage.getItem('jwtToken');\r\n if (jwt) {\r\n const res = await apiClient.getJSON(this, '/getUser/requestSignedToken', '?jwtToken=' + jwt);\r\n if (res && res.status) {\r\n var gluser = {\r\n // userName: res.user.userName,\r\n email: res.data.user.email,\r\n // name: res.user.userName,\r\n // userId: res.user.userid,\r\n // accountType: 'google'\r\n }\r\n return gluser;\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n logOut = () => {\r\n localStorage.removeItem('jwtToken');\r\n window.location.href = process.env.PUBLIC_URL;\r\n }\r\n}","export default class FacebookAuthService{\r\n \r\n getFacebookAccount = () =>{\r\n return new Promise(function(resolve, reject){\r\n if (window.FB !== undefined && window.FB !== null) {\r\n window.FB.getLoginStatus(function(response){\r\n if(response.status === 'connected'){\r\n var uid = response.authResponse.userID\r\n var path = '/'+uid;\r\n window.FB.api(path, { locale: 'en_US', fields: 'name, email' },\r\n function(response) {\r\n if(response){\r\n response.userID = uid;\r\n resolve(response);\r\n }\r\n });\r\n }else{\r\n }\r\n })\r\n }\r\n });\r\n }\r\n logOut = () =>{\r\n window.FB.logout(function(response) {\r\n });\r\n }\r\n}","import MicrosoftAuthService from './MicrosoftAuthService';\r\nimport GoogleAuthService from './GoogleAuthService';\r\nimport FacebookAuthService from './FacebookAuthService';\r\n\r\nexport default class AuthService{\r\n constructor(){\r\n this.msAuthService = new MicrosoftAuthService();\r\n this.googleAuthService = new GoogleAuthService();\r\n this.fbAuthService = new FacebookAuthService();\r\n }\r\n isAuthenticatedUsingMS = () =>{\r\n var user = null;\r\n var msaccount = this.msAuthService.getMicrosoftAccount();\r\n if(msaccount !== null && msaccount !== undefined) {\r\n user = {\r\n userName: msaccount.userName,\r\n email:msaccount.userName,\r\n name: msaccount.name,\r\n userId:msaccount.accountIdentifier,\r\n accountType: 'ms'\r\n }\r\n }\r\n return user;\r\n }\r\n isAuthenticated = async(apiClient) =>{\r\n var glAuth = this.googleAuthService;\r\n var bfAuth = this.fbAuthService;\r\n return new Promise( async function(resolve,reject){\r\n const glaccount = await glAuth.getGoogleAccount(apiClient);\r\n if(glaccount){\r\n resolve(glaccount);\r\n return;\r\n }\r\n bfAuth.getFacebookAccount().then((fbaccount) => {\r\n if(fbaccount){\r\n var fbuser = {\r\n userName: fbaccount.email,\r\n email:fbaccount.email,\r\n name: fbaccount.name,\r\n userId:fbaccount.userID,\r\n accountType: 'fb'\r\n }\r\n resolve(fbuser);\r\n return;\r\n }\r\n });\r\n \r\n });\r\n }\r\n\r\n logOut = (accountType) =>{\r\n switch(accountType){\r\n case 'ms':{\r\n this.msAuthService.logOut();\r\n break;\r\n }\r\n case 'google':{\r\n this.googleAuthService.logOut();\r\n break;\r\n }\r\n case 'fb':{\r\n this.fbAuthService.logOut();\r\n break;\r\n }\r\n }\r\n }\r\n}","// export const setPlayProgress = (context, start, duration) => {\r\n// const playRate = context.video ? context.video.playbackRate : 1;\r\n// start = (1/playRate) * start\r\n// const vMillisecondDuration = duration * 1000 * (1/playRate)\r\n// context.setState({ currentVideoTimeProgress: ((start*1000) + (50* (1/playRate)))/vMillisecondDuration * 100});\r\n// const si = setInterval(() => {\r\n// const percentageProgress = context.state.currentVideoTimeProgress || 0;\r\n// const newMS = ((percentageProgress/100) * vMillisecondDuration) + 50;\r\n// const newPercent = newMS / vMillisecondDuration * 100;\r\n// if ( newPercent >= 100) {\r\n// clearInterval(si);\r\n// context.setState({ currentVideoTimeProgress: 100});\r\n// }\r\n// else {\r\n// context.setState({ currentVideoTimeProgress: newPercent});\r\n// }\r\n// }, 50);\r\n// return si;\r\n// }\r\n\r\n// export const setDurationHack = (context, $event) => {\r\n// $event.target.currentTime = 999999;\r\n// const evv = $event.target;\r\n// setTimeout(() => {\r\n// const dur = evv.duration;\r\n// context.setState({ currentVideoDuration: dur})\r\n// }, 100)\r\n// return\r\n// }\r\n\r\n// export const pausePlayProgress = (self) => {\r\n// if (self.progressBarInterval) {\r\n// clearInterval(self.progressBarInterval);\r\n// clearTimeout(self.playPauseTimeout);\r\n// }\r\n// }\r\n\r\nexport const stringTimeToSeconds = (str) => {\r\n var arr = str.split(\":\");\r\n const seconds = parseInt(arr[1]);\r\n const minutes = parseInt(arr[0]);\r\n const msRes = seconds + (minutes * 60);\r\n return msRes;\r\n}\r\n\r\nexport const setPlayProgress = (context, start, duration) => {\r\n if (context.playPauseTimeout || context.progressBarInterval) {\r\n clearTimeout(context.playPauseTimeout)\r\n clearTimeout(context.progressBarInterval)\r\n }\r\n\r\n const videoTarget = context.video;\r\n const playRate = videoTarget ? videoTarget.playbackRate : 1;\r\n start = (1 / playRate) * start\r\n const vMillisecondDuration = duration * 1000 * (1 / playRate);\r\n const prog = ((start * 1000) + (50 * (1 / playRate))) / vMillisecondDuration * 100\r\n context.setState({ currentVideoTimeProgress: prog });\r\n const si = setInterval(() => {\r\n if (!context.state.pauseProgressOn) {\r\n const percentageProgress = context.state.currentVideoTimeProgress;\r\n const newMS = (((percentageProgress / 100) * vMillisecondDuration) + 50);\r\n const newPercent = newMS / vMillisecondDuration * 100;\r\n if (newPercent >= 100) {\r\n clearInterval(si);\r\n context.setState({ currentVideoTimeProgress: 100 });\r\n }\r\n else {\r\n context.setState({ currentVideoTimeProgress: newPercent });\r\n }\r\n }\r\n }, 50);\r\n return si;\r\n}\r\n\r\nexport const setDurationHack = (context, $event) => {\r\n $event.target.currentTime = 999999;\r\n const evv = $event.target;\r\n setTimeout(() => {\r\n const dur = evv.duration;\r\n context.setState({ currentVideoDuration: dur })\r\n }, 100)\r\n return\r\n}\r\n\r\nexport const pausePlayProgress = async (self) => {\r\n await self.setState({ pauseProgressOn: true });\r\n clearInterval(self.progressBarInterval);\r\n clearTimeout(self.playPauseTimeout);\r\n if (self.progressBarInterval) {\r\n\r\n\r\n }\r\n if (self.playPauseTimeout) {\r\n\r\n }\r\n}\r\n\r\nexport const isRecorderAvailable = async () => {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n navigator.getMedia = (navigator.getUserMedia || // use the proper vendor prefix\r\n navigator.webkitGetUserMedia ||\r\n navigator.mozGetUserMedia ||\r\n navigator.msGetUserMedia);\r\n\r\n navigator.getMedia({ video: true }, function () {\r\n resolve(true)\r\n // webcam is available\r\n }, function () {\r\n // webcam is not available\r\n resolve(false)\r\n });\r\n\r\n\r\n })\r\n}","import React, { Component } from \"react\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport Octicon, { PrimitiveDot, PrimitiveSquare, Sync, Check, Play, ArrowLeft, ArrowRight, SignIn, SignOut, Thumbsdown } from '@githubprimer/octicons-react';\r\nimport Loader from 'react-loader-spinner';\r\nimport ThumbUpAltRoundedIcon from '@material-ui/icons/ThumbUpAltRounded';\r\nimport { playerRecorderControls } from '../../styles/playerRecorderStyles';\r\nimport VideocamRoundedIcon from '@material-ui/icons/VideocamRounded';\r\nimport Progress from 'react-progressbar';\r\nimport { setDurationHack } from \"../../services/video/videoUtils\";\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport { tempMirrorFirefox } from \"../../utils/utilMethods\";\r\nimport CheckBoxRoundedIcon from '@material-ui/icons/CheckBoxRounded';\r\n\r\n\r\nclass WikiRecorder extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n display: \"hide\",\r\n videoPlayback: false,\r\n isCountdownActive: false,\r\n currentVideoDuration: null,\r\n currSentence: null,\r\n value: this.props.value\r\n }\r\n this.recorder = null;\r\n this.video = React.createRef();\r\n this.buttonSubmit = React.createRef();\r\n }\r\n\r\n // Styles\r\n videoPlaceholderStyle = {\r\n border: \"1px solid gray\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n padding: \"10px\",\r\n borderRadius: \"10px\",\r\n cursor: \"pointer\"\r\n }\r\n\r\n // Timeouts (for counter)\r\n countdown = null;\r\n innerCountdownTimeout = null;\r\n outerInitTimeout = null;\r\n innerInitTimeout = null;\r\n\r\n // For crazy clicks between recordings\r\n async clearRecTime() {\r\n await this.setState({ isTimerVisible: false })\r\n return await new Promise(async (acc, rej) => {\r\n await clearInterval(this.countdown)\r\n await clearTimeout(this.innerCountdownTimeout)\r\n acc(true)\r\n })\r\n\r\n }\r\n\r\n async clearCountdown() {\r\n await this.setState({ isTimerVisible: false })\r\n return await new Promise(async (acc, rej) => {\r\n await clearTimeout(this.outerInitTimeout)\r\n await clearTimeout(this.innerInitTimeout)\r\n await this.setState({ counter: \"\", recordLoader: false });\r\n acc(true)\r\n })\r\n\r\n }\r\n\r\n async startCountdown() {\r\n\r\n await this.clearCountdown();\r\n await this.clearRecTime();\r\n let counter = 3;\r\n await this.setState({ counter: counter, isCountdownActive: true });\r\n counter--;\r\n this.countdown = setInterval(() => {\r\n if (counter === 0) {\r\n //alert(\"Actual Start\")\r\n clearInterval(this.countdown);\r\n this.setState({ counter: \"Start\" })\r\n this.innerCountdownTimeout = setTimeout(async () => {\r\n await this.setState({ isCountdownActive: false, isTimerVisible: true })\r\n await this.setState({ counter: \"\" })\r\n }, 1000)\r\n }\r\n else {\r\n this.setState({ counter: counter })\r\n counter--;\r\n }\r\n }, 800)\r\n }\r\n\r\n async initiateRecorder() {\r\n await this.setState({ isTimerVisible: false })\r\n await this.clearCountdown();\r\n await this.clearRecTime();\r\n await this.setState({ recordLoader: true })\r\n this.outerInitTimeout = setTimeout(async () => {\r\n await this.setState({ isTimerVisible: false })\r\n await this.setState({ recordLoader: false })\r\n this.innerInitTimeout = setTimeout(async () => {\r\n await this.setState({ isTimerVisible: false })\r\n this.startCountdown()\r\n }, 500)\r\n\r\n }, 1000)\r\n }\r\n\r\n async componentWillReceiveProps(nextProps) {\r\n\r\n if (nextProps) {\r\n\r\n if (nextProps.currSentence && nextProps.currSentence !== this.state.currContext) {\r\n await this.setState({ isCountdownActive: false });\r\n await this.clearCountdown();\r\n await this.clearRecTime();\r\n await this.setState({ currContext: nextProps.currSentence });\r\n }\r\n else if (!nextProps.currSentence && nextProps.currSentence !== this.state.currContext) {\r\n await this.setState({ currContext: nextProps.currSentence });\r\n }\r\n }\r\n\r\n if (this.props.recordTransitionState && !this.state.isCountdownActive) {\r\n await this.setState({ isCountdownActive: true })\r\n this.initiateRecorder();\r\n }\r\n // if (props.controls && props.controls.length) {\r\n // this.setState(\r\n // {\r\n // })\r\n // }\r\n }\r\n\r\n componentDidMount() {\r\n //this.initiateRecorder();\r\n }\r\n\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.value !== this.props.value) {\r\n this.setState({ value: this.props.value });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n /*\r\n Possible UI Control States\r\n recordNext : Not moving to next section yet, but video confirmed\r\n finishSection: Similar to recordNext but for section enders\r\n confirmOverride: Confirm state particular to your already recorded and saved videos on re-record click\r\n confirm: Videos not yet saved\r\n record: Standard record mode\r\n */\r\n const uiControls = this.props.controls ? this.props.controls.map((c) => {\r\n return (\r\n c.control[c.selectedIndex].ui\r\n );\r\n }) : []\r\n return (\r\n \r\n {/*
{ this.state.isTimerVisible && {this.state.isTimerVisible.toString()} }
*/}\r\n
\r\n\r\n {/* Display that shows up when you have recording to override */}\r\n {(this.props.overwriteVideo && this.props.overwriteVideo.convertedUrl) &&\r\n
\r\n
\r\n }\r\n\r\n {/* Display shows only when recording has just been made in this session and someone clicks to change it */}\r\n {(this.props.overwriteVideo && !this.props.overwriteVideo.convertedUrl) &&\r\n
\r\n
You have a recorded video here that is processing. Please refresh page if you wish to record an updated version, or you can view it in read mode.\r\n
\r\n \r\n
\r\n }\r\n\r\n\r\n\r\n {(this.props.isRecorderLoaded && !this.props.overwriteVideo) &&\r\n
\r\n
\r\n }\r\n\r\n\r\n { (!this.props.overwriteVideo || this.props.overwriteVideo.convertedUrl) &&\r\n \r\n\r\n \r\n {/* Transition Overlay with UI controls */}\r\n {((this.props.selectedControlsName === \"confirm\")\r\n && (this.props.isPlaying !== true) && this.props.controlsVisible) &&\r\n
\r\n
\r\n
Redo
\r\n
Keep
\r\n
\r\n\r\n
\r\n
{uiControls[0]}
\r\n
\r\n {uiControls[2]}\r\n
\r\n
\r\n
\r\n }\r\n\r\n {(this.props.selectedControlsName === \"confirmOverride\"\r\n && (this.props.isPlaying !== true) && this.props.controlsVisible) &&\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
Redo?
\r\n
{this.props.redoBtn.control[0].ui}
\r\n
\r\n
\r\n
Keep?
\r\n
\r\n this.props.hideWindowControls()}\r\n style={{ ...playerRecorderControls, color: \"rgb(14, 190, 14)\", border: \"unset\" }} aria-label=\"Ok\" className=\"control\" />
\r\n
\r\n
\r\n
\r\n }\r\n\r\n {/* Transition Overlay */}\r\n {((!this.props.overwriteVideo && (this.props.selectedControlsName === \"recordNext\" || this.props.selectedControlsName === \"finishSection\"))\r\n && this.props.controlsVisible) &&\r\n this.props.videoTransitionOverlay\r\n }\r\n\r\n
\r\n {this.state.recordLoader &&\r\n \r\n }\r\n {(!this.state.recordLoader && (this.state.counter <= 3 || this.state.counter === \"Start\")) &&\r\n ({this.state.counter})\r\n }\r\n
\r\n\r\n {(!this.props.isRecorderLoaded && !this.props.overwriteVideo) &&\r\n
\r\n To record videos, click on article text to the right.\r\n
\r\n // onClick={() => this.props.initializeRecorderFunc(true)}\r\n }\r\n
\r\n }\r\n\r\n
\r\n\r\n { (!this.props.overwriteVideo || this.props.overwriteVideo.convertedUrl) &&\r\n \r\n\r\n
\r\n {((this.props.controlsVisible && this.props.selectedControlsName !== \"finishSection\" && this.props.selectedControlsName !== \"recordNext\")) &&\r\n \r\n {/* Hacky, but works, if ony record button visible, hide, refactor this awful mess */}\r\n {(this.props.redoBtn && this.props.isPlaying) &&\r\n \r\n \r\n {this.props.redoBtn.control[0].ui}\r\n \r\n }\r\n {/* UI controls visible during recording */}\r\n {(this.props.selectedControlsName === \"record\"\r\n && ((this.props.isRecorderLoaded && this.props.isRecording && this.state.isTimerVisible)\r\n || (uiControls && uiControls.length) !== 1)) &&\r\n \r\n {uiControls}\r\n\r\n \r\n }\r\n {(this.props.selectedControlsName === \"confirm\" && this.state.isTimerVisible) &&\r\n \r\n\r\n {uiControls[1]}\r\n \r\n }\r\n {(this.props.selectedControlsName === \"confirmOverride\") &&\r\n\r\n \r\n\r\n {uiControls[1]}\r\n \r\n }\r\n {(this.props.confirmBtn && this.props.isPlaying && this.state.isTimerVisible) &&\r\n \r\n\r\n {this.props.confirmBtn.control[0].ui}\r\n \r\n }\r\n \r\n }\r\n
\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default WikiRecorder;\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport Switch from \"react-switch\";\r\nimport { FaThumbsDown, FaThumbsUp } from 'react-icons/fa';\r\nimport Select from 'react-select';\r\nimport WikiRecorder from './WikiRecorder';\r\nimport { playerRecorderControls } from '../../styles/playerRecorderStyles';\r\nimport PlayCircleFilledRoundedIcon from '@material-ui/icons/PlayCircleFilledRounded';\r\nimport PauseCircleFilledRoundedIcon from '@material-ui/icons/PauseCircleFilledRounded';\r\nimport ReplayRoundedIcon from '@material-ui/icons/ReplayRounded';\r\nimport SkipNextRoundedIcon from '@material-ui/icons/SkipNextRounded';\r\nimport SkipPreviousRoundedIcon from '@material-ui/icons/SkipPreviousRounded';\r\nimport CheckBoxRoundedIcon from '@material-ui/icons/CheckBoxRounded';\r\nimport RedoRoundedIcon from '@material-ui/icons/RedoRounded';\r\nimport StopRoundedIcon from '@material-ui/icons/StopRounded';\r\nimport ReactPlayer from 'react-player';\r\nimport VideocamRoundedIcon from '@material-ui/icons/VideocamRounded';\r\nimport RecordRTC from 'recordrtc';\r\nimport Loader from 'react-loader-spinner';\r\nimport \"../../styles/video.css\";\r\nimport coins from '../../resources/coins.png';\r\nimport ThumbUpAltRoundedIcon from '@material-ui/icons/ThumbUpAltRounded';\r\nimport Octicon, { PrimitiveDot, PrimitiveSquare, Sync, Check, Play, ArrowLeft, ArrowRight, SignIn, SignOut, Thumbsdown } from '@githubprimer/octicons-react';\r\nimport { stopRecordingCallback, saveWikiRecording, blobToFile } from \"../../services/video/saveRecording\";\r\nimport { setPlayProgress, pausePlayProgress, stringTimeToSeconds } from \"../../services/video/videoUtils\";\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { tempMirrorFirefox } from \"../../utils/utilMethods\";\r\n\r\n\r\nclass RecorderWikiLayerContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n upVotes: 0,\r\n player: null,\r\n mode: true,\r\n // Tracks when a video recording or playback ready\r\n isRecorderLoaded: false,\r\n videoPlayback: false,\r\n recordTransitionValue: false,\r\n selectedControlButtons: this.recordState,\r\n selectedControlsName: \"record\",\r\n downVotes: 0,\r\n currSentence: false,\r\n tempCount: 0,\r\n isPlaying: false,\r\n topicTextUserList: [],\r\n stayOpen: false,\r\n selectedOption: null,\r\n currentVideoTimeProgress: 0,\r\n videoDuration: null,\r\n isRecording: false\r\n }\r\n this.recorder = null;\r\n\r\n this.video = React.createRef();\r\n this.buttonSubmit = React.createRef();\r\n }\r\n\r\n\r\n playbackEnded() {\r\n this.props.playbackEnded(this.props.sentence);\r\n }\r\n\r\n componentDidMount() {\r\n this.props.defineRecorder(this.startStopRecording);\r\n this.cameraCleanup = this.props.history.listen((location, action) => {\r\n try {\r\n\r\n this.video.srcObject.getTracks().forEach((track) => {\r\n track.stop();\r\n });\r\n\r\n }\r\n catch (e) {\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n this.cameraCleanup();\r\n }\r\n\r\n selectStyles = {\r\n control: styles => ({ ...styles, width: \"260px\", minWidth: \"260px\" })\r\n }\r\n\r\n calculatePlayDuration(duration, currentTime) {\r\n const dur = (duration - currentTime) * 1000\r\n return dur;\r\n }\r\n\r\n findCorrectFlipIndex = () => {\r\n // Two modes for this index : Confirm Mode & Variants = 1, Record Mode = 0\r\n // Best way to disambiguate is number of controls\r\n let targetFlippableControlIndex = 0;\r\n if (this.state.selectedControlButtons.length > 1) {\r\n targetFlippableControlIndex = 1;\r\n }\r\n return targetFlippableControlIndex;\r\n }\r\n\r\n flipPlayPauseControls = (duration, currentTime) => {\r\n // Sometimes state changes rapidly, this is more robust\r\n try {\r\n let targetFlippableControlIndex = this.findCorrectFlipIndex();\r\n const rmb = [...this.state.selectedControlButtons];\r\n rmb[targetFlippableControlIndex].selectedIndex = 1;\r\n this.setState({ selectedControlButtons: rmb, isPlaying: true });\r\n const st = setTimeout(() => {\r\n try {\r\n targetFlippableControlIndex = this.findCorrectFlipIndex();\r\n const rmb = [...this.state.selectedControlButtons];\r\n rmb[targetFlippableControlIndex].selectedIndex = 0;\r\n this.setState({ selectedControlButtons: rmb, isPlaying: false });\r\n }\r\n catch (e) {\r\n\r\n }\r\n }, this.calculatePlayDuration(duration, currentTime));\r\n this.playPauseTimeout = st;\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n handleOverrideControls = async (duration, currentTime, isConfirmIncluded) => {\r\n this.overrideConfirmBtns(isConfirmIncluded);\r\n this.flipPlayPauseControls(duration, currentTime)\r\n\r\n }\r\n\r\n handleControls = async (duration, currentTime, isConfirmIncluded) => {\r\n this.tempSetRedoConfirmBtns(isConfirmIncluded);\r\n this.flipPlayPauseControls(duration, currentTime)\r\n }\r\n\r\n resetRecordState = async () => {\r\n // Reset default to play\r\n this.flipPauseButton(0, 0, false);\r\n await this.setState({\r\n upVotes: 0,\r\n player: null,\r\n currSentence: true,\r\n mode: true,\r\n // Tracks when a video recording or playback ready\r\n isRecorderLoaded: false,\r\n videoPlayback: false,\r\n recordTransitionValue: false,\r\n selectedControlButtons: this.recordState,\r\n selectedControlsName: \"record\",\r\n downVotes: 0,\r\n tempCount: 0,\r\n isPlaying: false,\r\n topicTextUserList: [],\r\n stayOpen: false,\r\n selectedOption: null,\r\n currentVideoTimeProgress: 0,\r\n preventAction: false,\r\n videoDuration: null,\r\n isRecording: false\r\n });\r\n // Prompt rapid state transition allowing downstream reset\r\n await this.setState({\r\n currSentence: false\r\n })\r\n await this.setState({ isRecording: false, recordingTime: 0 });\r\n clearInterval(this.rClock)\r\n this.setState({ currentVideoTimeProgress: 0 });\r\n clearTimeout(this.playPauseTimeout)\r\n clearInterval(this.progressBarInterval)\r\n }\r\n\r\n playPauseTimeout = null;\r\n progressBarInterval = null;\r\n\r\n recordMethods = {\r\n play: async () => {\r\n // Rare edge cases break this TODO resolve without try/catch\r\n try {\r\n await this.setState({ pauseProgressOn: false});\r\n const self = this\r\n clearTimeout(self.playPauseTimeout)\r\n // Account for strange video duration bugs\r\n\r\n let vidDuration = self.video.duration;\r\n\r\n if (self.video.duration === Infinity || isNaN(vidDuration) || self.video.duration < 1 || self.video.duration == Infinity) {\r\n if (!self.props.overwriteVideo) {\r\n vidDuration = stringTimeToSeconds(self.state.recordingTime);\r\n }\r\n else {\r\n vidDuration = self.props.overwriteVideo.durationMS\r\n }\r\n }\r\n\r\n\r\n if (vidDuration === self.video.currentTime || self.video.currentTime > Math.floor(vidDuration)) {\r\n this.video.currentTime = 0;\r\n await this.setState({ currentVideoTimeProgress: 0 });\r\n }\r\n\r\n this.progressBarInterval = setPlayProgress(this, this.video.currentTime, vidDuration);\r\n\r\n this.video.play();\r\n\r\n if (!self.props.overwriteVideo) {\r\n self.handleControls(vidDuration, self.video.currentTime, true);\r\n }\r\n else {\r\n self.handleOverrideControls(vidDuration, self.video.currentTime, true);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n },\r\n confirm: async () => {\r\n \r\n\r\n if (!this.state.preventAction) {\r\n\r\n await this.setState({ preventAction: true })\r\n let self = this;\r\n let vduration = this.video.duration;\r\n if (self.video.duration === \"Infinity\" || isNaN(self.video.duration) || self.video.duration == Infinity) {\r\n vduration = stringTimeToSeconds(self.state.recordingTime);\r\n let vidElem = document.getElementById(\"recorder-video\");\r\n vidElem.setAttribute(\"duration\", vduration)\r\n }\r\n // Save Video to file\r\n const newRecording = await saveWikiRecording(this, this.apiClient, this.video, this.props.loggedInUser, blobToFile(this.recorder.getBlob()), this.props, vduration, this.props.articleTitle);\r\n \r\n // API Failure\r\n if (!newRecording) {\r\n await this.setState({ preventAction: false })\r\n return;\r\n }\r\n\r\n // Reincorporate data into new model\r\n this.props.appendNewVideoData(newRecording);\r\n\r\n // Section-based recordings\r\n await this.setState({ tempCount: this.state.tempCount + 1 });\r\n await this.setState({ preventAction: false })\r\n if (this.props.sentenceIndex >= this.props.sectionSentences.length - 1) {\r\n // Article finish\r\n if (this.props.sectionIndex >= this.props.finalSectionIndex) {\r\n this.props.dispatch(this.props.updateScore(100, this.props.loggedInUser, this.apiClient));\r\n this.moveToSectionFinishState(true);\r\n }\r\n // Section Finish\r\n else {\r\n this.props.dispatch(this.props.updateScore(25, this.props.loggedInUser, this.apiClient));\r\n this.moveToSectionFinishState();\r\n }\r\n\r\n return;\r\n\r\n }\r\n else {\r\n // Update user score if recording was submitted\r\n this.props.dispatch(this.props.updateScore(5, this.props.loggedInUser, this.apiClient));\r\n }\r\n\r\n this.setState({\r\n selectedControlButtons: [],\r\n selectedControlsName: \"recordNext\",\r\n videoTransitionOverlay: this.overlays.nextRecordingOverlay\r\n });\r\n\r\n // fyd\r\n }\r\n },\r\n pause: () => {\r\n this.video.pause();\r\n pausePlayProgress(this);\r\n const rmb = [...this.state.selectedControlButtons];\r\n rmb[1].selectedIndex = 0;\r\n this.setState({ selectedControlButtons: rmb });\r\n },\r\n rewind: () => {\r\n\r\n },\r\n playPrev: () => {\r\n\r\n },\r\n playNext: () => {\r\n\r\n },\r\n startRecording: () => {\r\n this.recordingStart()\r\n }\r\n }\r\n\r\n flipPauseButton(flipTarget, isPauseTarget, isPlaying) {\r\n // Sometimes this is invoked during state transitions on rapid clicking\r\n try {\r\n const rmb = [...this.state.selectedControlButtons];\r\n rmb[flipTarget].selectedIndex = isPauseTarget;\r\n this.setState({ selectedControlButtons: rmb, isPlaying: isPlaying });\r\n\r\n }\r\n catch (e) {\r\n // alert(\"bug!\")\r\n }\r\n }\r\n\r\n millisToMinutesAndSeconds(millis) {\r\n var minutes = Math.floor(millis / 60000);\r\n var seconds = ((millis % 60000) / 1000).toFixed(0);\r\n return minutes + \":\" + (seconds < 10 ? '0' : '') + seconds;\r\n }\r\n\r\n rClock = null;\r\n\r\n initiateRecordingClock = () => {\r\n // Clears lingering state \r\n clearInterval(this.rClock)\r\n this.setState({ recordTransitionState: false, recordingTime: \"0:00\" });\r\n const initTime = new Date();\r\n this.rClock = setInterval(() => {\r\n const currentTime = new Date();\r\n const diff = currentTime - initTime;\r\n let tm = this.millisToMinutesAndSeconds(diff);\r\n this.setState({ recordingTime: tm });\r\n }, 1000)\r\n }\r\n\r\n overrideButtons = [\r\n //Redo on Override Existing video: \r\n {\r\n control: [\r\n {\r\n ui: (\r\n this.redoRecordingOverride()}\r\n style={{ ...playerRecorderControls, color: \"red\" }} />\r\n \r\n )\r\n }\r\n ],\r\n selectedIndex: 0\r\n }\r\n //Confirm Override: \r\n // {\r\n // control: [\r\n // {\r\n // ui: (\r\n // this.confirmRecordingOverride()} \r\n // style={{...playerRecorderControls, color: \"#0EBE0E\" }} />\r\n // \r\n // )\r\n // }\r\n // ],\r\n // selectedIndex: 0\r\n // }\r\n ]\r\n\r\n // Regular old recording Refactor this insanity at some point\r\n tempSetRedoConfirmBtns = async (needConfirm) => {\r\n await this.setState({ redoBtn: this.confirmRecordingState[0], confirmBtn: this.confirmRecordingState[2] });\r\n }\r\n\r\n // Override Buttons\r\n overrideConfirmBtns = async () => {\r\n await this.setState({ redoBtn: this.overrideButtons[0], confirmBtn: null });\r\n // await this.setState({ confirmBtn: this.overrideButtons[1] });\r\n }\r\n\r\n recallPreviousUserRecording = async () => {\r\n let self = this;\r\n await this.setState({ isRecorderLoaded: false, isPlaying: true });\r\n this.progressBarInterval = setPlayProgress(this, 0, this.props.overwriteVideo.durationMS);\r\n const video = document.getElementById(\"recorder-video\");\r\n this.moveToConfirmStateOverride();\r\n this.handleOverrideControls(this.props.overwriteVideo.durationMS, 0, false);\r\n }\r\n\r\n hideWindowControls = () => {\r\n this.setState({ isPlaying: true })\r\n }\r\n\r\n showWindowControls = () => {\r\n this.setState({ isPlaying: false })\r\n }\r\n\r\n\r\n recordingStart = async () => {\r\n\r\n try {\r\n await this.setState({ controlsVisible: false })\r\n setTimeout(async () => {\r\n await this.setState({ controlsVisible: true })\r\n }, 300)\r\n }\r\n catch (e) {\r\n\r\n }\r\n\r\n // Camera is sometimes not available, retry if so\r\n try {\r\n\r\n const self = this;\r\n const owv = this.props.overwriteVideo;\r\n if (this.props.overwriteVideo) {\r\n this.recallPreviousUserRecording();\r\n return\r\n }\r\n else {\r\n // Clear settings from recalled recording\r\n await this.setState({\r\n redoBtn: null, confirmBtn: null,\r\n isPlaying: false, recordTransitionState: false,\r\n selectedControlButtons: this.recordState,\r\n selectedControlsName: \"record\"\r\n })\r\n }\r\n\r\n const vid = this.video\r\n await this.setState({ isRecorderLoaded: true });\r\n tempMirrorFirefox(\"recorder-video\", true);\r\n this.state.videoPlayback = false;\r\n\r\n this.video.muted = true;\r\n this.video.volume = 0;\r\n\r\n if (this.video.srcObject === null) {\r\n await this.setState({ recordTransitionState: true })\r\n setTimeout(() => {\r\n this.setState({ recordTransitionState: false, isRecording: true });\r\n this.initiateRecordingClock();\r\n }, 4500)\r\n var camera = await navigator.mediaDevices.getUserMedia({ audio: false, video: true });\r\n this.video.srcObject = camera;\r\n this.video.current.style.transform = 'scale(-1, 1)';\r\n }\r\n else {\r\n this.video.style.transform = 'scale(-1, 1)';\r\n }\r\n this.recorder = RecordRTC(this.video.srcObject, {\r\n type: 'video/mp4',\r\n mimeType: 'video/mp4'\r\n });\r\n // this.recorder = RecordRTC(this.video.srcObject, {\r\n // type:'video/webm;codecs=vp8'\r\n // });\r\n this.video.play();\r\n setTimeout(() => {\r\n this.recorder.startRecording();\r\n }, 4000)\r\n }\r\n catch (e) {\r\n this.recordingStart()\r\n }\r\n }\r\n\r\n moveToConfirmStateOverride = async () => {\r\n // Going to throw exceptions here every time TODO remove this option because of re-recording overhaul\r\n try {\r\n await this.setState({\r\n selectedControlButtons: this.confirmRecordingState,\r\n selectedControlsName: \"confirmOverride\"\r\n });\r\n // this.flipPauseButton(1, 0, false)\r\n this.video.currentTime = 0;\r\n this.video.play();\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n moveToConfirmState = async () => {\r\n await this.setState({\r\n selectedControlButtons: this.confirmRecordingState, selectedControlsName: \"confirm\",\r\n videoTransitionOverlay: this.overlays.nextRecordingOverlay\r\n });\r\n this.flipPauseButton(1, 0, false)\r\n this.video.currentTime = 0;\r\n this.video.play();\r\n }\r\n\r\n stopRecording = async () => {\r\n tempMirrorFirefox(\"recorder-video\", false)\r\n try {\r\n this.flipPauseButton(0, 0, false)\r\n //if (!this.state.isSaving) {\r\n clearInterval(this.rClock)\r\n await this.setState({ isRecording: false, isSaving: true })\r\n this.moveToConfirmState();\r\n this.recorder.stopRecording(async () => {\r\n const isSaveSuccessful = await stopRecordingCallback(this.video, this.recorder, this.props.loggedInUser, this.state.videoDownload);\r\n await this.setState({ isRecording: false, isSaving: false, confirmBtn: null, recordBtn: null })\r\n });\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n moveToSectionFinishState = (isArticleFinished) => {\r\n let sectionEndOverlay = this.overlays.finishSectionOverlay;\r\n if (isArticleFinished) {\r\n sectionEndOverlay = this.overlays.finishArticleOverlay;\r\n }\r\n this.setState({\r\n selectedControlButtons: this.readModeButtons, selectedControlsName: \"finishSection\",\r\n videoTransitionOverlay: sectionEndOverlay\r\n });\r\n }\r\n\r\n startStopRecording = async (startRecording, isReRecord) => {\r\n //this.setState({ recordTransitionState: true })\r\n if (startRecording) {\r\n await this.resetRecordState();\r\n }\r\n else {\r\n this.flipPauseButton(0, 0, false)\r\n }\r\n\r\n const rmb = [...this.state.selectedControlButtons];\r\n // Handle interrupted click transition\r\n if (rmb.length < 1) {\r\n this.loadNextRecordVideo();\r\n return;\r\n }\r\n if (startRecording && this.state.selectedControlsName === \"record\") {\r\n rmb[0].selectedIndex = 1;\r\n }\r\n else {\r\n rmb[0].selectedIndex = 0;\r\n }\r\n\r\n this.setState({ selectedControlButtons: rmb });\r\n\r\n if (!startRecording) {\r\n this.stopRecording();\r\n }\r\n else {\r\n this.recordingStart();\r\n }\r\n\r\n // if (this.props.overwriteVideo) {\r\n // this.turnOffCamera();\r\n // }\r\n\r\n }\r\n\r\n\r\n redoRecordingOverride = async () => {\r\n\r\n this.flipPauseButton(0, 0, false)\r\n // Allows override of current\r\n // this.props.activateIsInitialOverrideSelection(true);\r\n await this.setState({ selectedControlsName: \"record\", selectedControlButtons: this.recordState, overwriteVideo: false, isRecording: false, recordingTime: 0 })\r\n // Reset recorder and cancel override\r\n this.props.selectSentence(this.props.sectionIndex, this.props.sentenceIndex, true)\r\n }\r\n\r\n // Do we still need this??\r\n // confirmRecordingOverride = async () => {\r\n\r\n // const self = this;\r\n // // Save Video to file\r\n // const newRecording = await saveRecording(self.video, self.props.loggedInUser, blobToFile(self.recorder.getBlob()), self.props, self.video.duration);\r\n // this.props.appendNewVideoData(newRecording)\r\n\r\n // self.setState({\r\n // videoTransitionOverlay: self.overlays.recordingUpdatedOverlay\r\n // });\r\n\r\n // self.props.recordNext();\r\n\r\n\r\n // }\r\n\r\n\r\n redoRecording = async () => {\r\n\r\n await this.setState({ selectedControlsName: \"record\", selectedControlButtons: this.recordState, isRecording: false, recordingTime: 0 })\r\n this.startStopRecording(true);\r\n }\r\n\r\n recordState = [\r\n //Record: \r\n {\r\n control: [\r\n {\r\n ui: ( this.startStopRecording(false)}\r\n style={{ ...playerRecorderControls, color: \"red\" }} className=\"control\" />)\r\n },\r\n {\r\n ui: ( this.startStopRecording(false)}\r\n style={{ ...playerRecorderControls, color: \"red\" }} className=\"control\" />)\r\n }\r\n ],\r\n name: \"recordStopButton\",\r\n selectedIndex: 0\r\n }\r\n ]\r\n\r\n confirmRecordingState = [\r\n //Redo: \r\n {\r\n control: [\r\n {\r\n ui: (\r\n this.redoRecording()}\r\n style={{ ...playerRecorderControls, color: \"red\" }} />\r\n \r\n )\r\n }\r\n ],\r\n name: \"redoButton\",\r\n selectedIndex: 0\r\n },\r\n // Replay\r\n {\r\n control: [\r\n {\r\n ui: ()\r\n },\r\n {\r\n ui: ()\r\n }\r\n ],\r\n name: \"playPauseButtons\",\r\n selectedIndex: 0\r\n },\r\n // Confirm\r\n {\r\n control: [\r\n {\r\n ui: ()\r\n }\r\n ],\r\n name: \"confirmButton\",\r\n selectedIndex: 0\r\n }\r\n ]\r\n\r\n loadNextRecordVideo = async () => {\r\n // this.props.recordNext();\r\n this.flipPauseButton(0, 0, false)\r\n // await this.props.activateIsInitialOverrideSelection(false);\r\n await this.setState({ selectedControlsName: \"\", selectedControlButtons: this.recordState, recordingTime: null, isRecording: false, isRecorderLoaded: false })\r\n this.startStopRecording(true);\r\n\r\n }\r\n\r\n finishRecording = async () => {\r\n this.props.deSelectLine();\r\n await this.setState({ controlsVisible: false, isRecorderLoaded: false, overwriteVideo: false, selectedControlsName: \"record\" })\r\n }\r\n\r\n overlays = {\r\n nextRecordingOverlay: (\r\n
\r\n
\r\n \r\n +5 XP\r\n
\r\n
Recording Saved!
\r\n
\r\n
{\r\n this.props.recordNext();\r\n this.loadNextRecordVideo();\r\n }\r\n }>\r\n \r\n Record next\r\n
\r\n
this.finishRecording()}>\r\n \r\n
\r\n
\r\n ),\r\n finishSectionOverlay: (\r\n
\r\n
+25 XP
\r\n
Congratulations, you've completed a section!
\r\n
\r\n
{\r\n this.props.recordNext(-1, 0);\r\n this.loadNextRecordVideo();\r\n }}>\r\n \r\n Next Section\r\n
\r\n
this.finishRecording()}>\r\n \r\n
\r\n
\r\n ),\r\n finishArticleOverlay: (\r\n
{\r\n this.props.backToLanding()\r\n }}>\r\n
+100 XP
\r\n
Congratulations, you've completed the article, be proud!
\r\n
\r\n
\r\n \r\n Wiki Homepage\r\n
\r\n
this.finishRecording()}>\r\n \r\n
\r\n
\r\n ),\r\n recordingUpdatedOverlay: (\r\n
\r\n
\r\n Your previous submission was updated!\r\n
\r\n
\r\n )\r\n }\r\n\r\n turnOffCamera = async () => {\r\n const self = this;\r\n try {\r\n // Turn off camera if on\r\n // if (this.recorder) {\r\n // this.recorder.stop();\r\n // }\r\n const mediaStream = this.video.srcObject;\r\n\r\n // Through the MediaStream, you can get the MediaStreamTracks with getTracks():\r\n const tracks = mediaStream.getTracks();\r\n\r\n // Tracks are returned as an array, so if you know you only have one, you can stop it with: \r\n tracks[0].stop();\r\n clearInterval(this.rClock);\r\n await this.setState({ isRecording: false, isSaving: true })\r\n\r\n }\r\n catch (err) {\r\n }\r\n }\r\n\r\n async componentWillUnmount() {\r\n\r\n this.turnOffCamera();\r\n\r\n }\r\n\r\n video = null\r\n\r\n setRef = (ref) => {\r\n const self = this;\r\n self.video = ref;\r\n // if (self.video) {\r\n // self.video.style.transform = 'scale(-1, 1)';\r\n // }\r\n }\r\n\r\n render() {\r\n const { stayOpen } = this.state;\r\n return (\r\n \r\n {/* {\"Time Progress : \" + this.state.currentVideoTimeProgress} */}\r\n {/* TODO Consolidate click state between parent and child */}\r\n { (this.props.recordMode && !this.state.transitionBetweenRecordings) &&\r\n video.user.userid == this.state.selectedOption) : this.props.sentenceVideos}\r\n sentence={\"bla\"}\r\n articleId={\"bla\"}\r\n title={\"bla\"}\r\n toggleMode={this.props.toggleMode}\r\n hideWindowControls={this.hideWindowControls}\r\n isRecorderLoaded={this.state.isRecorderLoaded}\r\n mode={true}\r\n currSentence={this.state.currSentence}\r\n controlsVisible={this.state.controlsVisible}\r\n isPlaying={this.state.isPlaying}\r\n redoBtn={this.state.redoBtn}\r\n confirmBtn={this.state.confirmBtn}\r\n overwriteVideo={this.props.overwriteVideo}\r\n recordTransitionState={this.state.recordTransitionState}\r\n setRef={this.setRef}\r\n controls={this.state.selectedControlButtons}\r\n initializeRecorderFunc={this.startStopRecording}\r\n selectedControlsName={this.state.selectedControlsName}\r\n videoTransitionOverlay={this.state.videoTransitionOverlay}\r\n currentVideoTimeProgress={this.state.currentVideoTimeProgress}\r\n isRecording={this.state.isRecording}\r\n recordingTime={this.state.recordingTime}\r\n />\r\n\r\n }\r\n {/* {this.state.selectedControlsName }\r\n
\r\n { (this.state.selectedControlButtons && this.state.selectedControlButtons.length === 1) && (\"Button Index Set 0 \" + this.state.selectedControlButtons[0].selectedIndex) }\r\n { (this.state.selectedControlButtons && this.state.selectedControlButtons.length >= 2) && (\"Button Index Set 1 \" + this.state.selectedControlButtons[1].selectedIndex) }\r\n
*/}\r\n { (this.state.transitionBetweenRecordings) &&\r\n \r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst RecorderWikiLayer = withRouter(connect(\r\n \r\n mapDispatchToProps\r\n)(RecorderWikiLayerContainer));\r\n\r\nexport default RecorderWikiLayer;\r\n","import Octicon, { PrimitiveDot, PrimitiveSquare, Sync, Check, Play, ArrowLeft, ArrowRight, SignIn, SignOut, Thumbsdown } from '@githubprimer/octicons-react';\r\n\r\nexport const stopRecordingCallback = async (video, recorder, userid, videoDownload) => {\r\n return new Promise(async (resolve, reject) => {\r\n video.srcObject.getTracks().forEach((track) => {\r\n track.stop();\r\n });\r\n // this.stopTimer();\r\n video.muted = false;\r\n video.volume = 1;\r\n video.srcObject = null;\r\n video.src = null;\r\n video.src = URL.createObjectURL(recorder.getBlob());\r\n\r\n resolve(true)\r\n\r\n })\r\n}\r\n\r\nexport const blobToFile = (theBlob, fileName) => {\r\n try {\r\n theBlob.lastModifiedDate = new Date();\r\n theBlob.name = fileName;\r\n return theBlob;\r\n }\r\n catch (e) {\r\n alert(\"We're really sorry but something went wrong! The page will refresh after you click ok. Please find your article again.\");\r\n window.location.reload();\r\n }\r\n}\r\n\r\nexport const saveWikiRecording = async (self, apiClient, video, userid, videoDownload, props, durationMS, articleName = \"\") => {\r\n const { sentenceIndex, sectionIndex } = props;\r\n const target = props.sectionSentences[sentenceIndex];\r\n const data = new FormData();\r\n const name = `${props.articleId}_${sectionIndex}_${sentenceIndex}`;\r\n data.append('filename', name);\r\n data.append('videoname', name);\r\n data.append('durationMS', durationMS);\r\n data.append('sentenceIndex', sentenceIndex);\r\n data.append('sectionIndex', sectionIndex);\r\n data.append('userid', userid);\r\n data.append('articleId', props.articleId);\r\n data.append('sentence', target.sentenceText.trim());\r\n data.append('title', name + \".mp4\");\r\n data.append('file', videoDownload);\r\n data.append('articleName', articleName);\r\n\r\n let res = await apiClient.postJSON(self, '/add-content/wiki', data, true);\r\n\r\n if (res && res.status) {\r\n return res;\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n};\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport Octicon, { PrimitiveDot, PrimitiveSquare, Sync, Check, Play, ArrowLeft, ArrowRight, SignIn, SignOut, Thumbsdown } from '@githubprimer/octicons-react';\r\nimport Loader from 'react-loader-spinner';\r\nimport ThumbUpAltRoundedIcon from '@material-ui/icons/ThumbUpAltRounded';\r\nimport { playerRecorderControls } from '../../styles/playerRecorderStyles';\r\nimport VideocamRoundedIcon from '@material-ui/icons/VideocamRounded';\r\nimport Progress from 'react-progressbar';\r\nimport { setDurationHack } from \"../../services/video/videoUtils\";\r\nimport { playerRecorderControlText } from '../../styles/playerRecorderStyles';\r\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\r\nimport ThumbDownIcon from '@material-ui/icons/ThumbDown';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport { Switch, FormGroup, FormControlLabel, createGenerateClassName } from '@material-ui/core';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport ReportVideoButton from '../report/ReportVideoButton';\r\n\r\nclass PlayerContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n display: \"hide\",\r\n videoPlayback: false,\r\n isVideoLoaded: false,\r\n isCountdownActive: false,\r\n playbackRate: 1,\r\n currentVideoDuration: null,\r\n currentVoteUp: undefined,\r\n voteUpCount: 0,\r\n currentVoteDown: undefined,\r\n voteDownCount: 0\r\n }\r\n this.recorder = null;\r\n this.video = React.createRef();\r\n this.buttonSubmit = React.createRef();\r\n }\r\n\r\n // Styles\r\n videoPlaceholderStyle = {\r\n border: \"1px solid gray\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n padding: \"10px\",\r\n borderRadius: \"10px\",\r\n cursor: \"pointer\"\r\n }\r\n\r\n vote = async (yesOrNo) => {\r\n const res = await this.apiClient.getJSON(this, \"/verifySentenceVideo\", \"?userVideoId=\" + this.props.currRecording._id + \"&verifyResult=\" + yesOrNo + \"&userId=\" + this.props.loggedInUser);\r\n if (res && res.status === 200) {\r\n\r\n const pointsMod = res.data;\r\n this.props.dispatch(this.props.updateScore(pointsMod, this.props.loggedInUser, this.apiClient));\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n }\r\n\r\n getVotes = async (recId) => {\r\n const res = await this.apiClient.getJSON(this, \"/getVotes\", \"?userVideoId=\" + recId);\r\n if (res && res.status) {\r\n return res.data;\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n }\r\n\r\n // Why is React so popular and yet garbage? Fix this ridiculous code dup nonsense.\r\n async componentDidMount() {\r\n\r\n var self = this;\r\n if (self.props.recordTransitionState && !this.state.isCountdownActive) {\r\n await this.setState({ isCountdownActive: true })\r\n this.initiateRecorder();\r\n }\r\n this.setState(\r\n {\r\n uiControls: self.props.controls.map((c, i) => {\r\n // Inject playback speed, possibly a better way to do this, but it eludes me.\r\n return (\r\n c.control[c.selectedIndex].ui\r\n );\r\n })\r\n });\r\n\r\n // Select current video\r\n this.setState({\r\n currentVideoSelection: \"https://asluservideos.blob.core.windows.net/convertedvideos/TestImage.mp4\",\r\n isVideoLoaded: true\r\n });\r\n }\r\n\r\n async componentWillReceiveProps() {\r\n var self = this;\r\n if (self.props.recordTransitionState && !this.state.isCountdownActive) {\r\n await this.setState({ isCountdownActive: true })\r\n this.initiateRecorder();\r\n }\r\n this.setState(\r\n {\r\n uiControls: self.props.controls.map((c, i) => {\r\n // Inject playback speed, possibly a better way to do this, but it eludes me.\r\n return (\r\n c.control[c.selectedIndex].ui\r\n );\r\n })\r\n });\r\n // try {}\r\n if (this.props.currRecording && this.state.currRecording !== this.props.currRecording && (this.props.currRecording._id !== this.state.currentTargetId)) {\r\n await this.setState({\r\n currentTargetId: this.props.currRecording._id\r\n });\r\n // Get votes is slow, prevent rapid clicking. Should really get votes all at once...\r\n try {\r\n //await this.setState({ currRecording: this.props.currRecording });\r\n const allVotes = await this.getVotes(this.props.currRecording._id);\r\n const userVoteStatus = await this.apiClient.getJSON(this, \"/verifySentenceVideo/userVoteStatus\", \"?userVideoId=\" + this.props.currRecording._id + \"&userId=\" + this.props.loggedInUser);\r\n if (!userVoteStatus) {\r\n return;\r\n }\r\n await this.setState({\r\n currentVoteDown: userVoteStatus.currentVoteDown,\r\n currentVoteUp: userVoteStatus.currentVoteUp,\r\n voteUpCount: allVotes.upVotes,\r\n voteDownCount: allVotes.downVotes\r\n });\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n // Select current video\r\n this.setState({\r\n currentVideoSelection: \"https://asluservideos.blob.core.windows.net/convertedvideos/TestImage.mp4\",\r\n isVideoLoaded: true\r\n });\r\n }\r\n\r\n voteUp() {\r\n if (this.state.currentVoteUp) {\r\n this.setState({ currentVoteUp: false, voteUpCount: this.state.voteUpCount - 1 });\r\n this.vote(\"undo\")\r\n }\r\n else {\r\n this.setState({ currentVoteUp: true, voteUpCount: this.state.voteUpCount + 1 });\r\n this.vote(true)\r\n }\r\n\r\n if (this.state.currentVoteDown) {\r\n this.setState({ currentVoteDown: !this.state.currentVoteDown, voteDownCount: this.state.voteDownCount - 1 });\r\n }\r\n }\r\n\r\n voteDown() {\r\n if (this.state.currentVoteDown) {\r\n this.setState({ currentVoteDown: false, voteDownCount: this.state.voteDownCount - 1 });\r\n this.vote(\"undo\")\r\n }\r\n else {\r\n this.setState({ currentVoteDown: true, voteDownCount: this.state.voteDownCount + 1 });\r\n this.vote(false)\r\n }\r\n\r\n if (this.state.currentVoteUp) {\r\n this.setState({ currentVoteUp: !this.state.currentVoteUp, voteUpCount: this.state.voteUpCount - 1 });\r\n }\r\n }\r\n\r\n flagRemoval = () => {\r\n\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {this.props.currRecording &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {(this.state.isVideoLoaded && this.props.currRecording && this.props.currentVideoTimeProgress > 5) &&\r\n \r\n }\r\n
\r\n {!this.state.isVideoLoaded &&\r\n
\r\n \r\n
\r\n }\r\n {((!this.props.currRecording || !this.props.currRecording.convertedUrl)) &&\r\n
\r\n To watch videos, click on article text that has recordings.\r\n
\r\n }\r\n
\r\n {(this.state.isVideoLoaded && this.props.currRecording) &&\r\n \r\n
\r\n
\r\n\r\n {this.state.uiControls}\r\n \r\n {this.props.video && this.props.video.playbackRate && this.props.video.playbackRate + \"x speed\"}\r\n \r\n
\r\n {/*
\r\n
Is this recording accurate?
\r\n \r\n \r\n
\r\n this.flagRemoval()} data={this.props.currRecording} loggedInUserId={this.props.loggedInUser} />\r\n
\r\n
*/}\r\n
\r\n \r\n }\r\n label=\"Continuous Play\"\r\n />\r\n \r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst Player = withRouter(connect(\r\n \r\n mapDispatchToProps\r\n)(PlayerContainer));\r\n\r\nexport default Player;\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col } from 'reactstrap';\r\n// import Switch from \"react-switch\";\r\nimport { FaThumbsDown, FaThumbsUp } from 'react-icons/fa';\r\nimport Select from 'react-select';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport Player from './Player';\r\nimport { playerRecorderControls, playerRecorderControlText, playerRecorderControlSmall } from '../../styles/playerRecorderStyles';\r\nimport PlayCircleFilledRoundedIcon from '@material-ui/icons/PlayCircleFilledRounded';\r\nimport PauseCircleFilledRoundedIcon from '@material-ui/icons/PauseCircleFilledRounded';\r\nimport ReplayRoundedIcon from '@material-ui/icons/ReplayRounded';\r\nimport SkipNextRoundedIcon from '@material-ui/icons/SkipNextRounded';\r\nimport SkipPreviousRoundedIcon from '@material-ui/icons/SkipPreviousRounded';\r\nimport CheckBoxRoundedIcon from '@material-ui/icons/CheckBoxRounded';\r\nimport RedoRoundedIcon from '@material-ui/icons/RedoRounded';\r\nimport StopRoundedIcon from '@material-ui/icons/StopRounded';\r\nimport ReactPlayer from 'react-player';\r\nimport VideocamRoundedIcon from '@material-ui/icons/VideocamRounded';\r\nimport \"../../styles/video.css\";\r\nimport coins from '../../resources/coins.png';\r\nimport { setPlayProgress, pausePlayProgress } from \"../../services/video/videoUtils\";\r\nimport SpeedRoundedIcon from '@material-ui/icons/SpeedRounded';\r\nimport AddBoxRoundedIcon from '@material-ui/icons/AddBoxRounded';\r\nimport IndeterminateCheckBoxRoundedIcon from '@material-ui/icons/IndeterminateCheckBoxRounded';\r\n\r\n\r\nclass PlayerWikiLayer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n upVotes: 0,\r\n player: null,\r\n mode: true,\r\n // Tracks when a video recording or playback ready\r\n isRecorderLoaded: false,\r\n videoPlayback: false,\r\n recordTransitionValue: false,\r\n selectedControlButtons: [...this.readModeButtons],\r\n selectedControlsName: \"record\",\r\n downVotes: 0,\r\n tempCount: 0,\r\n isPlaying: false,\r\n topicTextUserList: [],\r\n stayOpen: false,\r\n selectedOption: null,\r\n currentVideoTimeProgress: 0,\r\n currRecording: null,\r\n autoReadMode: true,\r\n playbackRate: 1.0\r\n }\r\n this.recorder = null;\r\n\r\n this.video = React.createRef();\r\n this.buttonSubmit = React.createRef();\r\n // this.handleChange = this.handleChange.bind(this);\r\n // this.handleSelect = this.handleSelect.bind(this);\r\n }\r\n\r\n\r\n playbackEnded() {\r\n this.props.playbackEnded(this.props.sentence);\r\n }\r\n\r\n\r\n async componentDidMount() {\r\n\r\n }\r\n\r\n selectStyles = {\r\n control: styles => ({ ...styles, width: \"260px\", minWidth: \"260px\" })\r\n }\r\n\r\n\r\n // handleSelect(option) {\r\n // this.setState({ selectedOption: option.value });\r\n // }\r\n\r\n // handleChange(checked) {\r\n // this.setState({ checked: checked });\r\n // this.props.recordingMode(checked);\r\n // }\r\n\r\n\r\n\r\n playPauseTimeout = null;\r\n progressBarInterval = null;\r\n\r\n playLock = null;\r\n\r\n resetPlayer = () => {\r\n clearTimeout(this.playPauseTimeout)\r\n this.setState({ currentVideoTimeProgress: 0 });\r\n }\r\n\r\n readMethods = {\r\n decreasePlaybackSpeed: () => {\r\n if (this.video.playbackRate > 0.25) {\r\n this.video.playbackRate = this.video.playbackRate - 0.25;\r\n this.setState({\r\n playbackRate: this.video.playbackRate\r\n });\r\n this.readMethods.pause()\r\n this.readMethods.play()\r\n\r\n }\r\n },\r\n increasePlaybackSpeed: () => {\r\n if (this.video.playbackRate < 2) {\r\n this.video.playbackRate = this.video.playbackRate + 0.25;\r\n this.setState({ playbackRate: this.video.playbackRate });\r\n this.readMethods.pause()\r\n this.readMethods.play()\r\n }\r\n },\r\n play: async () => {\r\n await this.setState({ pauseProgressOn: false });\r\n const self = this\r\n this.video.playbackRate = this.state.playbackRate;\r\n clearTimeout(self.playPauseTimeout)\r\n if (self.video.currentTime === self.props.currRecording.durationMS) {\r\n self.video.currentTime = 0;\r\n }\r\n self.progressBarInterval = setPlayProgress(this, self.video.currentTime, this.props.currRecording.durationMS);\r\n self.video.play();\r\n const rmb = [...self.state.selectedControlButtons];\r\n rmb[2].selectedIndex = 1;\r\n this.playLock = true;\r\n self.setState({ selectedControlButtons: rmb });\r\n const timeout = (self.props.currRecording.durationMS - self.video.currentTime) * 1000 * (1 / self.video.playbackRate);\r\n\r\n const st = setTimeout(async () => {\r\n const rmb = [...this.state.selectedControlButtons];\r\n rmb[2].selectedIndex = 0;\r\n this.setState({ selectedControlButtons: rmb });\r\n // Switch to next video\r\n this.resetPlayer()\r\n const doesNextVideoExist = this.props.doesNextRecordingExist(this.props.sectionIndex, this.props.sentenceIndex);\r\n if (this.state.autoReadMode && doesNextVideoExist) {\r\n const isContinue = await self.props.readNext();\r\n }\r\n }, timeout)\r\n self.playPauseTimeout = st;\r\n },\r\n pause: () => {\r\n this.video.pause();\r\n pausePlayProgress(this);\r\n const rmb = [...this.state.selectedControlButtons];\r\n rmb[2].selectedIndex = 0;\r\n this.setState({ selectedControlButtons: rmb });\r\n },\r\n rewind: () => {\r\n this.video.currentTime = 0;\r\n this.setState({ currentVideoTimeProgress: 0 });\r\n },\r\n playPrev: () => {\r\n this.resetPlayer()\r\n const doesPrevVideoExist = this.props.doesPrevRecordingExist(this.props.sectionIndex, this.props.sentenceIndex)\r\n if (doesPrevVideoExist) {\r\n let self = this;\r\n let secI = self.props.sectionIndex;\r\n let senI = self.props.sentenceIndex - 1;\r\n if (self.props.sentenceIndex === 0 && secI > 0) {\r\n secI = secI - 1;\r\n senI = null;\r\n }\r\n self.props.readNext(secI, senI);\r\n }\r\n },\r\n playNext: () => {\r\n this.resetPlayer();\r\n this.video.playbackRate = this.state.playbackRate;\r\n const doesNextVideoExist = this.props.doesNextRecordingExist(this.props.sectionIndex, this.props.sentenceIndex);\r\n if (doesNextVideoExist) {\r\n this.props.readNext();\r\n }\r\n },\r\n startRecording: () => {\r\n this.recordingStart()\r\n }\r\n }\r\n\r\n inx = 1\r\n\r\n readModeButtons = [\r\n //playPrev: \r\n {\r\n control: [{\r\n ui: ( this.readMethods.playPrev()} style={playerRecorderControls} className=\"control\" />)\r\n }],\r\n selectedIndex: 0\r\n },\r\n //rewind: \r\n {\r\n control: [{\r\n ui: ()\r\n }],\r\n selectedIndex: 0\r\n },\r\n //play_pause:\r\n {\r\n control: [\r\n {\r\n ui: ()\r\n },\r\n {\r\n ui: ()\r\n }\r\n ],\r\n selectedIndex: 0\r\n },\r\n //playNext: \r\n {\r\n control: [{\r\n ui: ()\r\n }],\r\n selectedIndex: 0\r\n },\r\n //SpeedMinus: \r\n {\r\n control: [{\r\n ui: ()\r\n }],\r\n selectedIndex: 0\r\n },\r\n //SpeedPlus: \r\n {\r\n control: [{\r\n ui: ()\r\n }],\r\n selectedIndex: 0\r\n }\r\n ]\r\n\r\n overlays = {\r\n finishSectionOverlay: (\r\n
\r\n
+25 XP
\r\n
Congratulations, you've completed a section!
\r\n
\r\n
\r\n \r\n Next Section\r\n
\r\n
\r\n )\r\n }\r\n\r\n video = null\r\n\r\n setRef = (ref) => {\r\n const self = this;\r\n self.video = ref;\r\n\r\n // Account for latency issues\r\n try {\r\n //self.video.style.transform = 'scale(-1, 1)';\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n async componentWillReceiveProps() {\r\n this.resetPlayer()\r\n }\r\n\r\n toggleAutoRead = () => {\r\n const self = this;\r\n self.setState({ autoReadMode: !this.state.autoReadMode });\r\n }\r\n\r\n render() {\r\n const { stayOpen } = this.state;\r\n return (\r\n \r\n video.user.userid == this.state.selectedOption) : this.props.sentenceVideos}\r\n sentence={\"bla\"}\r\n articleId={\"bla\"}\r\n title={\"bla\"}\r\n isRecorderLoaded={this.state.isRecorderLoaded}\r\n mode={true}\r\n isPlaying={this.state.isPlaying}\r\n toggleAutoRead={this.toggleAutoRead}\r\n autoReadMode={this.state.autoReadMode}\r\n loggedInUser={this.props.loggedInUser}\r\n sentenceVideos={this.props.sentenceVideos}\r\n recordTransitionState={this.state.recordTransitionState}\r\n setRef={this.setRef}\r\n controls={this.state.selectedControlButtons}\r\n initializeRecorderFunc={this.startStopRecording}\r\n selectedControlsName={this.state.selectedControlsName}\r\n videoTransitionOverlay={this.state.videoTransitionOverlay}\r\n currentVideoTimeProgress={this.state.currentVideoTimeProgress}\r\n playbackRate={this.state.playbackRate}\r\n video={this.video}\r\n currRecording={this.props.currRecording}\r\n play={this.readMethods.play}\r\n />\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default PlayerWikiLayer;\r\n","import React from \"react\";\r\n\r\nclass ViewBlocker extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n };\r\n }\r\n\r\n render() {\r\n if (!this.props.isDisplayBlocked) {\r\n return null;\r\n }\r\n else {\r\n return (\r\n //
\r\n
\r\n
X
\r\n
You have to be signed in to record videos.
\r\n
\r\n
this.props.history.push(\"/tpLogin\")} aria-label=\"Login/Signup Link\">\r\n Sign in\r\n
\r\n
\r\n
\r\n //
\r\n ) \r\n }\r\n \r\n }\r\n}\r\n\r\nexport default ViewBlocker\r\n","import React, { Component } from \"react\";\r\nimport { Row, Col } from 'reactstrap';\r\nimport AsyncSelect from 'react-select/async'\r\nimport RecorderWikiLayer from '../player-recorder/RecorderWikiLayer';\r\nimport PlayerWikiLayer from '../player-recorder/PlayerWikiLayer';\r\nimport UnpaidGeneralConsent from '../auth/UnpaidGeneralConsent';\r\nimport { FaExternalLinkSquareAlt } from \"react-icons/fa\";\r\nimport { loaderStyle } from '../../styles/modalStyles';\r\nimport Loader from 'react-loader-spinner';\r\nimport \"../../styles/wiki.css\";\r\nimport { Switch, FormGroup, FormControlLabel, createGenerateClassName } from '@material-ui/core';\r\nimport LocalMoviesRoundedIcon from '@material-ui/icons/Videocam';\r\nimport PlayCircleFilledRoundedIcon from '@material-ui/icons/PlayCircleFilledRounded';\r\nimport SlowMotionPlayRoundedIcon from '@material-ui/icons/SlowMotionVideoRounded';\r\nimport { connect } from 'react-redux';\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport ArrowLeftRoundedIcon from '@material-ui/icons/ArrowLeftRounded';\r\nimport Moment from 'moment';\r\nimport ViewBlocker from \"../global/ViewBlocker\";\r\nimport { isRecorderAvailable } from \"../../services/video/videoUtils\";\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport { debounce } from \"../../utils/utilMethods\";\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\n\r\nclass WikiContainer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n contentTopicsList: [],\r\n selectedCategories: { \"All\": true },\r\n stayOpen: false,\r\n isLoading: true,\r\n splashView: true,\r\n selectedOption: null,\r\n sentenceIndex: null,\r\n topicId: '',\r\n toggleWiki: false,\r\n title: '',\r\n articleTitle: '',\r\n clickTransition: true,\r\n sentence: '',\r\n contentTopicInfo: [],\r\n contentTopicSentences: [],\r\n contentTopicVideos: [],\r\n wikiVideoOptions: [],\r\n showWikiInfo: true,\r\n showVideoState: false,\r\n overwriteVideo: null,\r\n isInitialOverrideSelection: true,\r\n recordMode: false,\r\n loggedInUser: this.props.loggedInUser,\r\n totalRecordings: 0,\r\n canViewWiki: false,\r\n selectedTopicTextId: ''\r\n }\r\n window.document.addEventListener('tryClick', this.tryClick, false)\r\n window.document.addEventListener('sentenceClick', this.handleClick, false)\r\n\r\n }\r\n\r\n handleClick = (e) => {\r\n e.preventDefault();\r\n var sentence = unescape(e.detail);\r\n this.play(sentence);\r\n }\r\n\r\n\r\n selectStyles = {\r\n control: styles => ({ ...styles, minWidth: \"300px\", width: \"100%\", textAlign: 'left', zIndex: \"99\" })\r\n }\r\n\r\n readVideoMethods = {\r\n loadVideoCollection: async () => {\r\n\r\n }\r\n }\r\n\r\n isPainted = false;\r\n\r\n tryRecordingPaint() {\r\n try {\r\n if (this.state.wikiStructure && !this.isPainted && this.state.recordMode) {\r\n this.paintUserPreviouslyRecordedVideos(this.props.loggedInUser);\r\n this.isPainted = true\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (window.location.href.includes(\"?targetArticle=\")) {\r\n let articleId = window.location.href.split(\"?targetArticle=\")[1].split(\"&targetName=\")[0];\r\n let articleName = window.location.href.split(\"?targetArticle=\")[1].split(\"&targetName=\")[1]\r\n\r\n if (articleId) {\r\n this.handleChange({ value: articleId, term: articleName, message: \"Needs Your Expertise\" })\r\n }\r\n }\r\n\r\n this.apiClient.getJSON(this, \"/getContentTopicSentences/options\", \"\")\r\n .then(res => {\r\n\r\n if (res && res.status) {\r\n this.setState({ isLoading: false });\r\n const results = res.data.sort((a, b) => {\r\n return (a.articleName.localeCompare(b.articleName));\r\n });\r\n this.setState({ wikiVideoOptions: results });\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n this.setState({ isLoading: false });\r\n })\r\n }\r\n\r\n componentDidUpdate() {\r\n this.tryRecordingPaint();\r\n }\r\n\r\n loadNextSentenceVideo = async () => {\r\n\r\n }\r\n\r\n loadNextSentenceVideo = async () => {\r\n\r\n }\r\n\r\n unSetTextBackground(targetId) {\r\n const elem = window.document.getElementById(targetId);\r\n if (elem) {\r\n elem.style.background = \"white\";\r\n elem.removeAttribute(\"marked\");\r\n }\r\n }\r\n\r\n setTextBackground(color, targetId, isTemp) {\r\n const elem = window.document.getElementById(targetId);\r\n if (!elem) {\r\n return;\r\n }\r\n if (isTemp) {\r\n if (!elem.hasAttribute(\"marked\")) {\r\n elem.style.background = color;\r\n }\r\n }\r\n else {\r\n elem.setAttribute(\"marked\", true);\r\n elem.style.background = color;\r\n }\r\n }\r\n\r\n genDefaultHighlightState = () => {\r\n const dhs = {\r\n current: null,\r\n previous: [],\r\n sentences: []\r\n }\r\n return dhs;\r\n }\r\n\r\n readHighlightState = this.genDefaultHighlightState();\r\n\r\n recordHighlightState = this.genDefaultHighlightState();\r\n\r\n doesPrevRecordingExist = (sectionIndex, sentenceIndex) => {\r\n try {\r\n let currentSectionRecordings = this.state.wikiStructure[sectionIndex].sentenceRecordings;\r\n sentenceIndex--;\r\n // End of section check\r\n if (sentenceIndex < 0) {\r\n sectionIndex--;\r\n sentenceIndex = this.state.wikiStructure[sectionIndex].sentenceRecordings.length - 1;\r\n }\r\n if (this.state.wikiStructure[sectionIndex].sentenceRecordings[sentenceIndex].recordings.length > 0) {\r\n return true;\r\n }\r\n else {\r\n this.setState({ currRecording: null, sentenceVideos: null })\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n this.setState({ currRecording: null, sentenceVideos: null })\r\n return false;\r\n }\r\n }\r\n\r\n doesNextRecordingExist = (sectionIndex, sentenceIndex) => {\r\n try {\r\n let currentSectionRecordings = this.state.wikiStructure[sectionIndex].sentenceRecordings;\r\n sentenceIndex++;\r\n // End of section check\r\n if (currentSectionRecordings.length === sentenceIndex) {\r\n sectionIndex++;\r\n sentenceIndex = 0;\r\n }\r\n\r\n if (this.state.wikiStructure[sectionIndex].sentenceRecordings[sentenceIndex].recordings.length > 0) {\r\n return true;\r\n }\r\n else {\r\n this.setState({ currRecording: null, sentenceVideos: null })\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n this.setState({ currRecording: null, sentenceVideos: null })\r\n return false;\r\n }\r\n }\r\n\r\n readNextVideo = async (sectionIndex, sentenceIndex) => {\r\n\r\n try {\r\n \r\n const self = this;;\r\n // Handle prev transition state inelegantly\r\n if (sentenceIndex === null) {\r\n sentenceIndex = this.state.wikiStructure[sectionIndex].sentenceRecordings.length - 1;\r\n }\r\n if (sectionIndex === undefined || sentenceIndex === undefined) {\r\n sectionIndex = self.readHighlightState.current.sectionIndex;\r\n sentenceIndex = self.readHighlightState.current.sentenceIndex;\r\n sentenceIndex++;\r\n }\r\n\r\n const prevSentenceIndex = sentenceIndex;\r\n //const prevSectionIndex = prevSectionIndex\r\n\r\n let sectionRecordings = self.state.wikiStructure[sectionIndex].sentenceRecordings;\r\n\r\n\r\n // // Check for next section if applicable\r\n if (sentenceIndex >= sectionRecordings.length) {\r\n sectionIndex = sectionIndex + 1;\r\n sentenceIndex = 0;\r\n sectionRecordings = self.state.wikiStructure[sectionIndex].sentenceRecordings;\r\n if (sectionRecordings.length < 1) {\r\n return false;\r\n }\r\n }\r\n\r\n sectionRecordings = this.state.wikiStructure[sectionIndex].sentenceRecordings;\r\n self.readHighlightState.sentences = sectionRecordings\r\n self.setState({\r\n targetSentence: [sectionIndex, sentenceIndex],\r\n sentenceVideos: sectionRecordings[sentenceIndex].recordings.sort((a, b) => { return (a.user.userName.localeCompare(b.user.userName));})\r\n });\r\n\r\n const targetSection = self.state.wikiStructure[sectionIndex];\r\n\r\n // Ensure that system actually moving forward\r\n\r\n if (self.readHighlightState.current) {\r\n self.readHighlightState.previous.push(self.readHighlightState.current);\r\n self.setTextBackground(\"#F5FDFF\", self.readHighlightState.current.sentenceId)\r\n }\r\n\r\n if (!self.readHighlightState.sentences[sentenceIndex]) {\r\n return false;\r\n }\r\n\r\n const sentState = {\r\n sectionIndex: sectionIndex,\r\n sentenceIndex: sentenceIndex,\r\n sentenceId: self.readHighlightState.sentences[sentenceIndex].id\r\n }\r\n\r\n self.readHighlightState.current = sentState;\r\n self.setTextBackground(\"#9ed4f7\", self.readHighlightState.sentences[sentenceIndex].id);\r\n const bestSelectedIndex = await self.selectBestVideo(sectionRecordings, sentenceIndex, sectionIndex);\r\n\r\n await self.setState({\r\n sectionSentences: self.readHighlightState.sentences,\r\n sentenceIndex: sentenceIndex, sectionIndex: sectionIndex,\r\n currRecording: sectionRecordings[sentenceIndex].recordings[bestSelectedIndex]\r\n });\r\n if (sentenceIndex < self.state.wikiStructure[sectionIndex].sentenceRecordings.length) {\r\n return true\r\n }\r\n\r\n\r\n return false;\r\n }\r\n catch (e) {\r\n }\r\n }\r\n\r\n preferredUser = null;\r\n\r\n findUserWithMostConsecutiveRecordings(section, sentenceIndex, sectionIndex) {\r\n const self = this;\r\n let preferredUserId = null;\r\n let indexNextRecording = null;\r\n const userIndices = {};\r\n\r\n for (let si = section; si < section.length; si++) {\r\n const recordings = section[si].recordings\r\n for (let i = sentenceIndex; i < recordings.length; i++) {\r\n\r\n const userId = recordings[i].user.id;\r\n if (!userIndices.hasOwnProperty(userId)) {\r\n userIndices[userId] =\r\n {\r\n continuity: [si],\r\n continuityBrokenAtIndex: -1,\r\n\r\n }\r\n }\r\n else if (userIndices[userId].continuityBrokenAtIndex === -1) {\r\n\r\n const user = userIndices[userId];\r\n const clen = user.continuity.length\r\n // Check for continuity, scrap if not\r\n if (si !== user.continuity[clen - 1] && user.continuity[clen - 1] !== si - 1) {\r\n user.continuityBrokenAtIndex = user.continuity[clen - 1];\r\n }\r\n else {\r\n if (si !== user.continuity[clen - 1]) {\r\n user.continuity.push(si);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Add current selection in case of no best options with lookahead\r\n if (Object.keys(userIndices).length === 0) {\r\n const recordings = section[sentenceIndex].recordings;\r\n const userId = recordings[0].user.id;\r\n userIndices[userId] =\r\n {\r\n continuity: [sentenceIndex],\r\n continuityBrokenAtIndex: -1,\r\n }\r\n }\r\n // Sort by latest continuity break (major), total continuity (minor)\r\n const sorted = Object.entries(userIndices).sort(([, a], [, b]) => {\r\n if (b.continuityBrokenAtIndex === a.continuityBrokenAtIndex) {\r\n if (a.continuity.length > b.continuity.length) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n }\r\n else {\r\n if (a.continuityBrokenAtIndex === -1) {\r\n return -1;\r\n }\r\n else if (b.continuityBrokenAtIndex === -1) {\r\n return 1;\r\n }\r\n else if (a.continuityBrokenAtIndex < b.continuityBrokenAtIndex) {\r\n return 1;\r\n }\r\n else {\r\n return -1;\r\n }\r\n }\r\n });\r\n preferredUserId = sorted[0][0];\r\n section[sentenceIndex].recordings.forEach((item, sr) => {\r\n if (item.user.id === preferredUserId) {\r\n indexNextRecording = sr\r\n }\r\n });\r\n return {\r\n preferredUserId,\r\n indexNextRecording\r\n }\r\n }\r\n\r\n checkIfPreferredUserAvailable(sectionRecordings) {\r\n for (let i = 0; i < sectionRecordings.length; i++) {\r\n if (sectionRecordings[i].user.id === this.preferredUser) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n selectBestVideo = async (section, sentenceIndex, sectionIndex) => {\r\n const self = this;\r\n let indexNextRecording;\r\n let preferredUserId = self.preferredUser;\r\n // First check if current preferred user is available\r\n if (this.preferredUser) {\r\n indexNextRecording = this.checkIfPreferredUserAvailable(section[sentenceIndex].recordings)\r\n }\r\n\r\n if (indexNextRecording === undefined || indexNextRecording === null) {\r\n // If not default to next best option\r\n const res = self.findUserWithMostConsecutiveRecordings(section, sentenceIndex, sectionIndex);\r\n indexNextRecording = res.indexNextRecording;\r\n preferredUserId = res.preferredUserId;\r\n }\r\n\r\n let videos = []\r\n // if (!self.state.sentenceVideos) {\r\n videos = self.state.wikiStructure[sectionIndex].sentenceRecordings[sentenceIndex].recordings;\r\n // }\r\n // else {\r\n // videos = [...self.state.sentenceVideos]\r\n // }\r\n\r\n videos.forEach((vid) => {\r\n if (vid) {\r\n vid.isSelected = false;\r\n }\r\n })\r\n\r\n videos[indexNextRecording].isSelected = true;\r\n await this.setState({ sentenceVideos: videos })\r\n self.preferredUser = preferredUserId;\r\n return indexNextRecording;\r\n }\r\n\r\n targetSentence = []\r\n\r\n // For users that have recordings, avoid re-recording over quality, and find next unrecorded section\r\n identifyNextViableIndex = (sentenceIndex, sectionIndex) => {\r\n let self = this;\r\n let isViableVideoFound = false\r\n while (!isViableVideoFound) {\r\n const recs = self.state.wikiStructure[sectionIndex].sentenceRecordings[sentenceIndex].recordings;\r\n let userFoundInLoop = false;\r\n for (let i = 0; i < recs.length; i++) {\r\n if (recs[i].user.id === this.props.loggedInUser) {\r\n userFoundInLoop = true;\r\n break;\r\n }\r\n }\r\n if (!userFoundInLoop) {\r\n isViableVideoFound = true\r\n return { nextViableSentenceIndex: sentenceIndex, nextViableSectionIndex: sectionIndex }\r\n }\r\n sentenceIndex++\r\n if (sentenceIndex >= self.state.wikiStructure[sectionIndex].sentenceRecordingslength) {\r\n sectionIndex++\r\n }\r\n if (sectionIndex >= self.state.wikiStructure.length) {\r\n return { nextViableSentenceIndex: null, nextViableSectionIndex: null }\r\n }\r\n }\r\n }\r\n\r\n\r\n deSelectLine = () => {\r\n if (this.recordHighlightState.current) {\r\n this.setTextBackground(\"#EFFFEF\", this.recordHighlightState.current.sentenceId);\r\n this.structureWikiHTML();\r\n }\r\n }\r\n\r\n // activateIsInitialOverrideSelection = async (val) => {\r\n // await this.setState({ isInitialOverrideSelection: val })\r\n // }\r\n\r\n recordNextVideo = (sectionIndex, sentenceIndex, cancelOverride) => {\r\n try {\r\n const self = this;\r\n if (sectionIndex === -1) {\r\n sectionIndex = self.recordHighlightState.current.sectionIndex + 1;\r\n\r\n self.recordHighlightState.sentences = self.state.wikiStructure[sectionIndex].sentenceRecordings\r\n }\r\n if (sectionIndex === undefined || sentenceIndex === undefined) {\r\n sectionIndex = self.recordHighlightState.current.sectionIndex;\r\n sentenceIndex = self.recordHighlightState.current.sentenceIndex;\r\n sentenceIndex++;\r\n }\r\n\r\n // Increment might be a video that user already recorded, handle gracefully by looping until correct indices are found\r\n // if (!this.state.isInitialOverrideSelection) {\r\n // const { nextViableSentenceIndex, nextViableSectionIndex } = this.identifyNextViableIndex(sentenceIndex, sectionIndex);\r\n // if (nextViableSectionIndex === null) {\r\n // return;\r\n // }\r\n // else {\r\n // sectionIndex = nextViableSectionIndex\r\n // sentenceIndex = nextViableSentenceIndex\r\n // }\r\n // }\r\n // Subsequent overrides find next viable index\r\n\r\n const targetSection = self.state.wikiStructure[sectionIndex];\r\n if (self.recordHighlightState.current) {\r\n self.recordHighlightState.previous.push(self.recordHighlightState.current);\r\n self.setTextBackground(\"#EFFFEF\", self.recordHighlightState.current.sentenceId)\r\n }\r\n const sentState = {\r\n sectionIndex: sectionIndex,\r\n sentenceIndex: sentenceIndex,\r\n sentenceId: self.recordHighlightState.sentences[sentenceIndex].id\r\n }\r\n self.recordHighlightState.current = sentState;\r\n self.setTextBackground(\"#0EBE0E\", self.recordHighlightState.sentences[sentenceIndex].id);\r\n self.setState({ sectionSentences: self.recordHighlightState.sentences, sentenceIndex: sentenceIndex, sectionIndex: sectionIndex });\r\n this.structureWikiHTML();\r\n }\r\n catch (e) {\r\n // End of sections\r\n }\r\n }\r\n\r\n tryFindUserRecording(sectionRecordings) {\r\n const currentUID = this.props.loggedInUser;\r\n return sectionRecordings.find((rec) => {\r\n\r\n return rec.user.id === currentUID\r\n });\r\n }\r\n\r\n async clearRecordState() {\r\n await this.setState({ overwriteVideo: null, currRecording: null });\r\n await this.setState({ sectionSentences: null, sentenceIndex: null, sectionIndex: null });\r\n }\r\n\r\n beginSectionRecord = async (sectionIndex, sentenceIndex, cancelOverride) => {\r\n await this.clearRecordState();\r\n // Disambiguate if video is yours and change state to show that recording\r\n const sectionRecordings = this.state.wikiStructure[sectionIndex].sentenceRecordings[sentenceIndex].recordings;\r\n // Gives users ability to re-record existing videos\r\n const userRecording = this.tryFindUserRecording(sectionRecordings)\r\n if (userRecording && !cancelOverride) {\r\n // Camera shouldn't be on for override\r\n await this.setState({ overwriteVideo: userRecording, currRecording: userRecording });\r\n }\r\n else {\r\n await this.setState({ overwriteVideo: null });\r\n }\r\n\r\n this.recordNextVideo(sectionIndex, sentenceIndex, cancelOverride);\r\n this.initiateRecorder(true);\r\n }\r\n\r\n initiateRecorder = null;\r\n\r\n setRecorderRef = (ref) => {\r\n this.initiateRecorder = ref;\r\n }\r\n\r\n appendNewVideoData = (data) => {\r\n const self = this;\r\n const wikiStructure = self.state.wikiStructure;\r\n const { recording } = data;\r\n const updatedWikiStructure = [...wikiStructure]\r\n const section = updatedWikiStructure[recording.sectionIndex].sentenceRecordings[recording.sentenceIndex];\r\n const sentenceRecordings = section.recordings;\r\n let replaceTarget = null;\r\n for (let i = 0; i < sentenceRecordings.length; i++) {\r\n const target = sentenceRecordings[i];\r\n if (target.user.id === self.props.loggedInUser) {\r\n replaceTarget = target;\r\n }\r\n }\r\n // Handle initial recording\r\n if (replaceTarget === null) {\r\n replaceTarget = {};\r\n sentenceRecordings.push(replaceTarget)\r\n }\r\n // Handle re-record and initial recordings\r\n replaceTarget[\"convertedUrl\"] = recording.blob;\r\n replaceTarget[\"user\"] = recording.user\r\n replaceTarget[\"durationMS\"] = recording.duration;\r\n replaceTarget[\"title\"] = recording.title;\r\n this.setState({ wikiStructure: updatedWikiStructure })\r\n\r\n }\r\n\r\n selectSentence = async (sectionIndex, sentenceIndex, cancelOverride = false) => {\r\n\r\n // Manage UI in between clicks with lock\r\n // if(this.state.clickTransition) {\r\n // await this.setState({clickTransition : false })\r\n // // setTimeout(async () => {\r\n // await this.setState({clickTransition : true })\r\n const targetSection = this.state.wikiStructure[sectionIndex];\r\n const sentences = targetSection.sentenceRecordings;\r\n \r\n \r\n if (!this.state.recordMode) {\r\n\r\n if (sentences.length < 1 || sentences[sentenceIndex].recordings < 1) {\r\n\r\n this.setState({ currRecording: null, sentenceVideos: null })\r\n }\r\n else {\r\n\r\n this.readHighlightState.sentences = sentences;\r\n this.readNextVideo(sectionIndex, sentenceIndex)\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n generateClassName() {\r\n return this.state.recordMode ? 'sentence-wrapper ' : 'read-sentence-wrapper ';\r\n }\r\n\r\n prevBack = null;\r\n\r\n\r\n\r\n switchColor(id) {\r\n const elem = document.getElementById(id);\r\n this.prevBack = elem.style.background;\r\n if (this.state.recordMode) {\r\n this.setTextBackground(\"#EFFFEF\", id, true)\r\n }\r\n else {\r\n this.setTextBackground(\"#9ed4f7\", id, true)\r\n }\r\n\r\n }\r\n\r\n\r\n switchColorRev(id) {\r\n this.setTextBackground(this.prevBack, id, true)\r\n }\r\n\r\n toggleWiki() {\r\n this.setState({ toggleWiki: !this.state.toggleWiki })\r\n }\r\n\r\n generateRecordingStatus(sentenceRecordings) {\r\n // const numberRecordings = sentenceRecordings.reduce((accum, rec) => {\r\n // accum += (rec.recordings.length)\r\n // return accum;\r\n // }, 0);\r\n // if (numberRecordings === 0) {\r\n // return (\r\n // //
\r\n // // \r\n // // \r\n // // \r\n // // \r\n // // \r\n // // Be the first to record\r\n // //
\r\n // );\r\n // }\r\n // else {\r\n // return (\r\n // //
\r\n // // \r\n // // \r\n // // \r\n // // \r\n // // \r\n // //
\r\n // );\r\n // }\r\n }\r\n\r\n\r\n\r\n structureWikiHTML = () => {\r\n const pdotStyle = \"position: absolute; margin-top: 6px; margin-left: 3px; margin-right: 5px; font-size: 32px; line-height: 12px;\"\r\n const informationalStyle = `style=\"font-size: calc(0.75em * 0.875); font-weight:normal;\"`\r\n const universalStyle = `font-size: calc(1.25em * 0.875); font-weight:normal; font-family: sans-serif !important;`\r\n const headerStyle = `font-size: calc(2em * 0.875); font-weight: bold;`\r\n\r\n let totalRecordings = 0;\r\n for (let i = 1; i < this.state.wikiStructure.length; i++) {\r\n for (let j = 0; j < this.state.wikiStructure[i].sentenceRecordings.length; j++) {\r\n totalRecordings += this.state.wikiStructure[i].sentenceRecordings[j].recordings.length\r\n }\r\n }\r\n this.setState({ totalRecordings: totalRecordings });\r\n\r\n //👋 Be the first to record\r\n // \"⚡\"\r\n const data = this.state.wikiStructure.map((header, sectionIndex) => {\r\n const sentences = header.sentenceRecordings.map((sentence, sentenceIndex) => {\r\n if (sentenceIndex === 0 && sectionIndex !== 0) {\r\n const headerNode = (\r\n \r\n
\r\n {sectionIndex !== 0 &&
this.switchColor(sentence.id)}\r\n onMouseOut={(id) => this.switchColorRev(sentence.id)}\r\n onClick={() => this.selectSentence(sectionIndex, sentenceIndex)}\r\n\r\n >{sectionIndex + '.0 ' + header.headerTitle}\r\n\r\n {!this.state.recordMode && (sentence.recordings.length > 0) && }\r\n {this.state.recordMode && (sentence.recordings.length > 0) && }\r\n
\r\n }\r\n\r\n\r\n
\r\n\r\n
\r\n )\r\n\r\n return (\r\n headerNode\r\n )\r\n }\r\n else {\r\n let s_id = sentence.id //sectionIndex + \"-\" + sentenceIndex;\r\n return (\r\n this.switchColor(s_id)}\r\n onMouseOut={(id) => this.switchColorRev(s_id)}\r\n onClick={() => this.selectSentence(sectionIndex, sentenceIndex)}\r\n className={this.generateClassName()}>\r\n

\r\n \r\n {sectionIndex + '.' + sentenceIndex + ' '}\r\n \r\n {!this.state.recordMode && (sentence.recordings.length > 0) && }\r\n {this.state.recordMode && (sentence.recordings.length > 0) && }\r\n {/* { (sentence.recordings.length == 0) && } */}\r\n \r\n

\r\n {/*
{sentence.recordings.length} recordings
*/}\r\n \r\n )\r\n }\r\n });\r\n return (\r\n
\r\n {sectionIndex === 0 &&
{sentences[0]}
}\r\n {sectionIndex !== 0 &&
{sentences[0]}
}\r\n
{sentences.slice(1)}
\r\n
\r\n )\r\n })\r\n this.setState({ formattedSentences: data });\r\n }\r\n\r\n paintSentence(sentenceId) {\r\n this.setTextBackground(\"#EFFFEF\", sentenceId)\r\n }\r\n\r\n // Ensure that users sees where they themselves have already recorded\r\n paintUserPreviouslyRecordedVideos(uid) {\r\n let totalRecordings = 0;\r\n for (let i = 0; i < this.state.wikiStructure.length; i++) {\r\n for (let j = 0; j < this.state.wikiStructure[i].sentenceRecordings.length; j++) {\r\n totalRecordings += this.state.wikiStructure[i].sentenceRecordings[j].recordings.length\r\n for (let k = 0; k < this.state.wikiStructure[i].sentenceRecordings[j].recordings.length; k++) {\r\n const rec = this.state.wikiStructure[i].sentenceRecordings[j].recordings[k]\r\n if (uid === rec.user.id) {\r\n const sid = this.state.wikiStructure[i].sentenceRecordings[j].id\r\n this.paintSentence(sid)\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.setState({ totalRecordings: totalRecordings });\r\n }\r\n\r\n componentWillReceiveProps(props) {\r\n this.setState({ loggedInUser: props.loggedInUser });\r\n }\r\n\r\n // Debounce input\r\n debounceInitTime;\r\n debounceSearchText = debounce();\r\n\r\n // searchForArticles = (query) => {\r\n // if (query.length > 0) {\r\n // return this.debounceSearchText(query, this.topicOptions);\r\n // }\r\n // }\r\n\r\n handleChange = selectedOption => {\r\n this.clearPrevState();\r\n this.setState({ selectedOption });\r\n this.setState({ topicId: selectedOption.value });\r\n this.getContentTopicInfo(selectedOption.value);\r\n if (this.refs.wikiframe) {\r\n this.state.url = null;\r\n this.refs.wikiframe.srcdoc = '

Loading...

'\r\n }\r\n\r\n };\r\n // + \"*\"\r\n topicOptions = inputValue => {\r\n if (inputValue.length < 1) return [];\r\n return new Promise(resolve => {\r\n this.apiClient.getJSON(this, '/getContentTopicsList', '?search=' + inputValue).then((res) => {\r\n if (res && res.status) {\r\n var contentTopics = [];\r\n if (res.data) {\r\n res.data.forEach(contentTopic => {\r\n contentTopics.push({ value: contentTopic.articleId, label: contentTopic.articleName })\r\n });\r\n this.setState({ contentTopicsList: contentTopics.slice() });\r\n resolve(contentTopics.slice());\r\n }\r\n\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n });\r\n });\r\n }\r\n\r\n getContentTopicInfo = async (topicId) => {\r\n this.setState({ showVideoState: true, selectedTopicTextId: \"bla\", showWikiInfo: false });\r\n this.setState({ isLoading: true, splashView: false });\r\n\r\n this.apiClient.getJSON(this, '/getContentTopicSentences', '?topicId=' + topicId).then(async (res) => {\r\n if (res && res.status) {\r\n // if (res.wikiStructure && res.wikiStructure[0]) {\r\n // res.wikiStructure[0].sentenceRecordings.unshift({ });\r\n // }\r\n \r\n await this.setState({\r\n articleTitle: res.data.title,\r\n wikiContent: res.data.enhancedHTML,\r\n wikiStructure: res.data.wikiStructure,\r\n articleId: res.data.articleId, title: res.data.title,\r\n url: \"https://en.wikipedia.org/wiki/\" + res.data.title.replace(' ', '_'),\r\n contentTopicSentences: res.data.sentences,\r\n contentTopicInfo: res.data.page,\r\n showWikiInfo: false\r\n });\r\n this.structureWikiHTML();\r\n this.setState({ showVideoState: true, selectedTopicTextId: topicId });\r\n\r\n this.setState({ isLoading: false });\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n });\r\n }\r\n\r\n getSelectedTextInfo = (selectedTextId) => {\r\n this.apiClient.getJSON(this, '/getContentTopicVideos', '?topicId=' + this.state.articleId + \"&title=\" + this.state.title + \"&sentence=\" + selectedTextId.trim()).then((res) => {\r\n if (res && res.status) {\r\n this.setState({\r\n contentTopicVideos: res.data.videos,\r\n });\r\n this.setState({ showVideoState: true, selectedTopicTextId: selectedTextId });\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n //fyddid\r\n //this.setState({ showVideoState: false, selectedTopicTextId: selectedTextId });\r\n }\r\n });\r\n }\r\n\r\n clearHighlights(target) {\r\n target.previous.forEach((rhs) => {\r\n this.unSetTextBackground(rhs.sentenceId)\r\n })\r\n if (target.current) {\r\n this.unSetTextBackground(target.current.sentenceId);\r\n }\r\n }\r\n\r\n resetHighlights() {\r\n this.clearHighlights(this.readHighlightState);\r\n this.clearHighlights(this.recordHighlightState);\r\n this.readHighlightState = this.genDefaultHighlightState();\r\n this.recordHighlightState = this.genDefaultHighlightState();\r\n }\r\n\r\n clearPrevState = async () => {\r\n this.setState({\r\n overwriteVideo: null,\r\n currRecording: null,\r\n currVideo: null,\r\n sentenceVideos: null,\r\n stayOpen: false,\r\n isLoading: false,\r\n sentenceIndex: null,\r\n showVideoState: false,\r\n overwriteVideo: null,\r\n isInitialOverrideSelection: true,\r\n })\r\n }\r\n\r\n switchSelectedUser = (uid) => {\r\n this.preferredUser = uid;\r\n }\r\n\r\n updateSelectedVideoState = async (targetIndex) => {\r\n const self = this;\r\n const videos = [...self.state.sentenceVideos]\r\n videos.forEach((vid) => {\r\n vid.isSelected = false;\r\n })\r\n videos[targetIndex].isSelected = true;\r\n await this.setState({ sentenceVideos: videos })\r\n }\r\n\r\n switchVideo = async (vid, vi) => {\r\n this.updateSelectedVideoState(vi);\r\n this.switchSelectedUser(vid.user.id);\r\n const update = { ...vid }\r\n update.isSelected = false\r\n this.setState({ currRecording: update });\r\n }\r\n\r\n backToLanding = () => {\r\n this.setState({ splashView: true })\r\n }\r\n\r\n setValue = (val) => {\r\n const selectedCategories = { ...this.state.selectedCategories };\r\n if (selectedCategories[val]) {\r\n delete selectedCategories[val]\r\n } else {\r\n selectedCategories[val] = true;\r\n }\r\n this.setState({ selectedCategories: selectedCategories })\r\n }\r\n\r\n transitionNewTab = (vid) => {\r\n window.open(process.env.PUBLIC_URL + \"/wiki?targetArticle=\" + vid.articleId + \"&targetName=\" + vid.articleName, '');\r\n }\r\n\r\n categories = [\"Science\", \"Geography\", \"Mathematics\", \"Technology\", \"Medicine\"] // [\"Deaf Culture\", \"Food\", \"Geography\", \"History\", \"Politics\", \"Entertainment\", \"Technology\", \"Art\", \"Books\", \"Military\", \"Mathematics\", \"Philosophy\", \"Business\", \"Science\", \"Medicine\", \"Religion\", \"Sports\"]\r\n render() {\r\n const { stayOpen } = this.state;\r\n let self = this;\r\n document.title = 'Wiki - The ASL Data Community';\r\n // if (((self.state.wikiVideoOptions && self.state.wikiVideoOptions.length === 0) || !self.state.wikiVideoOptions) && !self.state.isLoading) {\r\n // return (\r\n //
Please sign in to access the Wiki view.
\r\n // )\r\n // }\r\n\r\n if (this.state.isLoading) {\r\n return (\r\n
\r\n \r\n Loading Article\r\n
\r\n )\r\n }\r\n\r\n // if (this.state.canViewWiki === false) {\r\n // return (\r\n //
\r\n //
Before we can get you setup for the Wiki, please read the terms of consent and accept or deny
\r\n // \r\n //
\r\n //
this.acceptConsent()} style={{marginRight: \"25px\", height: \"25px\", cursor: \"pointer\"}}>Accept
\r\n //
window.location = process.env.PUBLIC_URL +\"/info\" } style={{height: \"25px\"}}>Reject
\r\n //
\r\n //
\r\n // )\r\n // }\r\n\r\n\r\n let titles = this.state.wikiVideoOptions.map((vid) => {\r\n\r\n let isVisible = this.state.selectedCategories[vid.categories4[0]]\r\n // vid.categories4.forEach((vc) => {\r\n // if (this.state.selectedCategories[vc]) {\r\n // isVisible = true;\r\n // }\r\n // });\r\n\r\n if (isVisible || this.state.selectedCategories[\"All\"]) {\r\n return (\r\n
this.transitionNewTab(vid)}>\r\n
\r\n \r\n \r\n \r\n\r\n {vid.articleName}\r\n
\r\n
\r\n {vid.categories4[0]}\r\n
\r\n
\r\n {vid.sentenceCount + \" sentences\"}\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n );\r\n }\r\n else {\r\n return (null);\r\n }\r\n });\r\n\r\n // \r\n let categorySelections = this.categories.map((cat) => {\r\n return (\r\n \r\n {(cat === \"All\") &&
\r\n \r\n
}\r\n\r\n {(cat !== \"All\") &&
\r\n \r\n
}\r\n\r\n
\r\n )\r\n });\r\n\r\n\r\n\r\n if (this.state.splashView) {\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n

Improving access to articles in American Sign Language (ASL)

\r\n
\r\n Articles online are often only available in English. We enable ASL signers to record and share ASL versions of articles. These recordings make information accessible to people who prefer ASL, while also contributing to an English-to-ASL dataset, which can be used for research and development of technologies to better support ASL signers.\r\n
\r\n
\r\n
\r\n this.setState({ showBlocker: false })} isDisplayBlocked={this.state.showBlocker}>\r\n
\r\n
\r\n
\r\n {/*
\r\n \r\n
*/}\r\n
\r\n Featured Categories\r\n
\r\n
\r\n \r\n
\r\n {categorySelections}\r\n
\r\n
\r\n
\r\n
\r\n
Article
\r\n
\r\n
\r\n
Category
\r\n
\r\n
\r\n
# Sentences
\r\n
\r\n\r\n
\r\n
\r\n {titles}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n //
\r\n //
\r\n //
\r\n // Select from the articles below or search for one\r\n //
\r\n //
\r\n // \r\n //
\r\n //
\r\n //
\r\n // {suggestedSearches.map((val) => {\r\n // return
\r\n //
this.handleChange(val)} className=\"main-content\">{val.term}
\r\n\r\n //
\r\n // })}\r\n //
\r\n //
\r\n\r\n\r\n\r\n\r\n\r\n\r\n let input;\r\n\r\n\r\n return (\r\n \r\n\r\n {this.state.showBlocker && }\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Having trouble?\r\n \r\n
\r\n {/*
\r\n \r\n
*/}\r\n\r\n {/* {this.props.loggedInUser &&
\r\n\r\n\r\n {!this.state.recordMode &&\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n }\r\n\r\n {this.state.recordMode &&\r\n \r\n \r\n \r\n \r\n \r\n\r\n }\r\n\r\n\r\n\r\n
\r\n } */}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {!this.state.recordMode &&\r\n (\r\n \r\n \r\n {(this.state.sentenceVideos && this.state.sentenceVideos.length == 0) &&\r\n
\r\n
No Videos Available. Be the first to record one!
\r\n
\r\n }\r\n {(this.state.sentenceVideos && this.state.sentenceVideos.length > 0) &&\r\n
\r\n
\r\n
Videos
\r\n
\r\n
\r\n
\r\n {this.state.sentenceVideos.map((vid, vi) => {\r\n\r\n return (\r\n
{\r\n this.switchVideo(vid, vi);\r\n }} className=\"video-select-item video-listing-row\">\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
{vid.user && vid.user.userName}
\r\n
{Moment(vid.date).format('MM-DD-YYYY')}
\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n }\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {this.state.articleTitle}\r\n \r\n {/* {(this.state.totalRecordings > 0) &&\r\n \r\n \r\n {this.state.totalRecordings} Recordings\r\n \r\n }\r\n {(this.state.totalRecordings == 0) &&\r\n \r\n \r\n Be the first to record\r\n \r\n } */}\r\n
\r\n\r\n {/* {!this.state.toggleWiki &&\r\n
this.toggleWiki()}>\r\n \r\n \r\n \r\n Show full wiki\r\n
\r\n } */}\r\n
\r\n
\r\n Having problems with this content?\r\n Please let us know\r\n
\r\n
\r\n {this.state.url && \"Article \"}\r\n {this.state.url && {this.state.url}}\r\n
\r\n
\r\n All text content is multi-licensed under the\r\n Creative Commons Attribution-ShareAlike 3.0 License (CC-BY-SA) and the\r\n GNU Free Documentation License (GFDL).\r\n
\r\n
\r\n
\r\n {this.state.formattedSentences}\r\n
\r\n {this.state.toggleWiki &&\r\n
\r\n
this.toggleWiki()}>\r\n \r\n \r\n \r\n Hide Wiki\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst Wikipedia = connect(\r\n\r\n mapDispatchToProps\r\n)(WikiContainer);\r\n\r\n\r\nexport default Wikipedia\r\n","import React, { Component } from \"react\";\r\nimport { loaderStyle } from '../../styles/modalStyles';\r\nimport Loader from 'react-loader-spinner';\r\nimport \"../../styles/dashboard.css\";\r\nimport { debounce } from \"../../utils/utilMethods\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport RemoveCircleRoundedIcon from '@material-ui/icons/RemoveCircleRounded';\r\nimport HighlightOffRoundedIcon from '@material-ui/icons/HighlightOffRounded';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport SelectSearch from 'react-select-search';\r\nimport Pagination from \"react-js-pagination\";\r\n\r\nclass AdminDashboardContainer extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n isLoading: true,\r\n queryString: \"\",\r\n selectedGroup: \"none\",\r\n isAdminMode: true,\r\n accountType: \"PaidWiki\",\r\n activePage: 1,\r\n valueTab: 0,\r\n totalItemsCount: 12\r\n }\r\n }\r\n\r\n userAccountTypes = [\r\n { name: \"PaidDictionary\", value: \"PaidDictionary\" },\r\n { name: \"PaidWiki\", value: \"PaidWiki\" },\r\n { name: \"UnpaidDictionary\", value: \"UnpaidDictionary\" },\r\n { name: \"UnpaidWiki\", value: \"UnpaidWiki\" }\r\n\r\n ]\r\n\r\n a11yProps = (index) => {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n }\r\n\r\n focusVideo = (video) => {\r\n //\r\n this.setState({ selectedVideo: video });\r\n }\r\n\r\n focusModelVideo = (video) => {\r\n this.setState({ selectedModelVideo: video });\r\n }\r\n\r\n changeStyle = (elem) => {\r\n elem.target.parentNode.style.backgroundColor = \"#cccccc\";\r\n if (this.currentElement) {\r\n this.currentElement.style.backgroundColor = \"#fff\";\r\n }\r\n this.currentElement = elem.target.parentNode\r\n }\r\n\r\n handlePageChange(pageNumber) {\r\n this.setState({activePage: pageNumber});\r\n this.loadFlaggedVideos();\r\n }\r\n\r\n renderModelVidUI = (vid) => (
{\r\n this.focusModelVideo(vid);\r\n this.changeStyle(elem);\r\n }}>\r\n
\r\n {vid.sentence ? vid.sentence.substring(0, 10) : vid.name}\r\n
\r\n
\r\n {vid.date.substring(0, 10)}\r\n
\r\n
\r\n {vid.id}\r\n
\r\n
)\r\n\r\n renderVidUI = (vid) => (
{\r\n this.focusVideo(vid);\r\n this.changeStyle(elem);\r\n }\r\n }>\r\n
\r\n {vid.sentence ? vid.sentence.substring(0, 10) : vid.name}\r\n
\r\n
\r\n {vid.uName}\r\n
\r\n
\r\n {vid.date.substring(0, 10)}\r\n
\r\n
\r\n {vid.id}\r\n
\r\n
)\r\n\r\n processDefaultDisplayList = () => {\r\n\r\n const data = this.state.queryData;\r\n\r\n if (data.userVideos) {\r\n const uvids = data.userVideos.map(vid => {\r\n return (\r\n this.renderVidUI(vid)\r\n )\r\n });\r\n this.setState({ uvids: uvids });\r\n }\r\n\r\n }\r\n\r\n handleAccountInputChange = async (event) => {\r\n await this.setState({\r\n accountType: event\r\n });\r\n await this.setState({ selectedVideo: undefined });\r\n this.updateQueryResults(\"default\")\r\n this.loadFlaggedVideos()\r\n }\r\n\r\n componentDidMount = () => {\r\n this.updateQueryResults(\"default\")\r\n this.loadFlaggedVideos(true)\r\n }\r\n\r\n loadFlaggedVideos = (initialize) => {\r\n if (initialize || this.state.valueTab == 0) {\r\n this.apiClient.postJSON(this, \"/admin-dashboard/query-admin-pending\", {\r\n activePage: this.state.activePage\r\n }).then(async (res) => {\r\n if (res && res.status) {\r\n await this.setState({ pendingVideos: res.data, pendingVideosCount: res.count });\r\n this.updateTotalItemsCount(); \r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n \r\n if (initialize || this.state.valueTab == 1) {\r\n this.apiClient.postJSON(this, \"/admin-dashboard/query-admin-approved\", {\r\n activePage: this.state.activePage\r\n }).then(async (res) => {\r\n if (res && res.status) {\r\n await this.setState({ approvedVideos: res.data, approvedVideosCount: res.count });\r\n this.updateTotalItemsCount(); \r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n \r\n if (initialize || this.state.valueTab == 2) {\r\n this.apiClient.postJSON(this, \"/admin-dashboard/query-admin-flagged\", {\r\n activePage: this.state.activePage\r\n }).then(async (res) => {\r\n if (res && res.status) {\r\n await this.setState({ flaggedVideos: res.data, flaggedVideosCount: res.count });\r\n this.updateTotalItemsCount(); \r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n performQuery = (query) => {\r\n this.setState({ queryString: query, isLoading: true });\r\n this.apiClient.postJSON(this, \"/admin-dashboard/query\", {\r\n query: query, dateStart: this.state.startDate, dateEnd: this.state.endDate, accountType: this.state.accountType, activePage: this.state.activePage\r\n }).then(async (res) => {\r\n //\r\n if (res && res.status) {\r\n await this.setState({ queryData: res.data, isLoading: false });\r\n const displayList = this.processListGroupByOption();\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n\r\n performModelQuery = (query) => {\r\n this.apiClient.postJSON(this, \"/admin-dashboard/query/model\", {\r\n query: query, dateStart: this.state.startDate, dateEnd: this.state.endDate\r\n }).then(async (res) => {\r\n if (res && res.status) {\r\n const displayList = this.processModelList(res.data);\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n\r\n updateQueryResults = (query) => {\r\n this.debounceSearchText(query, this.performQuery);\r\n }\r\n\r\n updateModelQueryResults = (query) => {\r\n this.debounceSearchText(query, this.performModelQuery);\r\n }\r\n\r\n // Debounce input\r\n debounceInitTime;\r\n debounceSearchText = debounce();\r\n\r\n handleDateStart = async (date) => {\r\n await this.setState({ startDate: date });\r\n this.performQuery(this.state.queryString)\r\n }\r\n\r\n handleDateEnd = async (date) => {\r\n await this.setState({ endDate: date });\r\n this.performQuery(this.state.queryString)\r\n }\r\n\r\n flipByUserObj = async (key, state) => {\r\n const obj = { ...this.state.byUserObj };\r\n this.state.byUserObj[key][1] = state;\r\n await this.setState({ byUserObj: obj });\r\n this.renderUserUI();\r\n }\r\n\r\n flipBySignObj = async (key, state) => {\r\n const obj = { ...this.state.bySignObj };\r\n this.state.bySignObj[key][1] = state;\r\n await this.setState({ bySignObj: obj });\r\n this.renderSignUI();\r\n }\r\n\r\n\r\n\r\n\r\n renderSignUI = async () => {\r\n const self = this.state;\r\n let signsList = Object.keys(this.state.bySignObj);\r\n signsList.sort((a, b) => {\r\n if (a.toLowerCase() < b.toLowerCase()) { return -1; }\r\n if (a.toLowerCase() > b.toLowerCase()) { return 1; }\r\n return 0;\r\n });\r\n const bySignUI = signsList.map((key) => {\r\n const components = this.state.bySignObj[key][0].map((vid) => {\r\n return (
{\r\n this.focusVideo(vid);\r\n this.changeStyle(elem);\r\n }\r\n }>\r\n
\r\n {vid.sentence ? vid.sentence.substring(0, 10) : vid.name}\r\n
\r\n
\r\n {vid.uName}\r\n
\r\n
\r\n {vid.date.substring(0, 10)}\r\n
\r\n
\r\n {vid.id}\r\n
\r\n
)\r\n });\r\n return (\r\n
\r\n
this.loadList(this.state.bySignObj[key][0])}>\r\n {key.toUpperCase()}\r\n {!this.state.bySignObj[key][1] && this.flipBySignObj(key, true)} className=\"group-by-icon\" />}\r\n {this.state.bySignObj[key][1] && this.flipBySignObj(key, false)} className=\"group-by-icon\" />}\r\n
\r\n {this.state.bySignObj[key][1] &&\r\n components\r\n }\r\n
\r\n )\r\n });\r\n this.setState({ uvids: bySignUI });\r\n }\r\n\r\n loadList = (videoArr) => {\r\n const videoListUI = videoArr.map((vid) => {\r\n //if (this.bigArr.indexOf(vid.convertedUrl) === -1) {\r\n return (\r\n //
\r\n \r\n\r\n //
\r\n )\r\n // }\r\n // else {\r\n // disambiguateSASURL(vid.convertedUrl,process.env)\r\n // return (null)\r\n // }\r\n });\r\n this.setState({ videoListing: videoListUI });\r\n }\r\n\r\n renderUserUI = async () => {\r\n const self = this.state;\r\n let userList = Object.keys(this.state.byUserObj);\r\n userList.sort((a, b) => {\r\n if (a.toLowerCase() < b.toLowerCase()) { return -1; }\r\n if (a.toLowerCase() > b.toLowerCase()) { return 1; }\r\n return 0;\r\n });\r\n const byUserUI = userList.map((key) => {\r\n const components = this.state.byUserObj[key][0].map((vid) => {\r\n return (
{\r\n this.focusVideo(vid);\r\n this.changeStyle(elem);\r\n }\r\n }>\r\n
\r\n {vid.sentence ? vid.sentence.substring(0, 10) : vid.name}\r\n
\r\n
\r\n {vid.uName}\r\n
\r\n
\r\n {vid.date.substring(0, 10)}\r\n
\r\n
\r\n {vid.id}\r\n
\r\n
)\r\n })\r\n return (\r\n
\r\n
this.loadList(this.state.byUserObj[key][0])}>\r\n {key.toUpperCase()}\r\n {!this.state.byUserObj[key][1] && this.flipByUserObj(key, true)} className=\"group-by-icon\" />}\r\n {this.state.byUserObj[key][1] && this.flipByUserObj(key, false)} className=\"group-by-icon\" />}\r\n
\r\n {this.state.byUserObj[key][1] &&\r\n components\r\n }\r\n
\r\n )\r\n });\r\n this.setState({ uvids: byUserUI });\r\n }\r\n\r\n processModelDisplayList = async (data) => {\r\n if (data.modelVideos) {\r\n const mvids = data.modelVideos.map(vid => {\r\n return (\r\n this.renderModelVidUI(vid)\r\n )\r\n });\r\n this.setState({ mvids: mvids });\r\n }\r\n }\r\n\r\n\r\n processSignDisplayList = async () => {\r\n const data = this.state.queryData;\r\n\r\n const bySignObj = {}\r\n \r\n if (data.userVideos) {\r\n data.userVideos.forEach(vid => {\r\n \r\n if (!bySignObj[vid.name]) {\r\n bySignObj[vid.name] = [[vid], false]\r\n }\r\n else {\r\n bySignObj[vid.name][0].push(vid)\r\n }\r\n });\r\n }\r\n\r\n await this.setState({ bySignObj: bySignObj });\r\n\r\n this.renderSignUI(bySignObj);\r\n\r\n }\r\n\r\n\r\n processUserDisplayList = async () => {\r\n const data = this.state.queryData;\r\n const byUserObj = {\r\n\r\n }\r\n\r\n if (data.userVideos) {\r\n data.userVideos.forEach(vid => {\r\n if (!byUserObj[vid.uName]) {\r\n byUserObj[vid.uName] = [[vid], false]\r\n }\r\n else {\r\n byUserObj[vid.uName][0].push(vid)\r\n }\r\n });\r\n }\r\n\r\n await this.setState({ byUserObj: byUserObj });\r\n\r\n this.renderUserUI(byUserObj);\r\n\r\n }\r\n\r\n processModelList = (data) => {\r\n this.processModelDisplayList(data);\r\n }\r\n\r\n currentElement = null;\r\n\r\n\r\n processListGroupByOption = () => {\r\n switch (this.state.selectedGroup) {\r\n case \"user\":\r\n this.processUserDisplayList();\r\n break;\r\n case \"sign\":\r\n this.processSignDisplayList();\r\n break;\r\n default:\r\n this.processDefaultDisplayList();\r\n break;\r\n }\r\n }\r\n\r\n selectGroupByOption = async (type) => {\r\n await this.setState({ selectedGroup: type })\r\n this.processListGroupByOption();\r\n }\r\n\r\n closeModelVideo = () => {\r\n this.setState({ selectedModelVideo: null })\r\n }\r\n\r\n toggleAdminMode = async () => {\r\n await this.setState({ isAdminMode: !this.state.isAdminMode })\r\n }\r\n\r\n approveAllVideos = async () => {\r\n this.confirmVideo(true, this.state.pendingVideos.map((vid) => vid._id))\r\n }\r\n\r\n confirmVideo = (isApproved, vids) => {\r\n this.apiClient.postJSON(this, \"/admin-dashboard/approveOrRejectVideo\", {\r\n ids: vids.map((vid) => vid.toString()), isApproved: isApproved\r\n }).then(async (res) => {\r\n if (res && res.status) {\r\n let modder = [...this.state.pendingVideos];\r\n if (this.state.valueTab == 1) {\r\n modder = [...this.state.approvedVideos]\r\n }\r\n else if (this.state.valueTab == 2) {\r\n modder = [...this.state.flaggedVideos]\r\n }\r\n\r\n for (let i = 0; i < modder.length; i++) {\r\n modder[i].hasPlayed = true;\r\n }\r\n modder = modder.filter((v) => {\r\n return vids.indexOf(v._id) === -1;\r\n });\r\n \r\n if (this.state.valueTab == 0) {\r\n await this.setState({ pendingVideos: modder });\r\n }\r\n else if (this.state.valueTab == 1) {\r\n await this.setState({ approvedVideos: modder });\r\n }\r\n else if (this.state.valueTab == 2) {\r\n await this.setState({ flaggedVideos: modder });\r\n }\r\n // refresh the data\r\n this.loadFlaggedVideos();\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n })\r\n }\r\n\r\n updateTotalItemsCount = async () => {\r\n let totalItemsCount = 12;\r\n if (this.state.valueTab == 0) {\r\n totalItemsCount = this.state.pendingVideosCount;\r\n }\r\n else if (this.state.valueTab == 1) {\r\n totalItemsCount = this.state.approvedVideosCount;\r\n }\r\n else if (this.state.valueTab == 2) {\r\n totalItemsCount = this.state.flaggedVideosCount;\r\n }\r\n await this.setState({ totalItemsCount: totalItemsCount })\r\n }\r\n\r\n handleChange = async (event, newValue) => {\r\n await this.setState({ valueTab: newValue, activePage: 1 })\r\n await this.updateTotalItemsCount();\r\n this.loadFlaggedVideos();\r\n }\r\n\r\n\r\n render() {\r\n\r\n document.title = 'Admin Dashboard';\r\n\r\n if (!this.state.queryData && this.state.isAdminMode) {\r\n return (\r\n
\r\n
Loading Admin Dashboard in a few moments...
\r\n
Patientez, s'il vous plaît
\r\n \r\n
\r\n )\r\n }\r\n\r\n let mapPendingVideos = null;\r\n if (this.state.pendingVideos) {\r\n mapPendingVideos = this.state.pendingVideos.map((vid) => {\r\n if (vid.isHandled) {\r\n return null;\r\n }\r\n else {\r\n return (\r\n \r\n
\r\n {vid.hasPlayed &&\r\n \r\n }\r\n {!vid.hasPlayed &&\r\n \r\n }\r\n
\r\n this.confirmVideo(true, [vid._id])} style={{ marginLeft: \"10px\", marginRight: \"30px\" }}>Approve Video\r\n this.confirmVideo(false, [vid._id])}>Reject Video\r\n
\r\n\r\n
\r\n\r\n
\r\n )\r\n }\r\n })\r\n }\r\n \r\n let mapApprovedVideos = null;\r\n if (this.state.approvedVideos) {\r\n mapApprovedVideos = this.state.approvedVideos.map((vid) => {\r\n if (vid.isHandled) {\r\n return null;\r\n }\r\n else {\r\n return (\r\n \r\n
\r\n {vid.hasPlayed &&\r\n \r\n }\r\n {!vid.hasPlayed &&\r\n \r\n }\r\n
\r\n this.confirmVideo(false, [vid._id])} style={{ marginLeft: \"75px\" }}>Reject Video\r\n
\r\n\r\n
\r\n\r\n
\r\n )\r\n }\r\n })\r\n }\r\n\r\n let mapFlaggedVideos = null;\r\n if (this.state.flaggedVideos) {\r\n mapFlaggedVideos = this.state.flaggedVideos.map((vid) => {\r\n if (vid.isHandled) {\r\n return null;\r\n }\r\n else {\r\n return (\r\n \r\n
\r\n {vid.hasPlayed &&\r\n \r\n }\r\n {!vid.hasPlayed &&\r\n \r\n }\r\n
\r\n this.confirmVideo(true, [vid._id])} style={{ marginLeft: \"75px\" }}>Approve Video\r\n
\r\n\r\n
\r\n\r\n
\r\n )\r\n }\r\n })\r\n }\r\n\r\n return (\r\n\r\n \r\n {!this.state.isAdminMode &&
\r\n Toggle Video View Mode\r\n
\r\n }\r\n {!this.state.isAdminMode && this.state.valueTab == 0 &&
\r\n Approve All\r\n
\r\n }\r\n {this.state.isAdminMode &&
\r\n
\r\n Toggle Approval Mode\r\n
Toggle the button above to switch between video view and video approval modes
\r\n
\r\n }\r\n\r\n {(this.state.queryData && !this.state.isAdminMode) &&\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {mapPendingVideos}\r\n
\r\n
\r\n \r\n
\r\n {mapApprovedVideos}\r\n
\r\n
\r\n \r\n
\r\n {mapFlaggedVideos}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n\r\n {(this.state.queryData && this.state.isAdminMode) &&\r\n
\r\n \r\n \r\n
\r\n
ASL Admin Dashboard
\r\n
\r\n\r\n
\r\n
\r\n this.updateQueryResults($event.target.value)}\r\n />\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {this.state.isLoading &&\r\n
\r\n \r\n Loading Admin Panel\r\n
\r\n }\r\n {!this.state.isLoading &&
\r\n
\r\n
\r\n
Group By :
\r\n \r\n \r\n \r\n {/* \r\n */}\r\n
\r\n
\r\n
User Videos
\r\n
\r\n {true &&\r\n
Sign
\r\n }\r\n {false &&\r\n
Sentence
\r\n }\r\n
Created By
\r\n
Date
\r\n
ID
\r\n
\r\n
\r\n {this.state.uvids}\r\n
\r\n
\r\n
\r\n
\r\n this.updateModelQueryResults($event.target.value)}\r\n />\r\n Model Videos\r\n
\r\n {this.state.mvids}\r\n
\r\n
\r\n
\r\n
\r\n {this.state.selectedVideo &&\r\n
\r\n {this.state.selectedVideo &&\r\n
\r\n
USER
\r\n \r\n
\r\n }\r\n {(this.state.selectedVideo.modelVideo && this.state.selectedVideo.modelVideo.convertedUrl) &&\r\n
this.closeModelVideo()}>\r\n \r\n
\r\n }\r\n {this.state.selectedVideo.modelVideo &&\r\n
\r\n
MODEL
\r\n \r\n
\r\n }\r\n
\r\n }\r\n {this.state.selectedVideo &&\r\n
\r\n
\r\n
Word : {this.state.selectedVideo.name ? this.state.selectedVideo.name : this.state.selectedVideo.sentence}
\r\n
User : {this.state.selectedVideo.uName}
\r\n
\r\n
\r\n
ID : {this.state.selectedVideo.id}
\r\n
\r\n
\r\n }\r\n
\r\n\r\n\r\n {/*
\r\n {this.state.videoListing}\r\n
*/}\r\n
\r\n
}\r\n
\r\n }\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst AdminDashboard = connect(\r\n\r\n mapDispatchToProps\r\n)(AdminDashboardContainer);\r\n\r\nexport default AdminDashboard\r\n","import React, { Component } from \"react\";\r\nimport { loaderStyle } from '../../styles/modalStyles';\r\nimport Loader from 'react-loader-spinner';\r\nimport \"../../styles/dashboard.css\";\r\nimport { debounce } from \"../../utils/utilMethods\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport RemoveCircleRoundedIcon from '@material-ui/icons/RemoveCircleRounded';\r\nimport HighlightOffRoundedIcon from '@material-ui/icons/HighlightOffRounded';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\nimport SelectSearch from 'react-select-search';\r\n\r\nclass StatsDashboardContainer extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n isLoading: true,\r\n queryString: \"\",\r\n selectedGroup: \"none\",\r\n isAdminMode: true,\r\n accountType: \"UnpaidWiki\",\r\n sOptions: [],\r\n arOptions: [],\r\n searchPlaceholder: \"Search for a user\",\r\n searchWikiPlaceholder: \"Search for an article\",\r\n searchVisible: false,\r\n searchWikiVisible: false,\r\n searchText: \"\",\r\n searchTextWiki: \"\",\r\n showUserLoader: false\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadTargetUserStudy(this.state.accountType);\r\n this.pullUserStatsSearchOptions();\r\n this.pullWikiStatsSearchOptions();\r\n }\r\n\r\n userAccountTypes = [\r\n { name: \"PaidDictionary\", value: \"PaidDictionary\" },\r\n { name: \"PaidWiki\", value: \"PaidWiki\" },\r\n { name: \"UnpaidDictionary\", value: \"UnpaidDictionary\" },\r\n { name: \"UnpaidWiki\", value: \"UnpaidWiki\" }\r\n\r\n ]\r\n\r\n handleAccountInputChange = async (event) => {\r\n await this.setState({\r\n accountType: event,\r\n targetStructuredUserData: undefined,\r\n targetStructuredGeneralData: undefined,\r\n targetStructuredWikiData: undefined,\r\n searchText: undefined,\r\n searchTextWiki: undefined,\r\n arOptions: undefined,\r\n sOptions: undefined,\r\n userArticleDisplay: undefined,\r\n wikiArticlesDisplay: undefined\r\n });\r\n this.loadTargetUserStudy(event);\r\n this.pullUserStatsSearchOptions();\r\n this.pullWikiStatsSearchOptions();\r\n }\r\n\r\n handleSearchInputChange = async (selection) => {\r\n if (this.state.dropdownSelectOptions) {\r\n await this.setState({\r\n userArticleDisplay: undefined, showUserLoader: true\r\n })\r\n this.loadTargetUserStudyUser(selection)\r\n\r\n }\r\n }\r\n\r\n handleSearchInputChangeWiki = async (selection) => {\r\n if (this.state.dropdownSelectOptionsWiki) {\r\n await this.setState({\r\n wikiArticlesDisplay: undefined\r\n })\r\n this.loadTargetUserStudyWiki(selection)\r\n\r\n }\r\n }\r\n\r\n\r\n loadTargetUserStudyWiki = (targetArticle) => {\r\n this.setState({ searchTextWiki: targetArticle });\r\n this.apiClient.postJSON(this, \"/stats-dashboard/query-wiki\", {\r\n query: targetArticle, userType: this.state.accountType\r\n }).then(async (res) => {\r\n \r\n if (res && res.status) {\r\n\r\n await this.setState({\r\n targetStructuredWikiData: res.data.targetStructuredWikiData\r\n });\r\n let wikiArticlesDisplay = []\r\n if ((res.data.type.toLowerCase()).includes(\"wiki\")) {\r\n wikiArticlesDisplay = res.data.targetStructuredWikiData.map((article, i) => {\r\n return this.genArticleDisplay(article, i)\r\n });\r\n }\r\n\r\n await this.setState({\r\n wikiArticlesDisplay\r\n });\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n\r\n\r\n loadTargetUserStudyUser = (targetUser) => {\r\n this.setState({ searchText: targetUser });\r\n this.apiClient.postJSON(this, \"/stats-dashboard/query-user\", {\r\n query: targetUser, userType: this.state.accountType\r\n }).then(async (res) => {\r\n \r\n if (res && res.status) {\r\n await this.setState({\r\n targetStructuredUserData: res.data.targetStructuredUserData\r\n });\r\n let userArticleDisplay = []\r\n if ((res.data.type.toLowerCase()).includes(\"wiki\")) {\r\n userArticleDisplay = res.data.targetStructuredUserData.map((article, i) => {\r\n return this.genArticleDisplay(article, i)\r\n });\r\n }\r\n\r\n await this.setState({\r\n userArticleDisplay, showUserLoader: false\r\n });\r\n\r\n\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n\r\n\r\n loadTargetUserStudy = (targetUserStudy) => {\r\n this.setState({ queryString: targetUserStudy, isLoading: true });\r\n this.apiClient.postJSON(this, \"/stats-dashboard/query\", {\r\n query: targetUserStudy\r\n }).then(async (res) => {\r\n \r\n if (res && res.status) {\r\n if (res.data.generalStats.length > 0) {\r\n await this.setState({\r\n targetStructuredGeneralData: res.data.targetStructuredGeneralData,\r\n generalStats: res.data.generalStats[0],\r\n isLoading: false\r\n });\r\n }\r\n else {\r\n await this.setState({\r\n targetStructuredGeneralData: res.data.targetStructuredGeneralData,\r\n generalStats: [],\r\n isLoading: false\r\n });\r\n }\r\n\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n });\r\n }\r\n\r\n pullUserStatsSearchOptions = async () => {\r\n\r\n await this.setState({ searchText: \"\" })\r\n this.apiClient.getJSON(this, \"/stats-dashboard/load-all-target-users\", \"?userType=\" + this.state.accountType)\r\n .then(res => {\r\n if (res && res.status) {\r\n // Populate video big list\r\n this.generateSearchOptions(res.data);\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n })\r\n }\r\n\r\n pullWikiStatsSearchOptions = async () => {\r\n\r\n await this.setState({ searchTextWiki: \"\" })\r\n this.apiClient.getJSON(this, \"/stats-dashboard/load-all-target-articles\", \"?userType=\" + this.state.accountType)\r\n .then(res => {\r\n if (res && res.status) {\r\n // Populate video big list\r\n this.generateSearchOptionsWiki(res.data);\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n })\r\n }\r\n\r\n genArticleDisplay = (article, i) => {\r\n \r\n return (\r\n
\r\n
\r\n
Article Name :
\r\n
{article[\"articleName\"]}
\r\n
\r\n
\r\n
Total recordings count :
\r\n
{article[\"numRecordings\"]}
\r\n
\r\n
\r\n
Number of sentences in article :
\r\n
{article[\"numSentences\"]}
\r\n
\r\n {/*
\r\n
Number of paragraphs :
\r\n
{article[\"numParagraphs\"]}
\r\n
\r\n
\r\n
Percent of sentences with at least one recording :
\r\n
{article[\"atLeastOneSentenceCoverage\"]}
\r\n
\r\n
\r\n
Average recordings per sentence
\r\n
{article[\"avgVideosPerSentence\"]}
\r\n
\r\n
\r\n
Average Video Duration :
\r\n
{article[\"avgVideoDuration\"]}
\r\n
*/}\r\n
\r\n )\r\n }\r\n\r\n setDropdownState = (data) => {\r\n this.setState({ dropdownSelectOptions: data, searchVisible: true })\r\n }\r\n\r\n setDropdownStateWiki = (data) => {\r\n\r\n this.setState({ dropdownSelectOptionsWiki: data, searchWikiVisible: true })\r\n }\r\n\r\n generateSearchOptions = (data) => {\r\n const uniqueList = {};\r\n\r\n data.forEach((datum) => {\r\n\r\n const name = datum.userName;\r\n if (!uniqueList[name]) {\r\n const searchTerm = {\r\n name: name.toLowerCase(),\r\n value: name\r\n }\r\n uniqueList[name] = searchTerm;\r\n }\r\n });\r\n const resArr = Object.values(uniqueList);\r\n this.setDropdownState(resArr);\r\n }\r\n\r\n generateSearchOptionsWiki = (data) => {\r\n\r\n const uniqueList = {};\r\n\r\n data.forEach((datum) => {\r\n const name = datum.articleName;\r\n if (!uniqueList[name]) {\r\n const searchTerm = {\r\n name: name.toLowerCase(),\r\n value: name\r\n }\r\n uniqueList[name] = searchTerm;\r\n }\r\n });\r\n const resArr = Object.values(uniqueList);\r\n this.setDropdownStateWiki(resArr);\r\n }\r\n\r\n getOptionsWiki = async (query) => {\r\n\r\n try {\r\n let loadOptions = null;\r\n\r\n const options = await new Promise((resolve, reject) => {\r\n loadOptions = setInterval(async () => {\r\n try {\r\n if (this.state.dropdownSelectOptionsWiki.length > 0) {\r\n var self = this;\r\n\r\n const filtered = self.state.dropdownSelectOptionsWiki.filter((select) => {\r\n\r\n const result = (select.name.includes(query));\r\n return result;\r\n });\r\n resolve(filtered)\r\n }\r\n }\r\n catch (e) {\r\n resolve([])\r\n }\r\n }, 200)\r\n });\r\n\r\n clearInterval(loadOptions);\r\n this.setState({ arOptions: options })\r\n return options;\r\n }\r\n catch (e) {\r\n return []\r\n }\r\n }\r\n\r\n\r\n\r\n getOptions = async (query) => {\r\n\r\n try {\r\n let loadOptions = null;\r\n\r\n const options = await new Promise((resolve, reject) => {\r\n loadOptions = setInterval(async () => {\r\n try {\r\n if (this.state.dropdownSelectOptions.length > 0) {\r\n var self = this;\r\n\r\n const filtered = self.state.dropdownSelectOptions.filter((select) => {\r\n\r\n const result = (select.name.includes(query));\r\n return result;\r\n });\r\n resolve(filtered)\r\n }\r\n }\r\n catch (e) {\r\n resolve([])\r\n }\r\n }, 200)\r\n });\r\n\r\n clearInterval(loadOptions);\r\n this.setState({ sOptions: options })\r\n return options;\r\n }\r\n catch (e) {\r\n return []\r\n }\r\n }\r\n\r\n render() {\r\n\r\n document.title = 'Admin Dashboard';\r\n\r\n if (this.state.isLoading || !this.state.generalStats) {\r\n return (\r\n
\r\n
Loading Admin Dashboard in a few moments...
\r\n
Patientez, s'il vous plaît
\r\n \r\n
\r\n )\r\n }\r\n let seedCoverage = []\r\n if (this.state.generalStats[\"multiSeedCoverage\"]) {\r\n seedCoverage = Object.keys(this.state.generalStats[\"multiSeedCoverage\"]).map((covg) => {\r\n return (\r\n
\r\n Number of seeds at count {covg} :\r\n {this.state.generalStats[\"multiSeedCoverage\"][covg]}\r\n
\r\n )\r\n });\r\n }\r\n\r\n if (this.state.generalStats[\"multiSeedCoverage\"]) {\r\n seedCoverage = Object.keys(this.state.generalStats[\"multiSeedCoverage\"]).map((covg) => {\r\n return (\r\n
\r\n Number of seeds at count {covg} :\r\n {this.state.generalStats[\"multiSeedCoverage\"][covg]}\r\n
\r\n )\r\n });\r\n }\r\n\r\n let generalUserList = []\r\n\r\n if (this.state.generalStats && this.state.generalStats[\"usersByCompletionRate\"]) {\r\n\r\n generalUserList = this.state.generalStats[\"usersByCompletionRate\"].map((user) => {\r\n\r\n if (user.hasOwnProperty(\"numberOfVideos\")) {\r\n return (\r\n
\r\n
\r\n Name:\r\n {user.userName}\r\n Email :\r\n {user.userEmail}\r\n # Recordings:\r\n {user[\"numberOfVideos\"]}\r\n
\r\n
\r\n )\r\n }\r\n else {\r\n let userArticles = []\r\n if (user[\"sentencesOfArticles\"]) {\r\n userArticles = Object.keys(user[\"sentencesOfArticles\"]).map((soa_k) => {\r\n let soa = user[\"sentencesOfArticles\"][soa_k]\r\n return (\r\n \r\n
{soa_k} 
\r\n
{soa[\"userRecordingsCount\"]} of {soa[\"sentenceCount\"]}
\r\n
\r\n )\r\n })\r\n }\r\n return (\r\n
\r\n
\r\n Name:\r\n {user.userName}\r\n Email :\r\n {user.userEmail}\r\n # Recordings:\r\n {user.numberOfCompletedWikiSentences}\r\n # Articles :\r\n {user.numberOfClaimedArticles}\r\n
\r\n
\r\n User Articles:\r\n {userArticles}\r\n
\r\n
\r\n )\r\n }\r\n });\r\n \r\n }\r\n\r\n\r\n let generalArticleList = []\r\n\r\n if (this.state.generalStats && this.state.generalStats[\"articlesByCompletionRate\"]) {\r\n\r\n generalArticleList = this.state.generalStats[\"articlesByCompletionRate\"].map((article) => {\r\n\r\n return (\r\n
\r\n Name:\r\n {article.articleName}\r\n # Sentences :\r\n {article.numberOfSentences}\r\n # Recordings:\r\n {article.recordingsCount}\r\n
\r\n )\r\n });\r\n }\r\n\r\n let generalStats = (type) => {\r\n let self = this;\r\n \r\n if (type === \"wiki\") {\r\n return (\r\n \r\n\r\n
\r\n
User Study :
\r\n
{this.state.generalStats.userStudyType}
\r\n
\r\n
\r\n
Number of articles opened in this user study :
\r\n
{this.state.generalStats.numberOfArticlesOpened}
\r\n
\r\n
\r\n
Average article completion percentage:
\r\n
{this.state.generalStats.percentageArticleCompletion}
\r\n
\r\n
\r\n
Number of sentences belongging to articles opened:
\r\n
{this.state.generalStats.numberOfSentencesBelongingToArticlesStarted}
\r\n
\r\n
\r\n
Number of sentences actually completed:
\r\n
{this.state.generalStats.numberOfSentencesCompleted}
\r\n
\r\n
\r\n
Articles List:
\r\n
{generalArticleList}
\r\n
\r\n
\r\n
Users List:
\r\n
{generalUserList}
\r\n
\r\n\r\n
\r\n\r\n )\r\n }\r\n else {\r\n return (\r\n \r\n\r\n
\r\n
User Study :
\r\n
{this.state.generalStats.userStudyType}
\r\n
\r\n
\r\n
Users List:
\r\n
{generalUserList}
\r\n
\r\n\r\n
\r\n\r\n )\r\n }\r\n }\r\n\r\n\r\n return (\r\n\r\n
\r\n\r\n {(!this.state.isLoading && this.state.targetStructuredGeneralData && !(this.state.accountType.toLowerCase()).includes(\"wiki\")) &&\r\n
\r\n
\r\n
Stats Dashboard
\r\n \r\n \r\n\r\n
\r\n
\r\n
User Statistics
\r\n \r\n \r\n {this.state.showUserLoader &&\r\n
\r\n
User Data Loading
\r\n \r\n
\r\n }\r\n\r\n\r\n {this.state.targetStructuredUserData &&\r\n
\r\n
General Statistics For User : {this.state.searchText}
\r\n
\r\n
Number of videos submitted by user :
\r\n
{this.state.targetStructuredUserData[\"totalVideoCount\"]}
\r\n
\r\n
\r\n
Number of seeds covered by user submissions :
\r\n
{this.state.targetStructuredUserData[\"seedCoverage\"]}
\r\n
\r\n
\r\n
First Submission Date:
\r\n
{this.state.targetStructuredUserData[\"firstSubmission\"]}
\r\n
\r\n
\r\n
Last Submission Date:
\r\n
{this.state.targetStructuredUserData[\"lastSubmission\"]}
\r\n
\r\n
\r\n }\r\n
\r\n {this.state.targetStructuredGeneralData &&\r\n \r\n
General Statistics
\r\n
\r\n
Total video count :
\r\n
{this.state.generalStats[\"totalVideoCount\"]}
\r\n
\r\n
\r\n
Number of seeds for which videos exist :
\r\n
{this.state.generalStats[\"seedCoverage\"]}
\r\n
\r\n
\r\n
Number of seeds per instance :
\r\n
{seedCoverage}
\r\n
\r\n
\r\n
Average # Videos Per Seed :
\r\n
{(this.state.generalStats[\"averageVideosPerSeed\"])}
\r\n
\r\n
\r\n
First Submission Date:
\r\n
{this.state.generalStats[\"firstSubmission\"]}
\r\n
\r\n
\r\n
Last Submission Date:
\r\n
{this.state.generalStats[\"lastSubmission\"]}
\r\n
\r\n
\r\n
Average # Of Videos Per Contributor :
\r\n
{this.state.generalStats[\"averageVideosPerContributor\"].toFixed(3)}
\r\n
\r\n \r\n {generalStats(\"dictionary\")}\r\n \r\n
\r\n }\r\n\r\n\r\n
\r\n }\r\n\r\n\r\n {(!this.state.isLoading && this.state.targetStructuredGeneralData && (this.state.accountType.toLowerCase()).includes(\"wiki\")) &&\r\n
\r\n
\r\n
Stats Dashboard
\r\n \r\n \r\n\r\n
\r\n
\r\n
User Statistics
\r\n \r\n \r\n {this.state.showUserLoader &&\r\n
\r\n
User Data Loading...
\r\n \r\n
\r\n }\r\n {this.state.userArticleDisplay &&\r\n \r\n {this.state.userArticleDisplay}\r\n \r\n }\r\n
\r\n
\r\n
Search Wiki Articles Statistics
\r\n \r\n \r\n
\r\n {this.state.wikiArticlesDisplay &&\r\n \r\n {this.state.wikiArticlesDisplay}\r\n \r\n }\r\n
\r\n\r\n {this.state.generalStats &&\r\n
General Wiki Statistics
\r\n }\r\n {this.state.generalStats &&\r\n \r\n\r\n\r\n {generalStats(\"wiki\")}\r\n \r\n }\r\n\r\n\r\n
\r\n }\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst StatsDashboard = connect(\r\n\r\n mapDispatchToProps\r\n)(StatsDashboardContainer);\r\n\r\nexport default StatsDashboard\r\n","import React, { Component } from \"react\";\r\nimport { loaderStyle } from '../../styles/modalStyles';\r\nimport \"../../styles/dashboard.css\";\r\nimport { debounce } from \"../../utils/utilMethods\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport ApiClient from \"../../api/ApiClient\";\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport RemoveCircleRoundedIcon from '@material-ui/icons/RemoveCircleRounded';\r\nimport HighlightOffRoundedIcon from '@material-ui/icons/HighlightOffRounded';\r\nimport { disambiguateSASURL } from \"../../utils/urlSAS\";\r\nimport Loader from 'react-loader-spinner';\r\nimport { connect } from 'react-redux';\r\nimport { updateScore, populateStore, requestFailedModal } from '../../actions';\r\n\r\nclass APIDashboardContainer extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n isLoading: true,\r\n queryString: \"\",\r\n selectedGroup: \"none\",\r\n isAdminMode: false,\r\n allowedActions: [],\r\n backupJSON: false\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getSupportedActions()\r\n }\r\n\r\n downloadDBBackup = () => {\r\n\r\n }\r\n\r\n getSupportedActions = (query) => {\r\n this.setState({ queryString: query, isLoading: true });\r\n\r\n this.apiClient.getJSON(this, \"/dataDownloader/getSupportedActions\", \"\").then(async (res) => {\r\n\r\n if (res && res.status) {\r\n await this.setState({ allowedActions: res.data });\r\n }\r\n else if (res && res.httpServerError) {\r\n throw \"Something Went Wrong\"\r\n }\r\n });\r\n }\r\n\r\n downloadDBBackup = async (targetCollection) => {\r\n await this.setState({ backupJSON: true });\r\n let csvLink = await this.apiClient.getJSONFile(\"/dataDownloader/data-reviewer/dbbackup\", \"?collectionName=\" + targetCollection);\r\n await this.setState({ backupJSON: false });\r\n }\r\n\r\n download2021DictionaryCSV = async () => {\r\n\r\n await this.setState({ d2021DCSV: true });\r\n let csvLink = await this.apiClient.getCSV(\"/dataDownloader/data-reviewer/2021DictionaryUserStudyUserVideoReport\", \"\");\r\n csvLink.click();\r\n await this.setState({ d2021DCSV: false });\r\n\r\n }\r\n\r\n downloadWikiCSV = async () => {\r\n\r\n await this.setState({ dWikiCSV: true });\r\n let csvLink = await this.apiClient.getCSV(\"/dataDownloader/data-reviewer/WikiUserStudyUserVideoReport\", \"\");\r\n csvLink.click();\r\n await this.setState({ dWikiCSV: false });\r\n\r\n }\r\n\r\n\r\n \r\n\r\n generateAllTypeButtons = (type) => {\r\n switch (type) {\r\n case \"Admin\":\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {this.state.backupJSON &&\r\n
\r\n
Your file will download momentarily
\r\n \r\n
\r\n }\r\n
\r\n )\r\n case \"ContentReviewer\":\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n case \"DataReviewer\":\r\n return (\r\n \r\n
\r\n \r\n {this.state.dWikiCSV &&\r\n
\r\n
Your file will download momentarily
\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n {this.state.d2021DCSV &&\r\n
\r\n
Your file will download momentarily
\r\n \r\n
\r\n }\r\n
\r\n
\r\n )\r\n default:\r\n return (null)\r\n }\r\n }\r\n\r\n generateFullAdminRangePerType = (typeName) => {\r\n return (\r\n
\r\n
{typeName}
\r\n {this.generateAllTypeButtons(typeName)}\r\n
\r\n )\r\n }\r\n\r\n\r\n\r\n\r\n render() {\r\n\r\n document.title = 'Admin Action Dashboard';\r\n\r\n const allowedActionsView = this.state.allowedActions.map((aa) => {\r\n return (\r\n this.generateFullAdminRangePerType(aa)\r\n )\r\n });\r\n\r\n return (\r\n\r\n \r\n\r\n
\r\n
Welcome to the admin dashboard. The Power is yours.
\r\n
\r\n {allowedActionsView}\r\n
\r\n
\r\n\r\n\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\nconst APIDashboard = connect(\r\n\r\n mapDispatchToProps\r\n)(APIDashboardContainer);\r\n\r\nexport default APIDashboard\r\n","// eslint-disable-next-line\r\nimport React, { Component } from \"react\";\r\n// eslint-disable-next-line\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport TopNav from \"./components/global/Nav\";\r\nimport \"./App.css\";\r\nimport \"./styles/colors.css\";\r\nimport \"./styles/header.css\";\r\nimport { withRouter } from 'react-router-dom';\r\nimport ThirdPartyLogin from \"./components/auth/ThirdPartyLogin\";\r\nimport ThirdPartySignup from \"./components/auth/ThirdPartySignUp\";\r\nimport ApiClient from \"./api/ApiClient\";\r\nimport Home from \"./Home\";\r\nimport Info from \"./Info\";\r\nimport HttpErrorModal from './components/gamification/GlobalErrorModalConnect';\r\nimport Record from \"./components/player-recorder/Record\";\r\n// import ErrorBoundary from \"./ErrorBoundary\";\r\nimport Verify from \"./components/video-verify/Verify\";\r\nimport Explore from \"./components/explore/Explore\";\r\n\r\nimport VocabList from \"./components/vocab/VocabList\";\r\nimport VocabSpecificList from \"./components/vocab/VocabSpecificList\";\r\nimport RecordVocabList from \"./components/vocab/RecordVocabList\";\r\nimport CreateVocabList from \"./components/vocab/CreateVocabList\";\r\n\r\nimport { ErrorBoundary } from 'react-error-boundary'\r\n\r\nimport UserCam from \"./components/player-recorder/Webcam\";\r\nimport User from \"./components/profile/User\";\r\n\r\nimport SeedFactory from \"./components/player-recorder/SeedFactory\";\r\n\r\n// FB + TOS \r\nimport FBTOS from \"./components/tos/FBTOS\";\r\nimport FBPrivacy from \"./components/tos/FBPrivacy\";\r\n\r\nimport Profile from \"./components/profile/Profile\";\r\nimport GoogleAuthIntermediate from \"./components/auth/GoogleAuthIntermediate\";\r\nimport UserProfile from \"./components/profile/UserProfile\";\r\nimport Footer from \"./components/global/Footer\";\r\nimport defaultProfileImg from './resources/profile.svg';\r\nimport AuthService from './services/auth/AuthService';\r\n\r\nimport Wikipedia from './components/wiki/Wikipedia';\r\nimport RecordNewModelVideo from './components/player-recorder/RecordNewModelVideo';\r\nimport cookie from 'react-cookies';\r\nimport DisappearNotification from \"./modals/disappearNotification\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { ReactPlugin, withAITracking } from '@microsoft/applicationinsights-react-js';\r\nimport { browserCompatibilityCheck, updateUserLocation } from \"./utils/userAgent\";\r\nimport { updateScore, populateStore, requestFailedModal } from './actions';\r\nimport { connect } from 'react-redux';\r\nimport AdminDashboard from \"./components/admin-dashboard/AdminDashboard\";\r\nimport StatsDashboard from \"./components/admin-dashboard/StatsDashboard\";\r\nimport APIDashboard from \"./components/admin-dashboard/APIDashboard\";\r\nimport { debounce } from \"./utils/utilMethods\";\r\nimport { Dropdown } from 'semantic-ui-react';\r\nimport SelectSearch from 'react-select-search';\r\nimport HighlightOffRoundedIcon from '@material-ui/icons/HighlightOffRounded';\r\n\r\nconst browserHistory = createBrowserHistory({ basename: '' });\r\nvar reactPlugin = new ReactPlugin();\r\nvar appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: \"1tlqp5trhd0uocfckt35wdiypcg5jm3v5zdvwowj\",\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history: browserHistory }\r\n }\r\n }\r\n});\r\nappInsights.loadAppInsights();\r\n\r\nclass AppContainer extends Component {\r\n\r\n constructor() {\r\n super();\r\n this.apiClient = new ApiClient();\r\n this.state = {\r\n locationString: \"\",\r\n\r\n showPageHeader: false,\r\n sOptions: [],\r\n homeSubnav: \"\",\r\n mainTitle: \"\",\r\n description: \"\",\r\n searchText: \"\",\r\n searchPlaceholder: \"\",\r\n isEUGeo: true,\r\n isOpen: false,\r\n showInvisibleModal: false,\r\n isTokenVerificationComplete: false,\r\n userToken: '',\r\n isUserLoggedIn: false,\r\n loggedInAccountType: '',\r\n isCompatible: \"\",\r\n browser: \"\",\r\n isMobile: \"\",\r\n isTablet: \"\",\r\n loggedInUser: '',\r\n loggedInUserName: '',\r\n loggedInUserId: '',\r\n loggedInThirdPartyUserId: '',\r\n loggedInUserEmail: '',\r\n loggedInUserParticipatingGroups: null,\r\n isGroupSignIn: false,\r\n signedInGroup: null,\r\n dropdownSelectOptions: [],\r\n mappedSelections: [\r\n { key: 'af', value: 'af', text: 'Loading' }\r\n ],\r\n video: null,\r\n studyCode: '',\r\n profileImg: '',\r\n selectedEmail: '',\r\n selectedUserId: '',\r\n defaultProfileImg: 'profile.svg',\r\n userCookieConsent: false,\r\n searchVisible: false,\r\n totalUserRecordings: 0,\r\n verifyStudyCodeExists: false,\r\n loggedInUserLevel: {\r\n name: 'public',\r\n profile: false,\r\n otherProfile: false,\r\n verify: false,\r\n record: false,\r\n socialMedialLinks: false\r\n },\r\n userAccessLevels: [\r\n {\r\n name: 'public',\r\n profile: false,\r\n otherProfile: false,\r\n verify: false,\r\n record: false,\r\n socialMedialLinks: false\r\n },\r\n {\r\n name: 'Rookie',\r\n profile: false,\r\n otherProfile: true,\r\n verify: false,\r\n record: true,\r\n socialMedialLinks: false\r\n },\r\n {\r\n name: 'Pro',\r\n profile: true,\r\n otherProfile: true,\r\n verify: false,\r\n record: true,\r\n socialMedialLinks: true\r\n },\r\n {\r\n name: 'MVP',\r\n profile: true,\r\n otherProfile: true,\r\n verify: true,\r\n record: true,\r\n socialMedialLinks: true\r\n },\r\n ]\r\n };\r\n\r\n\r\n // require('dotenv').config();\r\n //this.updateVideoState = this.updateVideoState.bind(this);\r\n this.updateSelectedUserDetails = this.updateSelectedUserDetails.bind(this);\r\n }\r\n\r\n // options = [\r\n // { name: 'Dictionary', value: 'sv' },\r\n // { name: 'Wiki', value: 'en' },\r\n // {\r\n // type: 'wiki',\r\n // name: 'Wiki',\r\n // items: [\r\n // { name: 'Wiki Article', value: 'es' },\r\n // ]\r\n // },\r\n // ];\r\n\r\n options = [\r\n {\r\n type: 'group',\r\n name: 'Dictionary',\r\n items: [\r\n { name: 'About', value: 'es' },\r\n ]\r\n },\r\n {\r\n type: 'group',\r\n name: 'Wiki',\r\n items: [\r\n { name: 'Abacus', value: 'es' },\r\n ]\r\n },\r\n ];\r\n\r\n\r\n componentWillMount() {\r\n\r\n\r\n /*\r\n *\r\n * Handle no show for EU Region\r\n * \r\n */\r\n function onConsentChanged(categoryPreferences) {\r\n\r\n }\r\n\r\n /* eslint-disable */\r\n WcpConsent.init(\"en-US\", \"cookie-banner\", async (err, _siteConsent) => {\r\n var isEU = _siteConsent.isConsentRequired;\r\n await this.setState({ isEUGeo: isEU });\r\n if (!isEU) {\r\n const { isCompatible, browser, isMobile, isTablet } = browserCompatibilityCheck();\r\n const rLocation = window.location.pathname;\r\n await this.setState({ isCompatible, browser, isMobile, isTablet });\r\n\r\n this.apiClient.postJSON(this, \"/logDeviceAccess\", {\r\n browser, isMobile, isTablet, isCompatible, route: rLocation\r\n }).then((res) => {\r\n\r\n })\r\n }\r\n else {\r\n\r\n }\r\n }, onConsentChanged, window.WcpConsent.themes.light);\r\n\r\n function setNonEssentialCookies(categoryPreferences) {\r\n if (categoryPreferences.Analytics) { /* ... */ }\r\n if (categoryPreferences.Advertising) { /* ... */ }\r\n if (categoryPreferences.SocialMedia) { /* ... */ }\r\n }\r\n\r\n function manageConsent() {\r\n if (siteConsent.isConsentRequired) {\r\n siteConsent.manageConsent();\r\n }\r\n }\r\n\r\n WcpConsent.onInitCallback(setNonEssentialCookies);\r\n\r\n // window.WcpConsent.init(\"en-US\", \"cookie-banner\");\r\n }\r\n\r\n checkForFlaggedUser = async (user) => {\r\n if (user.avertViolationsCount >= 3 || user.cvsViolationsCount >= 3) {\r\n await this.setState({ blockedAccount: true })\r\n }\r\n }\r\n\r\n setDropdownState = (data) => {\r\n this.setState({ dropdownSelectOptions: data, searchVisible: true })\r\n }\r\n\r\n // onLoggedInChanged = (isLoggedIn, loggedInUser, loggedInUserEmail, loggedInUserId, loggedInThirdPartyUserId, loggedInUserName, loggedInUserLevel) => {\r\n\r\n // if (loggedInUserId || loggedInThirdPartyUserId) {\r\n // updateUserLocation(this.apiClient, loggedInUserName)\r\n // }\r\n // var userAccess = {\r\n // name: 'public',\r\n // profile: false,\r\n // otherProfile: false,\r\n // verify: false,\r\n // record: false,\r\n // socialMedialLinks: false\r\n // };\r\n // if (isLoggedIn) {\r\n // userAccess = this.state.userAccessLevels.filter(x => x.name === loggedInUserLevel)[0];\r\n // }\r\n\r\n\r\n // this.setState({ showInvisibleModal: true });\r\n // setTimeout(() => {\r\n // this.setState({ showInvisibleModal: false });\r\n // }, 4000)\r\n\r\n\r\n // this.setState({\r\n // isUserLoggedIn: isLoggedIn,\r\n // loggedInUser: loggedInUser,\r\n // loggedInUserId: loggedInUserId,\r\n // loggedInUserName: loggedInUserName,\r\n // loggedInThirdPartyUserId: loggedInThirdPartyUserId,\r\n // loggedInUserLevel: userAccess,\r\n // loggedInUserEmail: loggedInUserEmail\r\n // });\r\n\r\n // }\r\n\r\n loadUser = () => {\r\n this.apiClient.getJSON(this,'/getUser', '').then(async (res) => {\r\n if (res && res.status) {\r\n if (res.data) {\r\n await this.checkForFlaggedUser(res.data);\r\n this.props.dispatch(populateStore(res.data));\r\n this.getRecordingsCount(res.data._id);\r\n var userAccess = this.state.userAccessLevels.filter(x => x.name === res.data.level)[0];\r\n this.setState({\r\n loggedInUserLevel: userAccess, isUserLoggedIn: true, loggedInUserName: res.data.userName, loggedInUserEmail: res.data.email,\r\n loggedInUserId: res.data._id\r\n });\r\n //this.getGroups(res.user._id);\r\n }\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n });\r\n }\r\n\r\n\r\n updateUserAccountType = (type) => {\r\n this.setState({ loggedInAccountType: type });\r\n }\r\n updateUserToken = (token) => {\r\n this.setState({ userToken: token });\r\n }\r\n updateUserEmail = (email) => {\r\n this.setState({ loggedInUser: email });\r\n }\r\n updateUserName = (name) => {\r\n this.setState({ loggedInUserName: name });\r\n }\r\n\r\n // Logs Users Out of all SSO\r\n logout = () => {\r\n localStorage.removeItem(\"jwtToken\");\r\n window.location.href = process.env.PUBLIC_URL + \"/tpLogin\";\r\n }\r\n\r\n onProfileImgChanged = (imgUrl) => {\r\n if (imgUrl === \"\") {\r\n this.setState({ profileImg: defaultProfileImg })\r\n } else {\r\n this.setState({\r\n profileImg: imgUrl\r\n });\r\n }\r\n }\r\n\r\n updateLoggedInUserName = (userName) => {\r\n this.setState({\r\n loggedInUserName: userName\r\n });\r\n }\r\n updateLoggedInThirdPartyUserId = (userid) => {\r\n this.setState({\r\n loggedInThirdPartyUserId: userid\r\n });\r\n }\r\n\r\n updateCurrentUserLevel = (level) => {\r\n var uLevel = this.state.userAccessLevels.filter(x => x.name === level)[0];\r\n //this.setState({loggedInUserLevel: uLevel});\r\n this.state.loggedInUserLevel = uLevel;\r\n }\r\n\r\n updateSelectedUserDetails = (email, userId) => {\r\n this.setState({ selectedEmail: email, selectedUserId: userId });\r\n }\r\n\r\n setPageHeaderState = (isVisible, searchPlaceholder, homeSubnav, mainTitle, description) => {\r\n if (!isVisible) {\r\n this.setState({ showPageHeader: false })\r\n }\r\n else {\r\n this.setState({ showPageHeader: true, homeSubnav, mainTitle, description, searchPlaceholder })\r\n }\r\n }\r\n\r\n setTopLevelState = (path) => {\r\n switch (path) {\r\n case \"/explore\":\r\n this.setPageHeaderState(true, \"Search dictionary for a sign\", \"Dictionary / Explore\", \"ASL Dictionary\", \"Find, sort, and view video submissions.\");\r\n break;\r\n case \"/verify\":\r\n this.setPageHeaderState(true, \"Search for a sign to verify\", \"Dictionary / Verify\", \"Verify videos\", \"Judge whether the submitted sign adequately demonstrates the model sign.\");\r\n break;\r\n case \"/record\":\r\n this.setPageHeaderState(true, \"Search for sign to record\", \"Dictionary / Record\", \"Record a sign\", \"View the sign below. When you’re ready, please click “Record” to record yourself executing the sign.\");\r\n break;\r\n case \"/wikipedia\":\r\n this.setPageHeaderState(true, \"Search for content to view or record\", \"Contribute / Wikipedia\", \"ASL Wikipedia\", \"Find and record Wikipedia articles powered by the ASL community.\");\r\n break;\r\n default:\r\n this.setPageHeaderState(false);\r\n break;\r\n }\r\n }\r\n\r\n handleStayInTouchChange = (inpt) => {\r\n const email = inpt.target.value;\r\n this.setState({ stayInTouchEmail: email })\r\n }\r\n\r\n stayInTouchSignup = () => {\r\n const email = this.state.stayInTouchEmail;\r\n this.apiClient.postJSON(this, \"/stayInTouch/signup\", {\r\n email\r\n }).then((res) => {\r\n if (res && res.status) {\r\n this.setState({ showStayInTouchModal: true });\r\n setTimeout(() => {\r\n this.setState({ showStayInTouchModal: false });\r\n }, 10000);\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong With User Action\";\r\n }\r\n })\r\n }\r\n\r\n\r\n componentWillUnmount() {\r\n // stream.getTracks().forEach(function(track) {\r\n // track.stop();\r\n // });\r\n this.unlisten();\r\n }\r\n\r\n\r\n async componentDidMount() {\r\n // Detect router changes to reflect top level data\r\n this.unlisten = this.props.history.listen(async (location, action) => {\r\n let path = location.pathname;\r\n if (location.pathname[location.pathname.length - 1] === \"/\") {\r\n path = path.slice(0, -1)\r\n }\r\n this.setTopLevelState(path);\r\n const { isCompatible, browser, isMobile, isTablet } = browserCompatibilityCheck();\r\n await this.setState({ isCompatible, browser, isMobile, isTablet })\r\n\r\n this.apiClient.postJSON(this, \"/logDeviceAccess\", {\r\n browser, isMobile, isTablet, isCompatible, route: path\r\n }).then((res) => {\r\n\r\n })\r\n });\r\n // Set inititial load data\r\n let path = window.location.pathname;\r\n if (window.location.pathname[location.pathname.length - 1] === \"/\") {\r\n path = path.slice(0, -1)\r\n }\r\n this.setTopLevelState(path);\r\n this.loadUser()\r\n\r\n }\r\n\r\n\r\n setUserCookieConsent = (cookieConsent) => {\r\n this.setState({ userCookieConsent: cookieConsent });\r\n }\r\n\r\n updateMSUserAuthStatus = () => {\r\n return new AuthService().isAuthenticatedUsingMS();\r\n }\r\n\r\n // Facebook Method\r\n updateUserAuthStatus = () => {\r\n return new Promise((resolve, reject) => {\r\n new AuthService().isAuthenticated(this.apiClient).then((res) => {\r\n if (res) {\r\n resolve(res);\r\n } else {\r\n reject('User not logged in');\r\n }\r\n });\r\n });\r\n }\r\n\r\n getRecordingsCount = (loggedInUserId) => {\r\n var current = this;\r\n if (loggedInUserId) {\r\n this.apiClient.getJSON(this,'/getRecordingsCount')\r\n .then((res) => {\r\n if (res && res.status) {\r\n current.setState({ totalUserRecordings: res.data.totalRecordedVideos });\r\n }\r\n else if (res && res.httpServerError) {\r\n // throw \"Something Went Wrong\"\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Debounce input\r\n debounceInitTime;\r\n debounceSearchText = debounce();\r\n\r\n performQuery = (query) => {\r\n let qq = query.toUpperCase();\r\n this.setState({ searchText: qq });\r\n }\r\n\r\n handleInputChange = (selection) => {\r\n selection = selection.toUpperCase();\r\n this.performQuery(selection)\r\n }\r\n\r\n getOptions = async (query) => {\r\n try {\r\n let loadOptions = null;\r\n const options = await new Promise((resolve, reject) => {\r\n loadOptions = setInterval(async () => {\r\n try {\r\n if (this.state.dropdownSelectOptions.length > 0) {\r\n var self = this;\r\n const filtered = self.state.dropdownSelectOptions.filter((select) => {\r\n const result = (select.name.toUpperCase()).includes(query.toUpperCase());\r\n return result;\r\n });\r\n resolve(filtered)\r\n }\r\n }\r\n catch (e) {\r\n resolve([])\r\n }\r\n }, 200)\r\n });\r\n clearInterval(loadOptions);\r\n this.setState({ sOptions: options })\r\n return options;\r\n }\r\n catch (e) {\r\n return []\r\n }\r\n }\r\n\r\n // options = [\r\n // {name: 'Swedish', value: 'sv'},\r\n // {name: 'English', value: 'en'},\r\n // {\r\n // type: 'group',\r\n // name: 'Group name',\r\n // items: [\r\n // {name: 'Spanish', value: 'es'},\r\n // ]\r\n // },\r\n // ];\r\n\r\n clearSearchResults = async () => {\r\n await this.setState({ searchText: \"\" });\r\n // setTimeout(() => {\r\n // this.performQuery(\"\");\r\n // },500)\r\n }\r\n\r\n\r\n customFilter = (option, searchText) => {\r\n if (\r\n option.data.label.includes(searchText.toUpperCase())\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n onAddModelVideo = () => {\r\n if (this.props) {\r\n this.props.history.push(\"/recordSeedVideo\");\r\n }\r\n }\r\n\r\n\r\n ErrorFallback = ({ error, resetErrorBoundary }) => {\r\n\r\n return (\r\n
Something went wrong. Please refresh your page or try another link.
\r\n
\r\n
\r\n
If the the problem persists, please contact us.
\r\n
\r\n )\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n if (this.state.blockedAccount) {\r\n return (\r\n \r\n We apologize, but your account has been locked due to inappropriate content detected in three or more videos. If you believe this to be a mistake, please contact us at aslgames@microsoft.com\r\n \r\n )\r\n }\r\n else if (this.state.isEUGeo === true) {\r\n return (\r\n \r\n We apologize, but our site uses cookies which are restricted in your region.\r\n \r\n )\r\n }\r\n else if (this.state.isEUGeo === undefined) {\r\n return (\r\n null\r\n )\r\n }\r\n\r\n if (!this.state.isCompatible) {\r\n if (this.state.isMobile) {\r\n return (\r\n \r\n We apologize, but we do not currently support mobile devices, please give us a try on a PC\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n \r\n
We apologize, but we do not currently support {this.state.browser}, please give us a try on Chrome or Edge.
\r\n
😳
\r\n
We're working on support for your favorite {this.state.browser} so stay tuned as we resolve our backward compatibility issues
\r\n
\r\n )\r\n }\r\n }\r\n\r\n // authmod\r\n // newVideo: this.updateVideoState,\r\n //const video = {video: this.state.video, userLevel:this.state.userAccessLevel};\r\n const newVideo = {\r\n video: this.state.video, studyCode: this.state.studyCode, updateUserLevel: this.updateCurrentUserLevel,\r\n userName: this.state.loggedInUser, userid: this.state.loggedInUserId, userLevel: this.state.userAccessLevel\r\n };\r\n let self = this;\r\n \r\n //const showFooter = this.state.isUserLoggedIn ? {}: {display:'none'};\r\n return (\r\n {\r\n // reset the state of your app so the error doesn't happen again\r\n }}\r\n >\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n {/* */}\r\n
\r\n
\r\n this.groupSignIn(groupId, isOwnedGroup)} signedInGroup={this.state.signedInGroup} groups={this.state.loggedInUserParticipatingGroups} profileImg={this.state.profileImg} isLoggedIn={this.state.isUserLoggedIn} userId={this.state.loggedInUserId}\r\n />\r\n
\r\n
\r\n \r\n {location.pathname == \"/\" &&
\r\n
\r\n
\r\n

Welcome to the ASL Data Community

\r\n
Enabling volunteers to contribute American Sign Language (ASL) videos to advance sign language recognition, translation, and generation, while fostering ASL community online.
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n Watch Amazing Videos of Signers \r\n
\r\n
\r\n \r\n
\r\n
\r\n {/*
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n Validate signs contributed by others\r\n
\r\n
\r\n \r\n
\r\n
*/}\r\n {/*
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Explore the ASL communal Dictionary\r\n
\r\n
\r\n \r\n
\r\n
*/}\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n {this.state.showPageHeader && (
\r\n
\r\n {/*
\r\n {this.state.homeSubnav}\r\n
*/}\r\n
\r\n

{this.state.mainTitle}

\r\n
\r\n
\r\n
\r\n
\r\n {/* {this.state.description} */}\r\n
\r\n
\r\n
\r\n {/* {this.state.loggedInUserLevel.verify &&\r\n
\r\n \r\n \r\n
\r\n } */}\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n {this.state.searchText && }\r\n\r\n
\r\n
\r\n
)\r\n }\r\n \r\n this.setUserCookieConsent(cookieConsent)} isLoggedIn={this.state.isUserLoggedIn} userLevel={this.state.loggedInUserLevel} userName={this.state.loggedInUserName} userId={this.state.loggedInUserId} {...props} />}>\r\n \r\n\r\n }>\r\n \r\n this.setUserCookieConsent(cookieConsent)} isLoggedIn={this.state.isUserLoggedIn} userLevel={this.state.loggedInUserLevel}\r\n {...props} />}>\r\n \r\n\r\n {/* this.setUserCookieConsent(cookieConsent)}\r\n isLoggedIn={this.state.isUserLoggedIn} video={this.state.video} studyCode={this.state.studyCode}\r\n updateCount={this.getRecordingsCount} userName={this.state.loggedInUser} userLevel={this.state.loggedInUserLevel}\r\n loggedInUser={this.state.loggedInUserId} {...props} />}>\r\n */}\r\n\r\n {/* this.setUserCookieConsent(cookieConsent)}\r\n isLoggedIn={this.state.isUserLoggedIn} video={this.state.video} studyCode={this.state.studyCode}\r\n updateCount={this.getRecordingsCount} userName={this.state.loggedInUser} userLevel={this.state.loggedInUserLevel}\r\n loggedInUser={this.state.loggedInUserId} {...props} />}>\r\n */}\r\n\r\n {/* this.setUserCookieConsent(cookieConsent)}\r\n isLoggedIn={this.state.isUserLoggedIn} video={this.state.video} studyCode={this.state.studyCode}\r\n updateCount={this.getRecordingsCount} userName={this.state.loggedInUser} userLevel={this.state.loggedInUserLevel}\r\n loggedInUser={this.state.loggedInUserId} {...props} />}>\r\n */}\r\n\r\n {/* }>\r\n */}\r\n\r\n {/* this.setUserCookieConsent(cookieConsent)} isLoggedIn={this.state.isUserLoggedIn} verifyCodeExists={this.state.verifyStudyCodeExists} userId={this.state.loggedInUserId} userLevel={this.state.loggedInUserLevel} {...props} />}>\r\n \r\n\r\n this.setUserCookieConsent(cookieConsent)} userId={this.state.loggedInUserId} isLoggedIn={this.state.isUserLoggedIn} userLevel={this.state.loggedInUserLevel} loggedInUser={this.state.loggedInUser} updateSelectedUser={(email, userId) => this.updateSelectedUserDetails(email, userId)} {...props} />}>\r\n \r\n\r\n this.setUserCookieConsent(cookieConsent)} userId={this.state.loggedInUserId} isLoggedIn={this.state.isUserLoggedIn} userLevel={this.state.loggedInUserLevel} loggedInUser={this.state.loggedInUser} updateSelectedUser={(email, userId) => this.updateSelectedUserDetails(email, userId)} {...props} />}>\r\n \r\n\r\n this.setUserCookieConsent(cookieConsent)} userId={this.state.loggedInUserId} isLoggedIn={this.state.isUserLoggedIn} userLevel={this.state.loggedInUserLevel} loggedInUser={this.state.loggedInUser} updateSelectedUser={(email, userId) => this.updateSelectedUserDetails(email, userId)} {...props} />}>\r\n \r\n */}\r\n this.setUserCookieConsent(cookieConsent)} userId={this.state.loggedInUserId} isLoggedIn={this.state.isUserLoggedIn} userLevel={this.state.loggedInUserLevel} loggedInUser={this.state.loggedInUser} updateSelectedUser={(email, userId) => this.updateSelectedUserDetails(email, userId)} {...props} />}>\r\n \r\n\r\n {/* } /> */}\r\n {/* } /> */}\r\n } />\r\n {/* } /> */}\r\n\r\n {/* } /> */}\r\n\r\n {/* Privacy Policy and TOS */}\r\n } />\r\n } />\r\n\r\n\r\n {/* } /> */}\r\n\r\n this.updateUserId(id)} updateLoggedInThirdPartyUserId={(userid) => this.updateLoggedInThirdPartyUserId(userid)} updateUserEmail={(email) => this.updateUserEmail(email)} updateUserAccountType={(type) => this.updateUserAccountType(type)} updateUserToken={(token) => this.updateUserToken(token)}\r\n {...props} />}>\r\n \r\n this.updateUserId(id)} thirdPartyUserid={this.state.loggedInThirdPartyUserId} token={this.state.userToken} {...props} />}>\r\n \r\n }>\r\n\r\n this.updateUserId(id)} email={this.state.loggedInUser} userLevel={this.state.loggedInUserLevel} updateUserName={(name) => this.updateUserName(name)} userId={this.state.loggedInUserId} thirdPartyUserid={this.state.loggedInThirdPartyUserId}\r\n onProfileImgChanged={this.onProfileImgChanged} />} >\r\n\r\n } />\r\n\r\n\r\n {/* }> */}\r\n\r\n this.setUserCookieConsent(cookieConsent)} isLoggedIn={this.state.isUserLoggedIn} loggedInUser={this.state.loggedInUserId} userName={this.state.loggedInUser} userLevel={this.state.loggedInUserLevel} />}>\r\n\r\n \r\n
\r\n\r\n
\r\n {location.pathname == \"/\" &&
\r\n
\r\n Stay in touch\r\n
\r\n
\r\n \r\n \r\n {this.state.showStayInTouchModal &&\r\n \r\n You've been added to the mailing list!\r\n \r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n Contact us\r\n
\r\n \r\n \r\n
\r\n Terms of Use\r\n
\r\n
\r\n Trademarks\r\n
\r\n
\r\n © 2020 Microsoft\r\n
\r\n {/* \r\n */}\r\n
\r\n
\r\n {/* */}\r\n
\r\n \r\n )\r\n };\r\n}\r\n\r\n\r\n\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n updateScore,\r\n populateStore,\r\n requestFailedModal,\r\n dispatch\r\n});\r\n\r\n\r\nconst App = withRouter(connect(\r\n \r\n mapDispatchToProps\r\n)(AppContainer));\r\n\r\n\r\nexport default App\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter} from 'react-router-dom';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"./index.css\";\r\nimport AppContainer from './App';\r\nimport { Provider } from 'react-redux'\r\nimport { createStore } from 'redux'\r\nimport rootReducer from './reducers';\r\nimport store from './store/accountInfo';\r\n\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n // eslint-disable-next-line\r\n document.getElementById(\"root\") \r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}