diff --git a/public/index.html b/public/index.html
index bee426f42..49b7d544a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -309,6 +309,14 @@
font size
Change the font size of the test words
diff --git a/public/js/commandline.js b/public/js/commandline.js
index 6ea7c5543..2fdbb16dc 100644
--- a/public/js/commandline.js
+++ b/public/js/commandline.js
@@ -49,6 +49,13 @@ let commands = {
toggleFreedomMode();
}
},
+ {
+ id: "toggleBlindMode",
+ display: "Toggle blind mode",
+ exec: () => {
+ toggleBlindMode();
+ }
+ },
{
id: "changeDifficulty",
display: "Change difficulty...",
diff --git a/public/js/script.js b/public/js/script.js
index 47ec37b20..b6c4c1d28 100644
--- a/public/js/script.js
+++ b/public/js/script.js
@@ -256,13 +256,18 @@ function compareInput() {
showResult(true);
restartCount++;
}
- if (currentWord[i] == undefined) {
- ret +=
- '";
- // $($('#words .word')[currentWordIndex]).append('
' + currentInput[i] + "");
- } else {
- ret += '
' + currentWord[i] + "";
- // $(letterElems[i]).removeClass('correct').addClass('incorrect');
+ if(config.blindMode){
+ if (currentWord[i] == undefined) {
+ // ret += '
' + currentInput[i] + "";
+ } else {
+ ret += '
' + currentWord[i] + "";
+ }
+ }else{
+ if (currentWord[i] == undefined) {
+ ret += '";
+ } else {
+ ret += '
' + currentWord[i] + "";
+ }
}
}
}
@@ -281,6 +286,7 @@ function compareInput() {
}
function highlightBadWord() {
+ if(config.blindMode) return;
$(".word.active").addClass("error");
}
diff --git a/public/js/settings.js b/public/js/settings.js
index e1c64dd63..1fc65a7fe 100644
--- a/public/js/settings.js
+++ b/public/js/settings.js
@@ -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);
+})
diff --git a/public/js/userconfig.js b/public/js/userconfig.js
index 84e8873c4..517e431d8 100644
--- a/public/js/userconfig.js
+++ b/public/js/userconfig.js
@@ -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';