refactor(BillingManager): improve layout and styling of subscription section for better user interaction and visual consistency
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m59s

This commit is contained in:
2026-02-16 21:43:48 +07:00
parent 3dbdb6f794
commit 915304f800
+21 -21
View File
@@ -688,15 +688,15 @@ function BillingManager() {
{/* Основная секция: Подписки */}
{activeTab === 'subscriptions' && (
<div className="card">
<div className="card-header">
<div className="d-flex align-items-center gap-3 flex-grow-1">
<h3 className="card-title mb-0">
Подписки
<span className="badge bg-blue-lt text-blue ms-2">{filteredData.length}</span>
</h3>
<div className="card-header d-flex flex-wrap align-items-center justify-content-between gap-2">
<h3 className="card-title mb-0">
Подписки
<span className="badge bg-blue-lt text-blue ms-2">{filteredData.length}</span>
</h3>
<div className="d-flex flex-wrap align-items-center gap-2 flex-grow-1 justify-content-end">
{/* Поиск */}
<div className="input-icon flex-grow-1" style={{ maxWidth: '280px' }}>
<div className="input-icon" style={{ minWidth: '220px', maxWidth: '280px' }}>
<span className="input-icon-addon">
<IconSearch size={16} />
</span>
@@ -710,21 +710,21 @@ function BillingManager() {
</div>
{/* Быстрые фильтры */}
<div className="d-flex gap-1">
<div className="btn-group btn-group-sm" role="group">
<button
className={`btn btn-sm ${filterUrgency === '' ? 'btn-primary' : 'btn-outline-secondary'}`}
className={`btn ${filterUrgency === '' ? 'btn-outline-primary active' : 'btn-outline-secondary'}`}
onClick={() => { setFilterUrgency(''); setCurrentPage(1); }}
>
Все
</button>
<button
className={`btn btn-sm ${filterUrgency === 'overdue' ? 'btn-red' : 'btn-outline-secondary'}`}
className={`btn ${filterUrgency === 'overdue' ? 'btn-outline-danger active' : 'btn-outline-secondary'}`}
onClick={() => { setFilterUrgency('overdue'); setCurrentPage(1); }}
>
Просрочено
</button>
<button
className={`btn btn-sm ${filterUrgency === 'urgent' ? 'btn-yellow' : 'btn-outline-secondary'}`}
className={`btn ${filterUrgency === 'urgent' ? 'btn-outline-warning active' : 'btn-outline-secondary'}`}
onClick={() => { setFilterUrgency('urgent'); setCurrentPage(1); }}
>
Срочно
@@ -734,27 +734,27 @@ function BillingManager() {
{/* Переключатель вида */}
<div className="btn-group btn-group-sm" role="group">
<button
className={`btn ${viewMode === 'cards' ? 'btn-primary' : 'btn-outline-secondary'}`}
className={`btn ${viewMode === 'cards' ? 'btn-outline-primary active' : 'btn-outline-secondary'}`}
onClick={() => setViewMode('cards')}
title="Карточки"
>
<IconLayoutGrid size={16} />
</button>
<button
className={`btn ${viewMode === 'table' ? 'btn-primary' : 'btn-outline-secondary'}`}
className={`btn ${viewMode === 'table' ? 'btn-outline-primary active' : 'btn-outline-secondary'}`}
onClick={() => setViewMode('table')}
title="Таблица"
>
<IconList size={16} />
</button>
</div>
</div>
<div className="card-actions">
<button className="btn btn-primary" onClick={handleAddItem}>
<IconPlus size={18} className="me-1" />
Добавить
</button>
<div className="card-actions">
<button className="btn btn-primary btn-sm" onClick={handleAddItem}>
<IconPlus size={16} className="me-1" />
Добавить
</button>
</div>
</div>
</div>