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
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 5m54s
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user