feat: Обновить компоненты интерфейса, добавив новый заголовок страницы и состояние пустого контента в менеджерах ASNs, Domains и IPRanges, а также улучшить стили для адаптивного отображения
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 2m0s

This commit is contained in:
2025-08-27 17:16:46 +07:00
parent 001b4d9d98
commit 434462f633
13 changed files with 255 additions and 71 deletions
+22 -13
View File
@@ -17,9 +17,12 @@ import {
IconClock,
IconFileText
} from '@tabler/icons-react';
import TableSkeleton from './components/TableSkeleton.jsx';
import TableSkeleton, { TableEmpty } from './components/TableSkeleton.jsx';
import S3MetaBar from './components/S3MetaBar.jsx';
import PageHeaderActions from './components/PageHeaderActions.jsx';
import PageHeader from './components/PageHeader.jsx';
import EmptyState from './components/EmptyState.jsx';
import Breadcrumbs from './components/Breadcrumbs.jsx';
import ConfirmDialog from './components/ConfirmDialog.jsx';
import WsUpdateModal from './components/WsUpdateModal.jsx';
import ConfirmDiffModal from './components/ConfirmDiffModal.jsx';
@@ -668,14 +671,17 @@ function IPRangesManager() {
</div>
)}
<div className="page-header d-print-none mb-4">
<div className="row align-items-center">
<div className="col">
<h2 className="page-title">IP-диапазоны</h2>
<div className="page-pretitle">Главная / Данные / IP ranges</div>
</div>
<div className="col-auto ms-auto d-print-none">
<PageHeaderActions
<PageHeader
title="IP-диапазоны"
pretitle={(
<Breadcrumbs items={[
{ label: 'Главная', to: '/dashboard' },
{ label: 'Данные' },
{ label: 'IP ranges' },
]} />
)}
actions={(
<PageHeaderActions
loading={loading}
onRefresh={fetchItems}
disableRefresh={loading}
@@ -702,10 +708,9 @@ function IPRangesManager() {
window.notify?.error('Не удалось запустить фоновое обновление', String(e));
}
}}
/>
</div>
</div>
</div>
/>
)}
/>
<div className="row">
<div className="col-lg-3">
{/* Add New Item Card */}
@@ -814,6 +819,10 @@ function IPRangesManager() {
{/* Мета-информация будет показана внизу карточки */}
{loading ? (
<TableSkeleton rows={10} cols={3} />
) : paginatedItems.length === 0 ? (
<TableEmpty cols={3}>
<EmptyState title="Нет IP-диапазонов" description="Импортируйте или добавьте записи, чтобы начать." action={<button className="btn btn-primary" onClick={handleImport}>Импорт</button>} />
</TableEmpty>
) : (
<div className="table-responsive">
<table className="table card-table table-vcenter table-nowrap mb-0">