mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2024-09-22 16:26:18 +08:00
remembering pre funbox settings. no longer using a separate 'savedlayout' configj. closes #1085
This commit is contained in:
parent
40beef23a6
commit
3fc5477098
|
@ -54,7 +54,8 @@ if (Object.keys(layouts).length > 0) {
|
|||
id: "changeLayout" + Misc.capitalizeFirstLetter(layout),
|
||||
display: layout.replace(/_/g, " "),
|
||||
exec: () => {
|
||||
UpdateConfig.setSavedLayout(layout);
|
||||
// UpdateConfig.setSavedLayout(layout);
|
||||
UpdateConfig.setLayout(layout);
|
||||
TestLogic.restart();
|
||||
},
|
||||
});
|
||||
|
|
|
@ -478,7 +478,7 @@ export function setPaceCaret(val, nosave) {
|
|||
if (val == undefined) {
|
||||
val = "off";
|
||||
}
|
||||
if ( document.readyState === "complete") {
|
||||
if (document.readyState === "complete") {
|
||||
if (val == "pb" && firebase.auth().currentUser === null) {
|
||||
Notifications.add("PB pace caret is unavailable without an account", 0);
|
||||
return;
|
||||
|
@ -1327,13 +1327,13 @@ export function setLayout(layout, nosave) {
|
|||
if (!nosave) saveToCookie();
|
||||
}
|
||||
|
||||
export function setSavedLayout(layout, nosave) {
|
||||
if (layout == null || layout == undefined) {
|
||||
layout = "qwerty";
|
||||
}
|
||||
config.savedLayout = layout;
|
||||
setLayout(layout, nosave);
|
||||
}
|
||||
// export function setSavedLayout(layout, nosave) {
|
||||
// if (layout == null || layout == undefined) {
|
||||
// layout = "qwerty";
|
||||
// }
|
||||
// config.savedLayout = layout;
|
||||
// setLayout(layout, nosave);
|
||||
// }
|
||||
|
||||
export function setFontSize(fontSize, nosave) {
|
||||
if (fontSize == null || fontSize == undefined) {
|
||||
|
@ -1436,7 +1436,8 @@ export function apply(configObj) {
|
|||
setWordCount(configObj.words, true);
|
||||
setLanguage(configObj.language, true);
|
||||
setCapsLockBackspace(configObj.capsLockBackspace, true);
|
||||
setSavedLayout(configObj.savedLayout, true);
|
||||
// setSavedLayout(configObj.savedLayout, true);
|
||||
setLayout(configObj.layout, true);
|
||||
setFontSize(configObj.fontSize, true);
|
||||
setFreedomMode(configObj.freedomMode, true);
|
||||
setCaretStyle(configObj.caretStyle, true);
|
||||
|
|
|
@ -219,7 +219,7 @@ async function initGroups() {
|
|||
"capsLockBackspace",
|
||||
UpdateConfig.setCapsLockBackspace
|
||||
);
|
||||
groups.layout = new SettingsGroup("layout", UpdateConfig.setSavedLayout);
|
||||
groups.layout = new SettingsGroup("layout", UpdateConfig.layout);
|
||||
groups.language = new SettingsGroup("language", UpdateConfig.setLanguage);
|
||||
groups.fontSize = new SettingsGroup("fontSize", UpdateConfig.setFontSize);
|
||||
groups.pageWidth = new SettingsGroup("pageWidth", UpdateConfig.setPageWidth);
|
||||
|
|
|
@ -12,6 +12,24 @@ export let modeSaved = null;
|
|||
let memoryTimer = null;
|
||||
let memoryInterval = null;
|
||||
|
||||
let settingsMemory = {};
|
||||
|
||||
function rememberSetting(settingName, value, setFunction) {
|
||||
settingsMemory[settingName] ??= {
|
||||
value,
|
||||
setFunction,
|
||||
};
|
||||
}
|
||||
|
||||
function loadMemory() {
|
||||
Notifications.add("Reverting funbox settings", 0);
|
||||
Object.keys(settingsMemory).forEach((setting) => {
|
||||
setting = settingsMemory[setting];
|
||||
setting.setFunction(setting.value, true);
|
||||
});
|
||||
settingsMemory = {};
|
||||
}
|
||||
|
||||
function showMemoryTimer() {
|
||||
$("#typingTest #memoryTimer").stop(true, true).animate(
|
||||
{
|
||||
|
@ -112,6 +130,11 @@ export async function activate(funbox, mode) {
|
|||
}
|
||||
|
||||
if (funbox === "simon_says") {
|
||||
rememberSetting(
|
||||
"keymapMode",
|
||||
Config.keymapMode,
|
||||
UpdateConfig.setKeymapMode
|
||||
);
|
||||
UpdateConfig.setKeymapMode("next");
|
||||
Settings.groups.keymapMode.updateButton();
|
||||
TestLogic.restart();
|
||||
|
@ -122,45 +145,82 @@ export async function activate(funbox, mode) {
|
|||
funbox === "read_ahead_easy" ||
|
||||
funbox === "read_ahead_hard"
|
||||
) {
|
||||
rememberSetting(
|
||||
"highlightMode",
|
||||
Config.highlightMode,
|
||||
UpdateConfig.setHighlightMode
|
||||
);
|
||||
UpdateConfig.setHighlightMode("letter", true);
|
||||
TestLogic.restart();
|
||||
}
|
||||
} else if (mode === "script") {
|
||||
if (funbox === "tts") {
|
||||
$("#funBoxTheme").attr("href", `funbox/simon_says.css`);
|
||||
rememberSetting(
|
||||
"keymapMode",
|
||||
Config.keymapMode,
|
||||
UpdateConfig.setKeymapMode
|
||||
);
|
||||
UpdateConfig.setKeymapMode("off");
|
||||
Settings.groups.keymapMode.updateButton();
|
||||
TestLogic.restart();
|
||||
} else if (funbox === "layoutfluid") {
|
||||
rememberSetting(
|
||||
"keymapMode",
|
||||
Config.keymapMode,
|
||||
UpdateConfig.setKeymapMode
|
||||
);
|
||||
UpdateConfig.setKeymapMode("next");
|
||||
Settings.groups.keymapMode.updateButton();
|
||||
UpdateConfig.setSavedLayout(Config.layout);
|
||||
// UpdateConfig.setSavedLayout(Config.layout);
|
||||
rememberSetting("layout", Config.layout, UpdateConfig.setLayout);
|
||||
UpdateConfig.setLayout("qwerty");
|
||||
Settings.groups.layout.updateButton();
|
||||
rememberSetting(
|
||||
"keymapLayout",
|
||||
Config.keymapLayout,
|
||||
UpdateConfig.setKeymapLayout
|
||||
);
|
||||
UpdateConfig.setKeymapLayout("qwerty");
|
||||
Settings.groups.keymapLayout.updateButton();
|
||||
TestLogic.restart();
|
||||
} else if (funbox === "memory") {
|
||||
rememberSetting("mode", Config.mode, UpdateConfig.setMode);
|
||||
UpdateConfig.setMode("words");
|
||||
rememberSetting(
|
||||
"showAllLines",
|
||||
Config.showAllLines,
|
||||
UpdateConfig.setShowAllLines
|
||||
);
|
||||
UpdateConfig.setShowAllLines(true, true);
|
||||
TestLogic.restart(false, true);
|
||||
if (Config.keymapMode === "next") {
|
||||
rememberSetting(
|
||||
"keymapMode",
|
||||
Config.keymapMode,
|
||||
UpdateConfig.setKeymapMode
|
||||
);
|
||||
UpdateConfig.setKeymapMode("react");
|
||||
}
|
||||
} else if (funbox === "nospace") {
|
||||
$("#words").addClass("nospace");
|
||||
rememberSetting(
|
||||
"highlightMode",
|
||||
Config.highlightMode,
|
||||
UpdateConfig.setHighlightMode
|
||||
);
|
||||
UpdateConfig.setHighlightMode("letter", true);
|
||||
TestLogic.restart(false, true);
|
||||
}
|
||||
active = funbox;
|
||||
}
|
||||
|
||||
if (funbox !== "layoutfluid" || mode !== "script") {
|
||||
if (Config.layout !== Config.savedLayout) {
|
||||
UpdateConfig.setLayout(Config.savedLayout);
|
||||
Settings.groups.layout.updateButton();
|
||||
}
|
||||
}
|
||||
// if (funbox !== "layoutfluid" || mode !== "script") {
|
||||
// if (Config.layout !== Config.savedLayout) {
|
||||
// UpdateConfig.setLayout(Config.savedLayout);
|
||||
// Settings.groups.layout.updateButton();
|
||||
// }
|
||||
// }
|
||||
TestUI.updateModesNotice();
|
||||
return true;
|
||||
}
|
||||
|
@ -172,6 +232,7 @@ export function setFunbox(funbox, mode) {
|
|||
);
|
||||
return false;
|
||||
}
|
||||
if (funbox === "none") loadMemory();
|
||||
funboxSaved = funbox;
|
||||
modeSaved = mode;
|
||||
active = funbox;
|
||||
|
|
Loading…
Reference in a new issue