diff --git a/frontend/src/ts/popups/quote-search-popup.ts b/frontend/src/ts/popups/quote-search-popup.ts index f02191c5e..b02f2059e 100644 --- a/frontend/src/ts/popups/quote-search-popup.ts +++ b/frontend/src/ts/popups/quote-search-popup.ts @@ -20,15 +20,10 @@ import * as Loader from "../elements/loader"; import * as Skeleton from "../utils/skeleton"; import { isPopupVisible } from "../utils/misc"; import SlimSelect from "slim-select"; +import * as TestState from "../test/test-state"; const wrapperId = "quoteSearchPopupWrapper"; -export let selectedId = 1; - -export function setSelectedId(val: number): void { - selectedId = val; -} - const searchServiceCache: Record> = {}; const pageSize = 100; @@ -298,7 +293,6 @@ function hide(noAnim = false, focusWords = true): void { if (focusWords) { TestUI.focusWords(); $("#quoteSearchPopup .quoteLengthFilter").val([]); - $("#quoteSearchPopup .quoteLengthFilter").trigger("change"); Skeleton.remove(wrapperId); } } @@ -315,7 +309,7 @@ export function apply(val: number): boolean { let ret; if (val !== null && !isNaN(val) && val >= 0) { UpdateConfig.setQuoteLength(-2 as SharedTypes.Config.QuoteLength, false); - selectedId = val; + TestState.setSelectedQuoteId(val); ManualRestart.set(); ret = true; } else { diff --git a/frontend/src/ts/test/test-logic.ts b/frontend/src/ts/test/test-logic.ts index d1c983fb9..c71e12939 100644 --- a/frontend/src/ts/test/test-logic.ts +++ b/frontend/src/ts/test/test-logic.ts @@ -1457,7 +1457,7 @@ $("#popups").on( return; } const sid = parseInt($(e.currentTarget).attr("id") ?? ""); - QuoteSearchPopup.setSelectedId(sid); + TestState.setSelectedQuoteId(sid); if (QuoteSearchPopup.apply(sid)) restart(); } ); diff --git a/frontend/src/ts/test/test-state.ts b/frontend/src/ts/test/test-state.ts index 4ca81b417..e996aec00 100644 --- a/frontend/src/ts/test/test-state.ts +++ b/frontend/src/ts/test/test-state.ts @@ -4,6 +4,7 @@ export let isActive = false; export let activeChallenge: null | MonkeyTypes.Challenge = null; export let savingEnabled = true; export let bailedOut = false; +export let selectedQuoteId = 1; export function setRepeated(tf: boolean): void { isRepeated = tf; @@ -28,3 +29,7 @@ export function setSaving(val: boolean): void { export function setBailedOut(tf: boolean): void { bailedOut = tf; } + +export function setSelectedQuoteId(id: number): void { + selectedQuoteId = id; +} diff --git a/frontend/src/ts/test/words-generator.ts b/frontend/src/ts/test/words-generator.ts index 5ce420c80..b6349529b 100644 --- a/frontend/src/ts/test/words-generator.ts +++ b/frontend/src/ts/test/words-generator.ts @@ -3,13 +3,13 @@ import * as FunboxList from "./funbox/funbox-list"; import * as CustomText from "./custom-text"; import * as Wordset from "./wordset"; import QuotesController from "../controllers/quotes-controller"; -import * as QuoteSearchPopup from "../popups/quote-search-popup"; import * as TestWords from "./test-words"; import * as BritishEnglish from "./british-english"; import * as LazyMode from "./lazy-mode"; import * as EnglishPunctuation from "./english-punctuation"; import * as PractiseWords from "./practise-words"; import * as Misc from "../utils/misc"; +import * as TestState from "../test/test-state"; function shouldCapitalize(lastChar: string): boolean { return /[?!.؟]/.test(lastChar); @@ -576,12 +576,12 @@ async function generateQuoteWords( let rq: MonkeyTypes.Quote; if (Config.quoteLength.includes(-2) && Config.quoteLength.length === 1) { const targetQuote = QuotesController.getQuoteById( - QuoteSearchPopup.selectedId + TestState.selectedQuoteId ); if (targetQuote === undefined) { UpdateConfig.setQuoteLength(-1); throw new WordGenError( - `Quote ${QuoteSearchPopup.selectedId} does not exist` + `Quote ${TestState.selectedQuoteId} does not exist` ); } rq = targetQuote; diff --git a/frontend/src/ts/utils/url-handler.ts b/frontend/src/ts/utils/url-handler.ts index 6366f4874..66a0a4ced 100644 --- a/frontend/src/ts/utils/url-handler.ts +++ b/frontend/src/ts/utils/url-handler.ts @@ -2,7 +2,7 @@ import * as Misc from "./misc"; import Config, * as UpdateConfig from "../config"; import * as Notifications from "../elements/notifications"; import { decompressFromURI } from "lz-ts"; -import * as QuoteSearchPopup from "../popups/quote-search-popup"; +import * as TestState from "../test/test-state"; import * as ManualRestart from "../test/manual-restart-tracker"; import * as CustomText from "../test/custom-text"; import Ape from "../ape"; @@ -138,7 +138,7 @@ export function loadTestSettingsFromUrl(getOverride?: string): void { UpdateConfig.setWordCount(parseInt(de[1], 10), true); } else if (Config.mode === "quote") { UpdateConfig.setQuoteLength(-2, false); - QuoteSearchPopup.setSelectedId(parseInt(de[1], 10)); + TestState.setSelectedQuoteId(parseInt(de[1], 10)); ManualRestart.set(); } applied["mode2"] = de[1];