feat: Introduce cursor utility class for pointer interactions and refactor action buttons into PageHeaderActions component across multiple managers for improved UI consistency
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 5m54s

This commit is contained in:
2025-08-12 13:29:19 +07:00
parent f06a433d77
commit cdf42aa589
10 changed files with 162 additions and 260 deletions
+7 -28
View File
@@ -683,64 +683,43 @@ function BillingManager() {
<table className="table card-table table-vcenter table-nowrap mb-0">
<thead>
<tr>
<th
className="cursor-pointer"
onClick={() => handleSort('hostName')}
>
<th className="cursor-pointer" onClick={() => handleSort('hostName')}>
Имя хостера
{sortField === 'hostName' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>
)}
</th>
<th
className="cursor-pointer"
onClick={() => handleSort('purpose')}
>
<th className="cursor-pointer" onClick={() => handleSort('purpose')}>
Назначение
{sortField === 'purpose' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>
)}
</th>
<th
className="cursor-pointer"
onClick={() => handleSort('country')}
>
<th className="cursor-pointer" onClick={() => handleSort('country')}>
Страна
{sortField === 'country' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>
)}
</th>
<th
className="cursor-pointer"
onClick={() => handleSort('provider')}
>
<th className="cursor-pointer" onClick={() => handleSort('provider')}>
Провайдер
{sortField === 'provider' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>
)}
</th>
<th
className="cursor-pointer"
onClick={() => handleSort('monthlyCost')}
>
<th className="cursor-pointer" onClick={() => handleSort('monthlyCost')}>
Месячная стоимость
{sortField === 'monthlyCost' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>
)}
</th>
<th
className="cursor-pointer"
onClick={() => handleSort('nextPaymentDate')}
>
<th className="cursor-pointer" onClick={() => handleSort('nextPaymentDate')}>
Следующий платеж
{sortField === 'nextPaymentDate' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>
)}
</th>
<th
className="cursor-pointer"
onClick={() => handleSort('status')}
>
<th className="cursor-pointer" onClick={() => handleSort('status')}>
Статус
{sortField === 'status' && (
<span className="ms-1">{sortOrder === 'asc' ? '↑' : '↓'}</span>