mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-11-08 05:03:39 +08:00
fix(custom text): preserve state of the textarea when applying (sanidhyas3s) (#5186)
This commit is contained in:
parent
7c4435e14b
commit
b0cf7bc4be
6 changed files with 26 additions and 19 deletions
|
|
@ -248,7 +248,7 @@ export async function setup(challengeName: string): Promise<boolean> {
|
|||
UpdateConfig.setDifficulty("normal", true);
|
||||
} else if (challenge.type === "customText") {
|
||||
CustomText.setDelimiter(" ");
|
||||
CustomText.setPopupTextareaState(challenge.parameters[0] as string);
|
||||
CustomText.setPopupTextareaState(challenge.parameters[0] as string, true);
|
||||
CustomText.setText((challenge.parameters[0] as string).split(" "));
|
||||
CustomText.setIsTimeRandom(false);
|
||||
CustomText.setIsSectionRandom(false);
|
||||
|
|
@ -269,7 +269,7 @@ export async function setup(challengeName: string): Promise<boolean> {
|
|||
text = text.replace(/[\n\r\t ]/gm, " ");
|
||||
text = text.replace(/ +/gm, " ");
|
||||
CustomText.setDelimiter(" ");
|
||||
CustomText.setPopupTextareaState(text);
|
||||
CustomText.setPopupTextareaState(text, true);
|
||||
CustomText.setText(text.split(" "));
|
||||
CustomText.setIsWordRandom(false);
|
||||
CustomText.setIsSectionRandom(false);
|
||||
|
|
|
|||
|
|
@ -142,17 +142,7 @@ function hide(options = {} as HideOptions): void {
|
|||
options.noAnim ? 0 : 125,
|
||||
() => {
|
||||
if (options.resetState) {
|
||||
const newText = CustomText.text.map((word) => {
|
||||
if (word.endsWith("|")) {
|
||||
word = word.slice(0, -1);
|
||||
}
|
||||
return word;
|
||||
});
|
||||
|
||||
CustomText.setPopupTextareaState(
|
||||
// CustomText.text.join(CustomText.delimiter)
|
||||
newText.join(CustomText.delimiter)
|
||||
);
|
||||
CustomText.setPopupTextareaStateToSaved();
|
||||
}
|
||||
|
||||
$(wrapper).addClass("hidden");
|
||||
|
|
@ -236,6 +226,8 @@ function apply(): void {
|
|||
return;
|
||||
}
|
||||
|
||||
CustomText.setPopupTextareaState(text, true);
|
||||
|
||||
text = text.trim();
|
||||
// text = text.replace(/[\r]/gm, " ");
|
||||
|
||||
|
|
|
|||
|
|
@ -16,10 +16,18 @@ export let word = -1;
|
|||
export let time = -1;
|
||||
export let section = -1;
|
||||
export let delimiter = " ";
|
||||
export let popupTextareaState = "The quick brown fox jumps over the lazy dog";
|
||||
export let popupTextareaState = text.join(" ");
|
||||
export let savedPopupTextareaState = popupTextareaState;
|
||||
|
||||
export function setPopupTextareaState(value: string): void {
|
||||
export function setPopupTextareaStateToSaved(): void {
|
||||
popupTextareaState = savedPopupTextareaState;
|
||||
}
|
||||
|
||||
export function setPopupTextareaState(value: string, save = false): void {
|
||||
popupTextareaState = value;
|
||||
if (save) {
|
||||
savedPopupTextareaState = value;
|
||||
}
|
||||
}
|
||||
|
||||
export function setText(txt: string[]): void {
|
||||
|
|
|
|||
|
|
@ -116,7 +116,10 @@ export function init(missed: boolean, slow: boolean): boolean {
|
|||
}
|
||||
|
||||
UpdateConfig.setMode("custom", true);
|
||||
CustomText.setPopupTextareaState(newCustomText.join(CustomText.delimiter));
|
||||
CustomText.setPopupTextareaState(
|
||||
newCustomText.join(CustomText.delimiter),
|
||||
true
|
||||
);
|
||||
CustomText.setText(newCustomText);
|
||||
CustomText.setIsWordRandom(true);
|
||||
CustomText.setIsTimeRandom(false);
|
||||
|
|
|
|||
|
|
@ -1064,13 +1064,16 @@ export async function finish(difficultyFailed = false): Promise<void> {
|
|||
|
||||
let newText = CustomText.getCustomText(customTextName, true);
|
||||
newText = newText.slice(newProgress);
|
||||
CustomText.setPopupTextareaState(newText.join(CustomText.delimiter));
|
||||
CustomText.setPopupTextareaState(
|
||||
newText.join(CustomText.delimiter),
|
||||
true
|
||||
);
|
||||
CustomText.setText(newText);
|
||||
} else {
|
||||
// They finished the test
|
||||
CustomText.setCustomTextLongProgress(customTextName, 0);
|
||||
const text = CustomText.getCustomText(customTextName, true);
|
||||
CustomText.setPopupTextareaState(text.join(CustomText.delimiter));
|
||||
CustomText.setPopupTextareaState(text.join(CustomText.delimiter), true);
|
||||
CustomText.setText(text);
|
||||
Notifications.add("Long custom text completed", 1, {
|
||||
duration: 5,
|
||||
|
|
|
|||
|
|
@ -147,7 +147,8 @@ export function loadTestSettingsFromUrl(getOverride?: string): void {
|
|||
if (de[2] !== null) {
|
||||
const customTextSettings = de[2];
|
||||
CustomText.setPopupTextareaState(
|
||||
customTextSettings.text.join(customTextSettings.delimiter)
|
||||
customTextSettings.text.join(customTextSettings.delimiter),
|
||||
true
|
||||
);
|
||||
CustomText.setText(customTextSettings.text);
|
||||
CustomText.setIsTimeRandom(customTextSettings.isTimeRandom);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue