mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-10-20 20:46:15 +08:00
added the ability to shift click qutoe lengths to select multiple
This commit is contained in:
parent
dadfd13dd3
commit
34e3842c65
2 changed files with 53 additions and 22 deletions
|
|
@ -599,29 +599,45 @@ async function initWords() {
|
|||
return;
|
||||
}
|
||||
|
||||
let group = config.quoteLength;
|
||||
|
||||
if (config.quoteLength === -1) {
|
||||
group = Math.floor(Math.random() * quotes.groups.length);
|
||||
while (quotes.groups[group].length === 0) {
|
||||
group = Math.floor(Math.random() * quotes.groups.length);
|
||||
let quoteLengths = config.quoteLength;
|
||||
let groupIndex;
|
||||
if (quoteLengths.length > 1) {
|
||||
groupIndex =
|
||||
quoteLengths[Math.floor(Math.random() * quoteLengths.length)];
|
||||
while (quotes.groups[groupIndex].length === 0) {
|
||||
groupIndex =
|
||||
quoteLengths[Math.floor(Math.random() * quoteLengths.length)];
|
||||
}
|
||||
} else {
|
||||
if (quotes.groups[group].length === 0) {
|
||||
groupIndex = quoteLengths[0];
|
||||
if (quotes.groups[groupIndex].length === 0) {
|
||||
Notifications.add("No quotes found for selected quote length", 0);
|
||||
testRestarting = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// if (config.quoteLength === -1) {
|
||||
// group = Math.floor(Math.random() * quotes.groups.length);
|
||||
// while (quotes.groups[group].length === 0) {
|
||||
// group = Math.floor(Math.random() * quotes.groups.length);
|
||||
// }
|
||||
// } else {
|
||||
// if (quotes.groups[group].length === 0) {
|
||||
// Notifications.add("No quotes found for selected quote length", 0);
|
||||
// testRestarting = false;
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
let rq =
|
||||
quotes.groups[group][
|
||||
Math.floor(Math.random() * quotes.groups[group].length)
|
||||
quotes.groups[groupIndex][
|
||||
Math.floor(Math.random() * quotes.groups[groupIndex].length)
|
||||
];
|
||||
if (randomQuote != null && rq.id === randomQuote.id) {
|
||||
rq =
|
||||
quotes.groups[group][
|
||||
Math.floor(Math.random() * quotes.groups[group].length)
|
||||
quotes.groups[groupIndex][
|
||||
Math.floor(Math.random() * quotes.groups[groupIndex].length)
|
||||
];
|
||||
}
|
||||
randomQuote = rq;
|
||||
|
|
@ -4737,7 +4753,10 @@ $(document).on("click", "#top .config .time .text-button", (e) => {
|
|||
|
||||
$(document).on("click", "#top .config .quoteLength .text-button", (e) => {
|
||||
let len = $(e.currentTarget).attr("quoteLength");
|
||||
setQuoteLength(len);
|
||||
if (len == -1) {
|
||||
len = [0, 1, 2, 3];
|
||||
}
|
||||
setQuoteLength(len, false, e.shiftKey);
|
||||
manualRestart = true;
|
||||
restartTest();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ let defaultConfig = {
|
|||
words: 50,
|
||||
time: 30,
|
||||
mode: "time",
|
||||
quoteLength: 1,
|
||||
quoteLength: [1],
|
||||
language: "english",
|
||||
fontSize: 15,
|
||||
freedomMode: false,
|
||||
|
|
@ -815,18 +815,30 @@ function setTimeConfig(time, nosave) {
|
|||
}
|
||||
|
||||
//quote length
|
||||
function setQuoteLength(len, nosave) {
|
||||
if (len !== null && !isNaN(len) && len >= -1 && len <= 3) {
|
||||
function setQuoteLength(len, nosave, multipleMode) {
|
||||
if (Array.isArray(len)) {
|
||||
//config load
|
||||
config.quoteLength = len;
|
||||
} else {
|
||||
len = 1;
|
||||
if (!Array.isArray(config.quoteLength)) config.quoteLength = [];
|
||||
if (len !== null && !isNaN(len) && len >= -1 && len <= 3) {
|
||||
} else {
|
||||
len = 1;
|
||||
}
|
||||
len = parseInt(len);
|
||||
if (multipleMode) {
|
||||
if (!config.quoteLength.includes(len)) config.quoteLength.push(len);
|
||||
} else {
|
||||
config.quoteLength = [len];
|
||||
}
|
||||
}
|
||||
len = parseInt(len);
|
||||
if (!nosave) setMode("quote", nosave);
|
||||
config.quoteLength = len;
|
||||
// if (!nosave) setMode("quote", nosave);
|
||||
$("#top .config .quoteLength .text-button").removeClass("active");
|
||||
$(
|
||||
"#top .config .quoteLength .text-button[quoteLength='" + len + "']"
|
||||
).addClass("active");
|
||||
config.quoteLength.forEach((ql) => {
|
||||
$(
|
||||
"#top .config .quoteLength .text-button[quoteLength='" + ql + "']"
|
||||
).addClass("active");
|
||||
});
|
||||
if (!nosave) saveConfigToCookie();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue