mirror of
https://github.com/YouHaveTrouble/HmmAI.git
synced 2026-05-12 06:16:56 +00:00
fix options not saving between refreshes
improved options handling
This commit is contained in:
+27
-14
@@ -53,14 +53,14 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
<span>Advanced responses (highly experimental)</span>
|
<span>Advanced responses (highly experimental)</span>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
name="advanced-responses"
|
name="advancedResponses"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<span>Thinking mode (Solves impossible problems)</span>
|
<span>Thinking mode (Solves impossible problems)</span>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
name="thinking-mode"
|
name="thinkingMode"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@@ -87,11 +87,11 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
const messageTemplate = document.querySelector("#message-template") as HTMLTemplateElement | null;
|
const messageTemplate = document.querySelector("#message-template") as HTMLTemplateElement | null;
|
||||||
|
|
||||||
const optionsContainer = document.querySelector(".options");
|
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", () => {
|
advancedResponsesCheckbox?.addEventListener("change", () => {
|
||||||
toggleAdvancedResponses(advancedResponsesCheckbox.checked);
|
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", () => {
|
thinkingModeCheckbox?.addEventListener("change", () => {
|
||||||
toggleThinkingMode(thinkingModeCheckbox.checked);
|
toggleThinkingMode(thinkingModeCheckbox.checked);
|
||||||
});
|
});
|
||||||
@@ -101,9 +101,7 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
thinkingMode: false
|
thinkingMode: false
|
||||||
};
|
};
|
||||||
|
|
||||||
const options = getOptions();
|
const options = initOptions();
|
||||||
toggleAdvancedResponses(options.advancedResponses)
|
|
||||||
toggleThinkingMode(options.thinkingMode)
|
|
||||||
|
|
||||||
messageInput?.addEventListener("input", () => {
|
messageInput?.addEventListener("input", () => {
|
||||||
if (!sendButton) return;
|
if (!sendButton) return;
|
||||||
@@ -184,19 +182,34 @@ const description = "An AI that responds with 'Huh'.";
|
|||||||
}
|
}
|
||||||
|
|
||||||
function toggleAdvancedResponses(enabled: boolean) {
|
function toggleAdvancedResponses(enabled: boolean) {
|
||||||
const advancedResponsesCheckbox = document.querySelector('.options input[name="advanced-responses"]') as HTMLInputElement | null;
|
options["advancedResponses"] = enabled;
|
||||||
if (!advancedResponsesCheckbox) return;
|
|
||||||
options["advancedResponses"] = advancedResponsesCheckbox.checked;
|
|
||||||
advancedResponsesCheckbox.checked = options.advancedResponses;
|
|
||||||
saveOptions();
|
saveOptions();
|
||||||
|
const advancedResponsesCheckbox = document.querySelector('.options input[name="advancedResponses"]') as HTMLInputElement | null;
|
||||||
|
if (!advancedResponsesCheckbox) return;
|
||||||
|
advancedResponsesCheckbox.checked = options.advancedResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleThinkingMode(enabled: boolean) {
|
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;
|
if (!checkbox) return;
|
||||||
options["thinkingMode"] = checkbox.checked;
|
|
||||||
checkbox.checked = options.thinkingMode;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user