added blind mode

This commit is contained in:
Jack 2020-05-30 13:15:00 +01:00
parent b6f9c01d70
commit 6c73ae9c6c
5 changed files with 61 additions and 8 deletions

View file

@ -309,6 +309,14 @@
<div class="button off" tabindex="0" onclick="this.blur();">off</div>
</div>
</div>
<div class="section blindMode">
<h1>blind mode</h1>
<div class="text">No errors or incorrect words are highlighted. Helps you focus on raw speed.</div>
<div class="buttons">
<div class="button on" tabindex="0" onclick="this.blur();">on</div>
<div class="button off" tabindex="0" onclick="this.blur();">off</div>
</div>
</div>
<div class="section fontSize">
<h1>font size</h1>
<div class="text">Change the font size of the test words</div>

View file

@ -49,6 +49,13 @@ let commands = {
toggleFreedomMode();
}
},
{
id: "toggleBlindMode",
display: "Toggle blind mode",
exec: () => {
toggleBlindMode();
}
},
{
id: "changeDifficulty",
display: "Change difficulty...",

View file

@ -256,13 +256,18 @@ function compareInput() {
showResult(true);
restartCount++;
}
if (currentWord[i] == undefined) {
ret +=
'<letter class="incorrect extra">' + currentInput[i] + "</letter>";
// $($('#words .word')[currentWordIndex]).append('<letter class="incorrect">' + currentInput[i] + "</letter>");
} else {
ret += '<letter class="incorrect">' + currentWord[i] + "</letter>";
// $(letterElems[i]).removeClass('correct').addClass('incorrect');
if(config.blindMode){
if (currentWord[i] == undefined) {
// ret += '<letter class="correct">' + currentInput[i] + "</letter>";
} else {
ret += '<letter class="correct">' + currentWord[i] + "</letter>";
}
}else{
if (currentWord[i] == undefined) {
ret += '<letter class="incorrect extra">' + currentInput[i] + "</letter>";
} else {
ret += '<letter class="incorrect">' + currentWord[i] + "</letter>";
}
}
}
}
@ -281,6 +286,7 @@ function compareInput() {
}
function highlightBadWord() {
if(config.blindMode) return;
$(".word.active").addClass("error");
}

View file

@ -15,7 +15,7 @@ function updateSettingsPage(){
setSettingsButton('liveWpm', config.showLiveWpm);
setSettingsButton('keyTips', config.showKeyTips);
setSettingsButton('freedomMode', config.freedomMode);
setSettingsButton('blindMode', config.blindMode);
setActiveThemeButton();
setActiveLanguageButton();
@ -190,3 +190,15 @@ $(document).on("click",".pageSettings .section.caretStyle .button", (e) => {
showNotification('Caret style updated', 1000);
setActiveCaretStyleButton();
})
//blind mode
$(".pageSettings .section.blindMode .buttons .button.on").click(e => {
setBlindMode(true);
showNotification('Blind mode on', 1000);
setSettingsButton('blindMode', config.blindMode);
})
$(".pageSettings .section.blindMode .buttons .button.off").click(e => {
setBlindMode(false);
showNotification('Blind mode off', 1000);
setSettingsButton('blindMode', config.blindMode);
})

View file

@ -13,6 +13,7 @@ let config = {
freedomMode: false,
resultFilters: ["all"],
difficulty: "normal",
blindMode: false
}
//cookies
@ -43,6 +44,7 @@ function loadConfigFromCookie() {
setFreedomMode(newConfig.freedomMode,true);
setCaretStyle(newConfig.caretStyle,true);
setDifficulty(newConfig.difficulty,true);
setBlindMode(newConfig.blindMode,true);
if(newConfig.resultFilters == null || newConfig.resultFilters == undefined){
newConfig.resultFilters = ["all"];
}
@ -68,6 +70,24 @@ function setDifficulty(diff, nosave){
if(!nosave) saveConfigToCookie();
}
//blind mode
function toggleBlindMode(){
blind = !config.blindMode;
if(blind == undefined){
blind = false;
}
config.blindMode = blind;
if(!nosave) saveConfigToCookie();
}
function setBlindMode(blind, nosave){
if(blind == undefined){
blind = false;
}
config.blindMode = blind;
if(!nosave) saveConfigToCookie();
}
function setCaretStyle(caretStyle, nosave) {
if (caretStyle == null || caretStyle == undefined) {
caretStyle = 'default';