feat(hermes): restore localStorage for model and voice settings
- Save selected voice to localStorage and restore on modal open - Improve model selection restoration from localStorage - Save settings panel open/close state - Add console logging for settings changes - Maintain user preferences across sessions
This commit is contained in:
parent
de112973e6
commit
76e168cecf
1 changed files with 30 additions and 6 deletions
36
src/ui.js
36
src/ui.js
|
|
@ -772,9 +772,20 @@ async function openHermesModalNew() {
|
|||
modelSelect.appendChild(option);
|
||||
});
|
||||
|
||||
// Set current selected model if available
|
||||
// Load saved model from localStorage or use current selection
|
||||
const savedModel = localStorage.getItem('selectedModel');
|
||||
const savedEndpoint = localStorage.getItem('selectedEndpoint');
|
||||
const currentModel = getSelectedModel();
|
||||
if (currentModel) {
|
||||
|
||||
if (savedModel && savedEndpoint) {
|
||||
const savedOption = Array.from(modelSelect.options).find(opt =>
|
||||
opt.textContent.includes(savedModel) && opt.textContent.includes(savedEndpoint)
|
||||
);
|
||||
if (savedOption) {
|
||||
modelSelect.value = savedOption.value;
|
||||
console.log("Restored saved model:", savedModel, "from endpoint:", savedEndpoint);
|
||||
}
|
||||
} else if (currentModel) {
|
||||
const currentOption = Array.from(modelSelect.options).find(opt =>
|
||||
opt.textContent.includes(currentModel)
|
||||
);
|
||||
|
|
@ -836,10 +847,19 @@ async function openHermesModalNew() {
|
|||
const option = document.createElement("option");
|
||||
option.value = voice;
|
||||
option.textContent = voice.charAt(0).toUpperCase() + voice.slice(1);
|
||||
if (index === 0) option.selected = true; // Set alloy as default
|
||||
voiceSelect.appendChild(option);
|
||||
});
|
||||
console.log("Voices loaded:", voices.length, "voices");
|
||||
|
||||
// Load saved voice from localStorage or default to alloy
|
||||
const savedVoice = localStorage.getItem('selectedVoice') || 'alloy';
|
||||
voiceSelect.value = savedVoice;
|
||||
console.log("Voices loaded:", voices.length, "voices, selected:", savedVoice);
|
||||
|
||||
// Save voice selection to localStorage when changed
|
||||
voiceSelect.onchange = () => {
|
||||
localStorage.setItem('selectedVoice', voiceSelect.value);
|
||||
console.log("Voice changed to:", voiceSelect.value);
|
||||
};
|
||||
|
||||
voiceSection.appendChild(voiceLabel);
|
||||
voiceSection.appendChild(voiceSelect);
|
||||
|
|
@ -919,12 +939,16 @@ async function openHermesModalNew() {
|
|||
settingsPanel.appendChild(actionsSection);
|
||||
settingsPanel.appendChild(fileInput);
|
||||
|
||||
// Toggle settings panel
|
||||
let settingsOpen = false;
|
||||
// Load and save settings panel state
|
||||
let settingsOpen = localStorage.getItem('hermesSettingsOpen') === 'true';
|
||||
settingsPanel.style.display = settingsOpen ? 'block' : 'none';
|
||||
menuBtn.style.background = settingsOpen ? 'rgba(255,255,255,0.3)' : 'rgba(255,255,255,0.2)';
|
||||
|
||||
menuBtn.onclick = () => {
|
||||
settingsOpen = !settingsOpen;
|
||||
settingsPanel.style.display = settingsOpen ? 'block' : 'none';
|
||||
menuBtn.style.background = settingsOpen ? 'rgba(255,255,255,0.3)' : 'rgba(255,255,255,0.2)';
|
||||
localStorage.setItem('hermesSettingsOpen', settingsOpen.toString());
|
||||
};
|
||||
|
||||
// Quick action buttons
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue