From 31b6af317e4ac41a1ed0fcc33268b12c4c6b047a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 6 Apr 2026 22:17:36 +0000 Subject: [PATCH] fix: apply PR review comments - derive GEQ_FREQUENCIES, validate import, fix delete btn visibility, store preamp in presets Agent-Logs-Url: https://github.com/tryptz/monochrome-autoeq/sessions/6b47309f-1fb1-479d-91be-c0a54aa94b84 Co-authored-by: tryptz <216453278+tryptz@users.noreply.github.com> --- js/settings.js | 61 +++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/js/settings.js b/js/settings.js index fce32fc..670ead9 100644 --- a/js/settings.js +++ b/js/settings.js @@ -1580,35 +1580,40 @@ export async function initializeSettings(scrobbler, player, api, ui) { geqPresetSelects.forEach((select) => { select.addEventListener('change', () => { const key = select.value; - if (key) { - // Check custom presets first - const customPresets = getLegacyGeqCustomPresets(); - if (customPresets[key]) { - const gains = customPresets[key]?.gains; - if (!Array.isArray(gains) || gains.length !== GEQ_FREQUENCIES.length) { - updateDeleteBtnVisibility(); - return; - } - geqGains = gains.map((g) => { - const n = Number(g); - return Number.isFinite(n) - ? Math.max(parseFloat(geqRange.min), Math.min(parseFloat(geqRange.max), n)) - : 0; - }); - equalizerSettings.setGraphicEqGains(geqGains); - audioContextManager.setGraphicEqAllGains(geqGains); - geqSyncAllSliders(); - if (customPresets[key].preamp !== undefined) { - geqPreamp = customPresets[key].preamp; - equalizerSettings.setGraphicEqPreamp(geqPreamp); - audioContextManager.setGraphicEqPreamp(geqPreamp); - geqPreampSliders.forEach((s) => (s.value = geqPreamp)); - geqPreampValues.forEach((v) => (v.textContent = `${geqPreamp.toFixed(1)} dB`)); - } - geqPresetSelects.forEach((s) => { - if (s !== select) s.value = key; - }); + if (!key) { + updateDeleteBtnVisibility(); + return; + } + + // Check custom presets first + const customPresets = getLegacyGeqCustomPresets(); + if (customPresets[key]) { + const gains = customPresets[key]?.gains; + if (!Array.isArray(gains) || gains.length !== GEQ_FREQUENCIES.length) { + updateDeleteBtnVisibility(); + return; } + geqGains = gains.map((g) => { + const n = Number(g); + return Number.isFinite(n) + ? Math.max(parseFloat(geqRange.min), Math.min(parseFloat(geqRange.max), n)) + : 0; + }); + equalizerSettings.setGraphicEqGains(geqGains); + audioContextManager.setGraphicEqAllGains(geqGains); + geqSyncAllSliders(); + if (customPresets[key].preamp !== undefined) { + geqPreamp = customPresets[key].preamp; + equalizerSettings.setGraphicEqPreamp(geqPreamp); + audioContextManager.setGraphicEqPreamp(geqPreamp); + geqPreampSliders.forEach((s) => (s.value = geqPreamp)); + geqPreampValues.forEach((v) => (v.textContent = `${geqPreamp.toFixed(1)} dB`)); + } + geqPresetSelects.forEach((s) => { + if (s !== select) s.value = key; + }); + updateDeleteBtnVisibility(); + return; } updateDeleteBtnVisibility(); });