Separate panel settings from services

This commit is contained in:
2026-04-02 01:34:16 +03:00
parent dc9e399e5b
commit 1bd7ce2ec3
5 changed files with 56 additions and 46 deletions

View File

@@ -73,52 +73,58 @@ export default function SystemTab({
<section className="page-grid single-column system-grid">
<article className="panel-card">
<div className="card-header">
<h2>{text.settings.title}</h2>
<div className="settings-toolbar">
<label className="field-group compact-field">
<span>{text.common.language}</span>
<select
value={preferences.language}
onChange={(event) =>
onPreferencesChange({
...preferences,
language: event.target.value as PanelLanguage,
})
}
>
<option value="en">{text.common.english}</option>
<option value="ru">{text.common.russian}</option>
</select>
</label>
<label className="field-group compact-field">
<span>{text.common.theme}</span>
<select
value={preferences.theme}
onChange={(event) =>
onPreferencesChange({
...preferences,
theme: event.target.value as PanelTheme,
})
}
>
<option value="light">{getThemeLabel(preferences.language, 'light')}</option>
<option value="dark">{getThemeLabel(preferences.language, 'dark')}</option>
<option value="system">{getThemeLabel(preferences.language, 'system')}</option>
</select>
</label>
<button
type="button"
className="button-secondary"
onClick={() =>
setDraft((current) => ({
...current,
services: [...current.services, createServiceDraft(current.services)],
}))
<h2>{text.settings.panelTitle}</h2>
</div>
<div className="settings-toolbar">
<label className="field-group compact-field">
<span>{text.common.language}</span>
<select
value={preferences.language}
onChange={(event) =>
onPreferencesChange({
...preferences,
language: event.target.value as PanelLanguage,
})
}
>
{text.common.addService}
</button>
</div>
<option value="en">{text.common.english}</option>
<option value="ru">{text.common.russian}</option>
</select>
</label>
<label className="field-group compact-field">
<span>{text.common.theme}</span>
<select
value={preferences.theme}
onChange={(event) =>
onPreferencesChange({
...preferences,
theme: event.target.value as PanelTheme,
})
}
>
<option value="light">{getThemeLabel(preferences.language, 'light')}</option>
<option value="dark">{getThemeLabel(preferences.language, 'dark')}</option>
<option value="system">{getThemeLabel(preferences.language, 'system')}</option>
</select>
</label>
</div>
</article>
<article className="panel-card">
<div className="card-header">
<h2>{text.settings.title}</h2>
<button
type="button"
className="button-secondary"
onClick={() =>
setDraft((current) => ({
...current,
services: [...current.services, createServiceDraft(current.services)],
}))
}
>
{text.common.addService}
</button>
</div>
<div className="service-editor-list">
{draft.services.map((service, index) => (