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, IconHash,
IconFilter IconFilter
} from '@tabler/icons-react'; } from '@tabler/icons-react';
import PageHeaderActions from './components/PageHeaderActions.jsx';
const API_URL = '/api'; const API_URL = '/api';
@@ -180,12 +181,16 @@ function CommunitiesManager() {
<div className="page-pretitle">Главная / Данные / Community</div> <div className="page-pretitle">Главная / Данные / Community</div>
</div> </div>
<div className="col-auto ms-auto d-print-none"> <div className="col-auto ms-auto d-print-none">
<div className="btn-list"> <PageHeaderActions
<button className="btn btn-outline-secondary" onClick={fetchItems} disabled={loading}><IconRefresh className="me-2" />Обновить</button> loading={loading}
<button className="btn btn-outline-primary" onClick={handleImport}><IconUpload className="me-2" />Импорт JSON</button> onRefresh={fetchItems}
<button className="btn btn-outline-primary" onClick={handleExport} disabled={items.length === 0}><IconDownload className="me-2" />Экспорт</button> disableRefresh={loading}
<button className="btn btn-primary" onClick={handleSave} disabled={loading}><IconDeviceFloppy className="me-2" />Сохранить в S3</button> onImport={handleImport}
</div> onExport={handleExport}
disableExport={items.length === 0}
onSave={handleSave}
disableSave={loading}
/>
</div> </div>
</div> </div>
</div> </div>
@@ -236,15 +241,7 @@ function CommunitiesManager() {
</div> </div>
</div> </div>
<div className="card card-md"> {/* Карточка действий не нужна — действия перенесены в page-header */}
<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>
</div> </div>
<div className="col-lg-9"> <div className="col-lg-9">