diff --git a/templates/chat.html b/templates/chat.html index f17d51a..4769ae3 100644 --- a/templates/chat.html +++ b/templates/chat.html @@ -431,6 +431,7 @@ document.addEventListener('DOMContentLoaded', (event) => { if (initialVoice) { voiceSelectDesktop.value = initialVoice; if (voiceSelectMobile) voiceSelectMobile.value = initialVoice; + console.log(`Voice restored from localStorage: ${initialVoice}`); } } @@ -499,20 +500,10 @@ document.addEventListener('DOMContentLoaded', (event) => { userHasScrolledUp = distanceFromBottom > 5; }); - // Load model and voice from localStorage only (not URL) - const storedModel = localStorage.getItem('selectedModel') || "None"; - const storedVoice = localStorage.getItem('selectedVoice'); - - // Set initial model and voice from localStorage or defaults - const initialModel = storedModel; - const initialVoice = storedVoice; - - modelSelectDesktop.value = initialModel; - // Voice is set by populateVoiceDropdown after voices are fetched - modelSelectMobile.value = initialModel; - - // Initial sync to ensure localStorage is updated with current values - syncDropdownsAndQueryString(); + // NOTE: Model and voice restoration happens in populateModelDropdown() and + // populateVoiceDropdown() AFTER the async fetch completes. Don't set values + // here or call syncDropdownsAndQueryString() - that would overwrite localStorage + // with empty values before the dropdowns are populated. // Add event listeners for desktop dropdowns modelSelectDesktop.addEventListener("change", () => {