feat: Refactor CommunitiesManager to utilize PageHeaderActions component for action buttons, improving UI consistency and reducing redundancy
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 5m43s

This commit is contained in:
2025-08-12 13:40:59 +07:00
parent cdf42aa589
commit 79038a3981
+12 -15
View File
@@ -15,6 +15,7 @@ import {
IconHash,
IconFilter
} from '@tabler/icons-react';
import PageHeaderActions from './components/PageHeaderActions.jsx';
const API_URL = '/api';
@@ -180,12 +181,16 @@ function CommunitiesManager() {
<div className="page-pretitle">Главная / Данные / Community</div>
</div>
<div className="col-auto ms-auto d-print-none">
<div className="btn-list">
<button className="btn btn-outline-secondary" onClick={fetchItems} disabled={loading}><IconRefresh className="me-2" />Обновить</button>
<button className="btn btn-outline-primary" onClick={handleImport}><IconUpload className="me-2" />Импорт JSON</button>
<button className="btn btn-outline-primary" onClick={handleExport} disabled={items.length === 0}><IconDownload className="me-2" />Экспорт</button>
<button className="btn btn-primary" onClick={handleSave} disabled={loading}><IconDeviceFloppy className="me-2" />Сохранить в S3</button>
</div>
<PageHeaderActions
loading={loading}
onRefresh={fetchItems}
disableRefresh={loading}
onImport={handleImport}
onExport={handleExport}
disableExport={items.length === 0}
onSave={handleSave}
disableSave={loading}
/>
</div>
</div>
</div>
@@ -236,15 +241,7 @@ function CommunitiesManager() {
</div>
</div>
<div className="card card-md">
<div className="card-header"><h3 className="card-title"><IconDatabase className="me-2" />Действия</h3></div>
<div className="card-body d-grid gap-2">
<button className="btn btn-outline-secondary" onClick={fetchItems} disabled={loading}><IconRefresh className="me-2" />Обновить</button>
<button className="btn btn-outline-primary" onClick={handleImport}><IconUpload className="me-2" />Импорт JSON</button>
<button className="btn btn-outline-primary" onClick={handleExport} disabled={items.length === 0}><IconDownload className="me-2" />Экспорт</button>
<button className="btn btn-primary" onClick={handleSave} disabled={loading}><IconDeviceFloppy className="me-2" />Сохранить в S3</button>
</div>
</div>
{/* Карточка действий не нужна — действия перенесены в page-header */}
</div>
<div className="col-lg-9">