feat: Simplify MainLayout by removing unused icons and notifications, streamlining the navbar for a cleaner user interface
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 5m57s

This commit is contained in:
2025-08-08 12:28:23 +07:00
parent 389725c023
commit a7549ff164
+14 -74
View File
@@ -6,23 +6,11 @@ import {
IconNetwork,
IconSettings,
IconHome,
IconFileText,
IconCloud,
IconShield,
IconActivity,
IconBell,
IconChevronDown,
IconUser,
IconDatabase,
IconAlertTriangle,
IconAlertCircle,
IconServer,
IconFilter,
IconDownload,
IconCreditCard,
IconMoon,
IconHeart,
IconCode
IconCreditCard
} from '@tabler/icons-react';
import ServerManager from './ServerManager';
import FilterManager from './FilterManager';
@@ -53,17 +41,13 @@ function App() {
function MainLayout() {
const location = useLocation();
const [notifications] = useState([
{ id: 1, title: 'Новый домен добавлен', message: 'example.com был добавлен в список', time: '2 мин назад' },
{ id: 2, title: 'Изменения сохранены', message: 'Список AS обновлен в S3', time: '5 мин назад' }
]);
// Навбар стал лаконичным: без неиспользуемых уведомлений/иконок
// Состояние для управления выпадающими меню
const [dropdownStates, setDropdownStates] = useState({
data: false,
management: false,
tools: false,
settings: false
tools: false
});
// Закрытие всех выпадающих меню при клике вне их области
@@ -73,8 +57,7 @@ function MainLayout() {
setDropdownStates({
data: false,
management: false,
tools: false,
settings: false
tools: false
});
}
};
@@ -91,8 +74,7 @@ function MainLayout() {
const newState = {
data: false,
management: false,
tools: false,
settings: false
tools: false
};
// Открываем только выбранное меню, если оно было закрыто
if (!prev[dropdown]) {
@@ -138,13 +120,7 @@ function MainLayout() {
{ id: 'auto-urls', title: 'Авто URL', path: '/auto-urls', icon: IconDownload }
]
},
{
id: 'settings',
title: 'Настройки',
icon: IconSettings,
path: '/settings',
single: true
}
// Убрали неиспользуемые/неработающие разделы
];
// Определяем активную вкладку по адресу
@@ -233,50 +209,14 @@ function MainLayout() {
</div>
</div>
{/* Правая часть навбара */}
<div className="navbar-nav flex-row order-md-last">
{/* Иконки */}
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="Source code">
<IconCode className="icon icon-tabler" />
</a>
</div>
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="Sponsor">
<IconHeart className="icon icon-tabler" />
</a>
</div>
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="Dark mode">
<IconMoon className="icon icon-tabler" />
</a>
</div>
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="Notifications">
<IconBell className="icon icon-tabler" />
</a>
</div>
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="Apps">
<IconActivity className="icon icon-tabler" />
</a>
</div>
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="Theme settings">
<IconSettings className="icon icon-tabler" />
<span className="badge bg-red"></span>
</a>
</div>
{/* Пользователь */}
<div className="nav-item dropdown">
<a href="#" className="nav-link d-flex lh-1 text-reset p-0 ms-3" aria-label="User menu">
<span className="avatar avatar-sm" style={{backgroundImage: 'url(./static/avatars/000m.jpg)'}}></span>
<div className="d-none d-xl-block ps-2">
<div>Admin User</div>
<div className="mt-1 small text-muted">Administrator</div>
</div>
</a>
{/* Правая часть навбара (минимальная) */}
<div className="navbar-nav order-md-last">
<div className="nav-item d-flex align-items-center">
<span className="avatar avatar-sm" style={{backgroundImage: 'url(./static/avatars/000m.jpg)'}}></span>
<div className="d-none d-xl-block ps-2">
<div>Admin User</div>
<div className="mt-1 small text-muted">Administrator</div>
</div>
</div>
</div>
</div>