Revert "Simplify settings preferences layout"

This reverts commit b3b097d265.
This commit is contained in:
2026-04-02 01:08:45 +03:00
parent b3b097d265
commit 02d1d0dc4b
4 changed files with 58 additions and 66 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.common.panelPreferences}</h2>
</div>
<div className="system-fields">
<label className="field-group">
{text.common.language}
<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">
{text.common.theme}
<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) => (

View File

@@ -450,23 +450,6 @@ button,
color: var(--muted);
}
.settings-toolbar {
display: flex;
align-items: end;
gap: 12px;
flex-wrap: wrap;
}
.compact-field {
min-width: 220px;
flex: 0 1 240px;
}
.compact-field span {
color: var(--muted);
font-size: 12px;
}
.toolbar-actions {
flex-wrap: wrap;
}
@@ -580,6 +563,10 @@ tbody tr:last-child td {
display: block;
}
.system-settings-card {
gap: 12px;
}
.system-fields,
.service-editor-grid {
display: grid;
@@ -707,8 +694,7 @@ pre {
}
.shell-header,
.table-toolbar,
.settings-toolbar {
.table-toolbar {
flex-direction: column;
align-items: flex-start;
}

View File

@@ -6,11 +6,11 @@ export interface PanelPreferences {
theme: PanelTheme;
}
const PREFERENCES_KEY = '3proxy-ui-panel-preferences-v2';
const PREFERENCES_KEY = '3proxy-ui-panel-preferences';
export const defaultPanelPreferences: PanelPreferences = {
language: 'en',
theme: 'light',
theme: 'system',
};
export function loadPanelPreferences(): PanelPreferences {