summaryrefslogtreecommitdiff
path: root/src/popup/popup.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/popup/popup.js')
-rw-r--r--src/popup/popup.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/popup/popup.js b/src/popup/popup.js
index 612d0fd..eb213f5 100644
--- a/src/popup/popup.js
+++ b/src/popup/popup.js
@@ -46,6 +46,13 @@ function fillModels(models, selected) {
option.selected = true;
$model.append(option);
}
+ if (!selected && models.length > 0) {
+ // No model saved yet: explicitly select the first one so the UI value
+ // matches what will be used. Otherwise the browser auto-selects the
+ // first option visually while storage still has an empty model,
+ // which made translation fail until the user pressed Save.
+ $model.selectedIndex = 0;
+ }
}
function showStatus(message, isError) {
@@ -128,4 +135,13 @@ $openOptions.addEventListener('click', () => {
void (async () => {
await loadSettings();
await loadModels();
+ // If the model list loaded and no model is saved yet, persist the
+ // auto-selected first model so the stored settings match the UI.
+ if (knownModels.length > 0) {
+ const result = await browser.storage.local.get({ settings: null });
+ const stored = sanitizeSettings(result.settings || defaultSettings());
+ if (!stored.model) {
+ await persist({ model: $model.value });
+ }
+ }
})(); \ No newline at end of file