DossierSettings: show restart-required hint after language change

Instead of a temporary 'saved' checkmark, show a persistent warn-colored
'Neustart erforderlich' / 'Restart required' badge (in the newly selected
language) until the window is closed. Guards against no-op clicks (same lang).
This commit is contained in:
2026-06-06 14:34:22 +02:00
parent 05a289dd65
commit b6ba83eb5d
+7 -7
View File
@@ -13,7 +13,7 @@ export default function DossierSettingsApp() {
const initial = (typeof window !== 'undefined' && window.PANEL_PARAMS) || {} const initial = (typeof window !== 'undefined' && window.PANEL_PARAMS) || {}
const [lang, setLang] = useState(initial.lang || 'de') const [lang, setLang] = useState(initial.lang || 'de')
const [launcherOk, setLauncherOk] = useState(initial.launcherOk ?? null) const [launcherOk, setLauncherOk] = useState(initial.launcherOk ?? null)
const [saved, setSaved] = useState(false) const [needsRestart, setNeedsRestart] = useState(false)
useEffect(() => { useEffect(() => {
notifyReady() notifyReady()
@@ -24,10 +24,10 @@ export default function DossierSettingsApp() {
}, []) }, [])
function handleLang(id) { function handleLang(id) {
if (id === lang) return
setLang(id) setLang(id)
bridgeSend('SAVE_LANG', { lang: id }) bridgeSend('SAVE_LANG', { lang: id })
setSaved(true) setNeedsRestart(true)
setTimeout(() => setSaved(false), 1800)
} }
const label = (de, en) => lang === 'en' ? en : de const label = (de, en) => lang === 'en' ? en : de
@@ -55,16 +55,16 @@ export default function DossierSettingsApp() {
<span style={{ fontWeight: 600, fontSize: 13, letterSpacing: '0.01em' }}> <span style={{ fontWeight: 600, fontSize: 13, letterSpacing: '0.01em' }}>
{label('Dossier-Einstellungen', 'Dossier Settings')} {label('Dossier-Einstellungen', 'Dossier Settings')}
</span> </span>
{saved && ( {needsRestart && (
<span style={{ <span style={{
fontSize: 10, fontSize: 10,
color: 'var(--accent)', color: 'var(--warn)',
display: 'flex', display: 'flex',
alignItems: 'center', alignItems: 'center',
gap: 4, gap: 4,
}}> }}>
<Icon name="check_circle" size={13} /> <Icon name="restart_alt" size={13} />
{label('Gespeichert', 'Saved')} {label('Neustart erforderlich', 'Restart required')}
</span> </span>
)} )}
</div> </div>