diff --git a/src/ui.js b/src/ui.js index 076ab77..1f98358 100644 --- a/src/ui.js +++ b/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