summaryrefslogtreecommitdiff
path: root/src/options
diff options
context:
space:
mode:
Diffstat (limited to 'src/options')
-rw-r--r--src/options/options.html2
-rw-r--r--src/options/options.js10
2 files changed, 7 insertions, 5 deletions
diff --git a/src/options/options.html b/src/options/options.html
index b60e66b..7390c71 100644
--- a/src/options/options.html
+++ b/src/options/options.html
@@ -99,6 +99,6 @@
<p class="dev-link"><a href="../../tests/test.html" target="_blank" rel="noreferrer">開発者向け: テストを実行</a></p>
</main>
- <script src="options.js"></script>
+ <script type="module" src="options.js"></script>
</body>
</html> \ No newline at end of file
diff --git a/src/options/options.js b/src/options/options.js
index 606291b..b4fc349 100644
--- a/src/options/options.js
+++ b/src/options/options.js
@@ -1,10 +1,9 @@
'use strict';
-import { LANGUAGES, ERROR_CODES, RUNTIME_MESSAGES } from '../shared/constants.js';
+import { LANGUAGES, ERROR_CODES, RUNTIME_MESSAGES, CONTEXT_PRESETS } from '../shared/constants.js';
import {
defaultSettings,
sanitizeSettings,
- CONTEXT_PRESETS,
isValidOllamaHost
} from '../shared/settings-schema.js';
@@ -152,7 +151,6 @@ function applySettings(settings) {
input.value = value === null || value === undefined ? '' : String(value);
}
$stop.value = (settings.advanced.stop || []).join('\n');
- fillModels(knownModels, settings.model);
}
async function loadSettings() {
@@ -230,7 +228,11 @@ $form.addEventListener('submit', (event) => {
}
void (async () => {
- await browser.storage.local.set({ settings: validated });
+ // Merge over the stored settings so fields not present in this form
+ // (e.g. saved by the popup meanwhile) are preserved.
+ const result = await browser.storage.local.get({ settings: null });
+ const merged = { ...(result.settings || defaultSettings()), ...validated };
+ await browser.storage.local.set({ settings: sanitizeSettings(merged) });
if (warnings.length > 0) {
$saveStatus.textContent = `保存しました(修正された項目: ${warnings.join(', ')})`;
} else {