refactor(settings): extraire UI_SIZE_DEFAULTS partagé + catch erreur saveUiSettings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-22 20:15:57 +01:00
parent 155de270dc
commit fb33540bb0
3 changed files with 25 additions and 22 deletions

View File

@@ -118,6 +118,7 @@
import { onMounted, ref } from 'vue'
import { settingsApi } from '@/api/settings'
import { meteoApi } from '@/api/meteo'
import { UI_SIZE_DEFAULTS, applyUiSizesToRoot } from '@/utils/uiSizeDefaults'
const debugMode = ref(false)
const saving = ref(false)
@@ -128,13 +129,6 @@ const backupMsg = ref('')
const apiBaseUrl = detectApiBaseUrl()
// --- UI Size settings ---
const UI_DEFAULTS: Record<string, number> = {
ui_font_size: 14,
ui_menu_font_size: 13,
ui_menu_icon_size: 18,
ui_thumb_size: 96,
}
const uiSizeSettings = [
{ key: 'ui_font_size', label: 'Taille texte', min: 12, max: 20, step: 1, unit: 'px' },
{ key: 'ui_menu_font_size', label: 'Texte menu latéral', min: 11, max: 18, step: 1, unit: 'px' },
@@ -142,16 +136,12 @@ const uiSizeSettings = [
{ key: 'ui_thumb_size', label: 'Miniatures images/vidéo', min: 60, max: 200, step: 4, unit: 'px' },
]
const uiSizes = ref<Record<string, number>>({ ...UI_DEFAULTS })
const uiSizes = ref<Record<string, number>>({ ...UI_SIZE_DEFAULTS })
const savingUi = ref(false)
const uiSavedMsg = ref('')
function applyUiSizes() {
const root = document.documentElement
root.style.setProperty('--ui-font-size', `${uiSizes.value.ui_font_size}px`)
root.style.setProperty('--ui-menu-font-size', `${uiSizes.value.ui_menu_font_size}px`)
root.style.setProperty('--ui-menu-icon-size', `${uiSizes.value.ui_menu_icon_size}px`)
root.style.setProperty('--ui-thumb-size', `${uiSizes.value.ui_thumb_size}px`)
applyUiSizesToRoot(uiSizes.value)
window.dispatchEvent(new CustomEvent('ui-sizes-updated', { detail: { ...uiSizes.value } }))
}
@@ -165,13 +155,16 @@ async function saveUiSettings() {
applyUiSizes()
uiSavedMsg.value = 'Enregistré'
setTimeout(() => { uiSavedMsg.value = '' }, 1800)
} catch {
uiSavedMsg.value = 'Erreur lors de l\'enregistrement.'
setTimeout(() => { uiSavedMsg.value = '' }, 2200)
} finally {
savingUi.value = false
}
}
function resetUiSettings() {
uiSizes.value = { ...UI_DEFAULTS }
uiSizes.value = { ...UI_SIZE_DEFAULTS }
applyUiSizes()
}
@@ -226,7 +219,7 @@ async function loadSettings() {
notifyDebugChanged(debugMode.value)
for (const s of uiSizeSettings) {
const v = data[s.key]
if (v != null) uiSizes.value[s.key] = Number(v) || UI_DEFAULTS[s.key]
if (v != null) uiSizes.value[s.key] = Number(v) || UI_SIZE_DEFAULTS[s.key]
}
applyUiSizes()
} catch {