diff --git a/web/src/components/Config.jsx b/web/src/components/Config.jsx index e5e56c2..a835888 100644 --- a/web/src/components/Config.jsx +++ b/web/src/components/Config.jsx @@ -183,8 +183,8 @@ export default function Config({ api }) { )} {activePanel === 'locale' && ( )} @@ -392,7 +392,8 @@ function PanelProviders({ providers, editProvider, providerForm, setProviderForm
- {p.model || '—'} + {p.active && active} + {p.model && p.model !== p.name && {p.model}}
@@ -460,9 +461,29 @@ function PanelUpdates({ updates, checking, updating, needsUpdateCount, installed ) } -function PanelLocale({ language, keyboard, layouts, setLanguage, setKeyboard, t }) { +function PanelLocale({ language, keyboard, layouts, api, t }) { + const [saving, setSaving] = useState(false) + const [toast, setToast] = useState(null) + + const showToast = (msg) => { + setToast(msg) + setTimeout(() => setToast(null), 2500) + } + + const handleSave = async () => { + setSaving(true) + try { + await api.savePreferences({ language, keyboard_layout: keyboard }) + showToast(t('config.saved')) + } catch (err) { + showToast(`${t('config.error')}: ${err.message}`) + } + setSaving(false) + } + return (
+ {toast &&
{toast}
}
{t('config.language')}
@@ -491,6 +512,11 @@ function PanelLocale({ language, keyboard, layouts, setLanguage, setKeyboard, t ))}
+
+ +
) }