feat(clients): show filtered count in clients list

Surface a "Showing X of Y" counter in the clients filter bar that appears whenever a search term or any filter is active, using the server-provided filtered and total counts. Added the showingCount string across all 13 locales.

Closes #4808
This commit is contained in:
MHSanaei
2026-06-02 14:23:52 +02:00
parent 61105c2b1a
commit 91f325eca6
15 changed files with 26 additions and 1 deletions

View File

@@ -33,6 +33,13 @@
flex: 0 0 auto;
}
.filter-count {
margin-inline-start: auto;
color: var(--ant-color-text-secondary);
font-size: 13px;
white-space: nowrap;
}
.filter-chips {
display: flex;
flex-wrap: wrap;

View File

@@ -188,7 +188,7 @@ export default function ClientsPage() {
useEffect(() => { setMessageInstance(messageApi); }, [messageApi]);
const {
clients, filtered,
clients, total, filtered,
summary: serverSummary,
allGroups,
setQuery,
@@ -993,6 +993,11 @@ export default function ClientsPage() {
{t('pages.clients.clearAllFilters')}
</Button>
)}
{(activeCount > 0 || debouncedSearch.trim().length > 0) && (
<span className="filter-count">
{t('pages.clients.showingCount', { shown: filtered, total })}
</span>
)}
</div>
{activeCount > 0 && (

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "ابحث بالبريد، التعليق، sub ID، UUID، كلمة المرور، auth…",
"filterTitle": "تصفية العملاء",
"clearAllFilters": "مسح الكل",
"showingCount": "عرض {shown} من {total}",
"sortOldest": "الأقدم أولاً",
"sortNewest": "الأحدث أولاً",
"sortRecentlyUpdated": "محدّث مؤخراً",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Search email, comment, sub ID, UUID, password, auth…",
"filterTitle": "Filter clients",
"clearAllFilters": "Clear all",
"showingCount": "Showing {shown} of {total}",
"sortOldest": "Oldest first",
"sortNewest": "Newest first",
"sortRecentlyUpdated": "Recently updated",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Buscar email, comentario, sub ID, UUID, contraseña, auth…",
"filterTitle": "Filtrar clientes",
"clearAllFilters": "Limpiar todo",
"showingCount": "Mostrando {shown} de {total}",
"sortOldest": "Más antiguos",
"sortNewest": "Más recientes",
"sortRecentlyUpdated": "Recientemente actualizados",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "جستجوی ایمیل، توضیح، Sub ID، UUID، رمز، احراز...",
"filterTitle": "فیلتر کاربران",
"clearAllFilters": "پاک کردن همه",
"showingCount": "نمایش {shown} از {total}",
"sortOldest": "قدیمی‌ترین",
"sortNewest": "جدیدترین",
"sortRecentlyUpdated": "اخیراً به‌روزشده",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Cari email, komentar, sub ID, UUID, kata sandi, auth…",
"filterTitle": "Filter klien",
"clearAllFilters": "Hapus semua",
"showingCount": "Menampilkan {shown} dari {total}",
"sortOldest": "Terlama dulu",
"sortNewest": "Terbaru dulu",
"sortRecentlyUpdated": "Baru saja diperbarui",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "メール、コメント、sub ID、UUID、パスワード、auth を検索…",
"filterTitle": "クライアントをフィルタ",
"clearAllFilters": "すべてクリア",
"showingCount": "{total} 件中 {shown} 件を表示",
"sortOldest": "古い順",
"sortNewest": "新しい順",
"sortRecentlyUpdated": "最近更新",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Buscar email, comentário, sub ID, UUID, senha, auth…",
"filterTitle": "Filtrar clientes",
"clearAllFilters": "Limpar tudo",
"showingCount": "Mostrando {shown} de {total}",
"sortOldest": "Mais antigos primeiro",
"sortNewest": "Mais novos primeiro",
"sortRecentlyUpdated": "Atualizados recentemente",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Поиск email, комментария, sub ID, UUID, пароля, auth…",
"filterTitle": "Фильтр клиентов",
"clearAllFilters": "Очистить все",
"showingCount": "Показано {shown} из {total}",
"sortOldest": "Сначала старые",
"sortNewest": "Сначала новые",
"sortRecentlyUpdated": "Недавно обновлены",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Email, yorum, sub ID, UUID, parola, auth ara…",
"filterTitle": "İstemcileri filtrele",
"clearAllFilters": "Tümünü temizle",
"showingCount": "{total} içinden {shown} gösteriliyor",
"sortOldest": "Önce en eski",
"sortNewest": "Önce en yeni",
"sortRecentlyUpdated": "Son güncellenen",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Пошук email, коментаря, sub ID, UUID, паролю, auth…",
"filterTitle": "Фільтр клієнтів",
"clearAllFilters": "Очистити все",
"showingCount": "Показано {shown} з {total}",
"sortOldest": "Спочатку старі",
"sortNewest": "Спочатку нові",
"sortRecentlyUpdated": "Нещодавно оновлені",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "Tìm email, ghi chú, sub ID, UUID, mật khẩu, auth…",
"filterTitle": "Lọc client",
"clearAllFilters": "Xóa tất cả",
"showingCount": "Hiển thị {shown} trên {total}",
"sortOldest": "Cũ nhất trước",
"sortNewest": "Mới nhất trước",
"sortRecentlyUpdated": "Gần đây cập nhật",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "搜索邮箱、备注、sub ID、UUID、密码、auth…",
"filterTitle": "筛选客户端",
"clearAllFilters": "清除全部",
"showingCount": "显示 {shown} / {total}",
"sortOldest": "最旧优先",
"sortNewest": "最新优先",
"sortRecentlyUpdated": "最近更新",

View File

@@ -643,6 +643,7 @@
"searchPlaceholder": "搜尋電子郵件、備註、sub ID、UUID、密碼、auth…",
"filterTitle": "篩選客戶端",
"clearAllFilters": "清除全部",
"showingCount": "顯示 {shown} / {total}",
"sortOldest": "最舊優先",
"sortNewest": "最新優先",
"sortRecentlyUpdated": "最近更新",