Merge branch 'develop'
Some checks failed
Stable Release / stable (push) Failing after 33s

This commit is contained in:
Augustin
2026-04-23 21:20:31 +02:00

View File

@@ -183,8 +183,8 @@ export default function Config({ api }) {
)}
{activePanel === 'locale' && (
<PanelLocale
language={keyboard} layouts={layouts}
setLanguage={setLanguage} setKeyboard={setKeyboard}
language={language} keyboard={keyboard} layouts={layouts}
api={api}
t={t}
/>
)}
@@ -392,7 +392,8 @@ function PanelProviders({ providers, editProvider, providerForm, setProviderForm
</div>
</div>
<div className="provider-card-meta" style={{ marginTop: 8 }}>
<span className="mono">{p.model || '—'}</span>
{p.active && <span className="badge ok" style={{ marginRight: 6 }}>active</span>}
{p.model && p.model !== p.name && <span className="mono">{p.model}</span>}
</div>
</div>
</div>
@@ -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 (
<div className="config-card">
{toast && <div className="config-toast">{toast}</div>}
<div className="config-card-group">
<span className="config-card-group-label">{t('config.language')}</span>
<div className="chip-row">
@@ -491,6 +512,11 @@ function PanelLocale({ language, keyboard, layouts, setLanguage, setKeyboard, t
))}
</div>
</div>
<div className="config-card-actions">
<button className="primary sm" onClick={handleSave} disabled={saving}>
{saving ? t('config.saving') : t('config.save')}
</button>
</div>
</div>
)
}