From d853c38b60ff83cc349944afdf15849996271dd2 Mon Sep 17 00:00:00 2001 From: Miodec Date: Sun, 14 Mar 2021 02:21:22 +0000 Subject: [PATCH] moved a function to a module, and added temporary variables to make converting other files to modules easier --- src/js/commandline.js | 16 ++- src/js/dom-util.js | 159 +++++++++++++++++++++++++++++ src/js/global-dependencies.js | 1 + src/js/script.js | 183 ++++++---------------------------- src/js/settings.js | 8 +- src/js/userconfig.js | 80 +++++++++++++-- 6 files changed, 279 insertions(+), 168 deletions(-) diff --git a/src/js/commandline.js b/src/js/commandline.js index 4097578e5..9156802ae 100644 --- a/src/js/commandline.js +++ b/src/js/commandline.js @@ -1541,7 +1541,13 @@ function updateCommandsTagsList() { DB.getSnapshot().tags.forEach((tag) => { tag.active = false; }); - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); saveActiveTagsToCookie(); }, }); @@ -1561,7 +1567,13 @@ function updateCommandsTagsList() { sticky: true, exec: () => { toggleTag(tag.id); - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); let txt = tag.name; if (tag.active === true) { diff --git a/src/js/dom-util.js b/src/js/dom-util.js index deed4d566..0357dcea1 100644 --- a/src/js/dom-util.js +++ b/src/js/dom-util.js @@ -1,3 +1,5 @@ +import * as DB from "./db"; + export function showBackgroundLoader() { $("#backgroundLoader").stop(true, true).fadeIn(125); } @@ -77,3 +79,160 @@ export function swapElements( callback(); } } + +export function updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config +) { + let anim = false; + if ($(".pageTest #testModesNotice").text() === "") anim = true; + + $(".pageTest #testModesNotice").empty(); + + if (sameWordset) { + $(".pageTest #testModesNotice").append( + `
repeated
` + ); + } + + if (textHasTab) { + $(".pageTest #testModesNotice").append( + `
shift + tab to restart
` + ); + } + + if (config.mode === "zen") { + $(".pageTest #testModesNotice").append( + `
shift + enter to finish zen
` + ); + } + + // /^[0-9a-zA-Z_.-]+$/.test(name); + + if (/_\d+k$/g.test(config.language) && config.mode !== "quote") { + $(".pageTest #testModesNotice").append( + `
${config.language.replace( + /_/g, + " " + )}
` + ); + } + + if (config.difficulty === "expert") { + $(".pageTest #testModesNotice").append( + `
expert
` + ); + } else if (config.difficulty === "master") { + $(".pageTest #testModesNotice").append( + `
master
` + ); + } + + if (config.blindMode) { + $(".pageTest #testModesNotice").append( + `
blind
` + ); + } + + if (config.paceCaret !== "off") { + let speed = ""; + try { + speed = ` (${Math.round(paceCaret.wpm)} wpm)`; + } catch {} + $(".pageTest #testModesNotice").append( + `
${ + config.paceCaret === "average" + ? "average" + : config.paceCaret === "pb" + ? "pb" + : "custom" + } pace${speed}
` + ); + } + + if (config.minWpm !== "off") { + $(".pageTest #testModesNotice").append( + `
min ${config.minWpmCustomSpeed} wpm
` + ); + } + + if (config.minAcc !== "off") { + $(".pageTest #testModesNotice").append( + `
min ${config.minAccCustom}% acc
` + ); + } + + if (activeFunBox !== "none") { + $(".pageTest #testModesNotice").append( + `
${activeFunBox.replace( + /_/g, + " " + )}
` + ); + } + + if (config.confidenceMode === "on") { + $(".pageTest #testModesNotice").append( + `
confidence
` + ); + } + if (config.confidenceMode === "max") { + $(".pageTest #testModesNotice").append( + `
max confidence
` + ); + } + + if (config.stopOnError != "off") { + $(".pageTest #testModesNotice").append( + `
stop on ${config.stopOnError}
` + ); + } + + if (config.layout !== "default") { + $(".pageTest #testModesNotice").append( + `
${config.layout}
` + ); + } + + if (config.oppositeShiftMode === "on") { + $(".pageTest #testModesNotice").append( + `
opposite shift
` + ); + } + + let tagsString = ""; + try { + DB.getSnapshot().tags.forEach((tag) => { + if (tag.active === true) { + tagsString += tag.name + ", "; + } + }); + + if (tagsString !== "") { + $(".pageTest #testModesNotice").append( + `
${tagsString.substring( + 0, + tagsString.length - 2 + )}
` + ); + } + } catch {} + + if (anim) { + $(".pageTest #testModesNotice") + .css("transition", "none") + .css("opacity", 0) + .animate( + { + opacity: 1, + }, + 125, + () => { + $(".pageTest #testModesNotice").css("transition", ".125s"); + } + ); + } +} diff --git a/src/js/global-dependencies.js b/src/js/global-dependencies.js index 49b087df8..b05b25670 100644 --- a/src/js/global-dependencies.js +++ b/src/js/global-dependencies.js @@ -14,6 +14,7 @@ import { hideBackgroundLoader, swapElements, accountIconLoading, + updateTestModesNotice, } from "./dom-util"; import * as Misc from "./misc"; import * as CloudFunctions from "./cloud-functions"; diff --git a/src/js/script.js b/src/js/script.js index b175afcd1..b21c25a2e 100644 --- a/src/js/script.js +++ b/src/js/script.js @@ -215,7 +215,13 @@ async function activateFunbox(funbox, mode) { settingsGroups.layout.updateButton(); } } - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); return true; } @@ -3014,7 +3020,13 @@ function restartTest(withSameWordset = false, nosave = false, event) { clearTimeout(timer); if ($("#commandLineWrapper").hasClass("hidden")) focusWords(); ChartController.result.update(); - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); pageTransition = false; // console.log(TestStats.incompleteSeconds); // console.log(TestStats.restartCount); @@ -3140,7 +3152,13 @@ function setMode(mode, nosave) { activeFunBox === "ascii" ) { activeFunBox = "none"; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); } $("#top .config .wordCount").addClass("hidden"); $("#top .config .time").addClass("hidden"); @@ -3567,157 +3585,6 @@ function hideEditTags() { } } -function updateTestModesNotice() { - let anim = false; - if ($(".pageTest #testModesNotice").text() === "") anim = true; - - $(".pageTest #testModesNotice").empty(); - - if (sameWordset) { - $(".pageTest #testModesNotice").append( - `
repeated
` - ); - } - - if (textHasTab) { - $(".pageTest #testModesNotice").append( - `
shift + tab to restart
` - ); - } - - if (config.mode === "zen") { - $(".pageTest #testModesNotice").append( - `
shift + enter to finish zen
` - ); - } - - // /^[0-9a-zA-Z_.-]+$/.test(name); - - if (/_\d+k$/g.test(config.language) && config.mode !== "quote") { - $(".pageTest #testModesNotice").append( - `
${config.language.replace( - /_/g, - " " - )}
` - ); - } - - if (config.difficulty === "expert") { - $(".pageTest #testModesNotice").append( - `
expert
` - ); - } else if (config.difficulty === "master") { - $(".pageTest #testModesNotice").append( - `
master
` - ); - } - - if (config.blindMode) { - $(".pageTest #testModesNotice").append( - `
blind
` - ); - } - - if (config.paceCaret !== "off") { - let speed = ""; - try { - speed = ` (${Math.round(paceCaret.wpm)} wpm)`; - } catch {} - $(".pageTest #testModesNotice").append( - `
${ - config.paceCaret === "average" - ? "average" - : config.paceCaret === "pb" - ? "pb" - : "custom" - } pace${speed}
` - ); - } - - if (config.minWpm !== "off") { - $(".pageTest #testModesNotice").append( - `
min ${config.minWpmCustomSpeed} wpm
` - ); - } - - if (config.minAcc !== "off") { - $(".pageTest #testModesNotice").append( - `
min ${config.minAccCustom}% acc
` - ); - } - - if (activeFunBox !== "none") { - $(".pageTest #testModesNotice").append( - `
${activeFunBox.replace( - /_/g, - " " - )}
` - ); - } - - if (config.confidenceMode === "on") { - $(".pageTest #testModesNotice").append( - `
confidence
` - ); - } - if (config.confidenceMode === "max") { - $(".pageTest #testModesNotice").append( - `
max confidence
` - ); - } - - if (config.stopOnError != "off") { - $(".pageTest #testModesNotice").append( - `
stop on ${config.stopOnError}
` - ); - } - - if (config.layout !== "default") { - $(".pageTest #testModesNotice").append( - `
${config.layout}
` - ); - } - - if (config.oppositeShiftMode === "on") { - $(".pageTest #testModesNotice").append( - `
opposite shift
` - ); - } - - let tagsString = ""; - try { - DB.getSnapshot().tags.forEach((tag) => { - if (tag.active === true) { - tagsString += tag.name + ", "; - } - }); - - if (tagsString !== "") { - $(".pageTest #testModesNotice").append( - `
${tagsString.substring( - 0, - tagsString.length - 2 - )}
` - ); - } - } catch {} - - if (anim) { - $(".pageTest #testModesNotice") - .css("transition", "none") - .css("opacity", 0) - .animate( - { - opacity: 1, - }, - 125, - () => { - $(".pageTest #testModesNotice").css("transition", ".125s"); - } - ); - } -} - $("#tagsWrapper").click((e) => { if ($(e.target).attr("id") === "tagsWrapper") { hideEditTags(); @@ -4121,7 +3988,13 @@ async function initPaceCaret() { timeout: null, }; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); } function movePaceCaret(expectedStepEnd) { diff --git a/src/js/settings.js b/src/js/settings.js index 37bd50877..ce3d2e8c1 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -755,7 +755,13 @@ function toggleTag(tagid, nosave = false) { } } }); - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveActiveTagsToCookie(); } diff --git a/src/js/userconfig.js b/src/js/userconfig.js index 19e5a9aab..6fa9e6293 100644 --- a/src/js/userconfig.js +++ b/src/js/userconfig.js @@ -227,7 +227,13 @@ function setDifficulty(diff, nosave) { } config.difficulty = diff; if (!nosave) restartTest(false, nosave); - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveConfigToCookie(); } @@ -247,7 +253,13 @@ function toggleBlindMode() { blind = false; } config.blindMode = blind; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); saveConfigToCookie(); } @@ -256,7 +268,13 @@ function setBlindMode(blind, nosave) { blind = false; } config.blindMode = blind; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveConfigToCookie(); } @@ -324,7 +342,13 @@ function setStopOnError(soe, nosave) { if (config.stopOnError !== "off") { config.confidenceMode = "off"; } - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveConfigToCookie(); } @@ -401,7 +425,13 @@ function setPaceCaret(val, nosave) { // val = "off"; // } config.paceCaret = val; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); initPaceCaret(nosave); if (!nosave) saveConfigToCookie(); } @@ -420,7 +450,13 @@ function setMinWpm(minwpm, nosave) { minwpm = "off"; } config.minWpm = minwpm; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveConfigToCookie(); } @@ -438,7 +474,13 @@ function setMinAcc(min, nosave) { min = "off"; } config.minAcc = min; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveConfigToCookie(); } @@ -1040,7 +1082,13 @@ function setConfidenceMode(cm, nosave) { config.stopOnError = "off"; } - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (!nosave) saveConfigToCookie(); } @@ -1298,7 +1346,13 @@ function setLayout(layout, nosave) { layout = "qwerty"; } config.layout = layout; - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); if (config.keymapLayout === "overrideSync") { refreshKeymapKeys(config.keymapLayout); } @@ -1742,5 +1796,11 @@ function applyConfig(configObj) { $("#nitropay_ad_about").remove(); } } - updateTestModesNotice(); + updateTestModesNotice( + sameWordset, + textHasTab, + paceCaret, + activeFunBox, + config + ); }