diff --git a/src/pages/index.astro b/src/pages/index.astro index cda39c8..b0e7f5c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -53,14 +53,14 @@ const description = "An AI that responds with 'Huh'."; Advanced responses (highly experimental) @@ -87,11 +87,11 @@ const description = "An AI that responds with 'Huh'."; const messageTemplate = document.querySelector("#message-template") as HTMLTemplateElement | null; const optionsContainer = document.querySelector(".options"); - const advancedResponsesCheckbox = optionsContainer?.querySelector('input[name="advanced-responses"]') as HTMLInputElement | null; + const advancedResponsesCheckbox = optionsContainer?.querySelector('input[name="advancedResponses"]') as HTMLInputElement | null; advancedResponsesCheckbox?.addEventListener("change", () => { toggleAdvancedResponses(advancedResponsesCheckbox.checked); }); - const thinkingModeCheckbox = optionsContainer?.querySelector('input[name="thinking-mode"]') as HTMLInputElement | null; + const thinkingModeCheckbox = optionsContainer?.querySelector('input[name="thinkingMode"]') as HTMLInputElement | null; thinkingModeCheckbox?.addEventListener("change", () => { toggleThinkingMode(thinkingModeCheckbox.checked); }); @@ -101,9 +101,7 @@ const description = "An AI that responds with 'Huh'."; thinkingMode: false }; - const options = getOptions(); - toggleAdvancedResponses(options.advancedResponses) - toggleThinkingMode(options.thinkingMode) + const options = initOptions(); messageInput?.addEventListener("input", () => { if (!sendButton) return; @@ -184,19 +182,34 @@ const description = "An AI that responds with 'Huh'."; } function toggleAdvancedResponses(enabled: boolean) { - const advancedResponsesCheckbox = document.querySelector('.options input[name="advanced-responses"]') as HTMLInputElement | null; - if (!advancedResponsesCheckbox) return; - options["advancedResponses"] = advancedResponsesCheckbox.checked; - advancedResponsesCheckbox.checked = options.advancedResponses; + options["advancedResponses"] = enabled; saveOptions(); + const advancedResponsesCheckbox = document.querySelector('.options input[name="advancedResponses"]') as HTMLInputElement | null; + if (!advancedResponsesCheckbox) return; + advancedResponsesCheckbox.checked = options.advancedResponses; } function toggleThinkingMode(enabled: boolean) { - const checkbox = document.querySelector('.options input[name="thinking-mode"]') as HTMLInputElement | null; + options["thinkingMode"] = enabled; + saveOptions(); + const checkbox = document.querySelector('.options input[name="thinkingMode"]') as HTMLInputElement | null; if (!checkbox) return; - options["thinkingMode"] = checkbox.checked; checkbox.checked = options.thinkingMode; - saveOptions(); } + /** + * Initializes the options UI based on the saved options. + */ + function initOptions() { + const options = getOptions(); + for (const key in options) { + const value = options[key]; + if (typeof value === "boolean") { + const checkbox = document.querySelector(`.options input[name="${key}"]`) as HTMLInputElement | null; + if (checkbox) checkbox.checked = value; + } + } + return options; + } +