From 9a1d02614cd741e89b0ee7f6cdf4960c0a748e9c Mon Sep 17 00:00:00 2001 From: Egor Date: Sat, 31 Jan 2026 20:13:44 +0300 Subject: [PATCH 1/3] Update adminUsers.ts --- src/api/adminUsers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/api/adminUsers.ts b/src/api/adminUsers.ts index 88e204d..2c35665 100644 --- a/src/api/adminUsers.ts +++ b/src/api/adminUsers.ts @@ -306,6 +306,7 @@ export const adminUsersApi = { offset?: number; limit?: number; search?: string; + email?: string; status?: 'active' | 'blocked' | 'deleted'; sort_by?: | 'created_at' From 957b4a93b57909eb75febbfb18b02a055cd7897b Mon Sep 17 00:00:00 2001 From: Egor Date: Sat, 31 Jan 2026 20:14:12 +0300 Subject: [PATCH 2/3] Update AdminUsers.tsx --- src/pages/AdminUsers.tsx | 104 ++++++++++++++++++++++++--------------- 1 file changed, 63 insertions(+), 41 deletions(-) diff --git a/src/pages/AdminUsers.tsx b/src/pages/AdminUsers.tsx index cb18576..9ae68d8 100644 --- a/src/pages/AdminUsers.tsx +++ b/src/pages/AdminUsers.tsx @@ -978,6 +978,7 @@ export default function AdminUsers() { const [stats, setStats] = useState(null); const [loading, setLoading] = useState(true); const [search, setSearch] = useState(''); + const [emailSearch, setEmailSearch] = useState(''); const [statusFilter, setStatusFilter] = useState(''); const [sortBy, setSortBy] = useState('created_at'); const [offset, setOffset] = useState(0); @@ -991,6 +992,7 @@ export default function AdminUsers() { setLoading(true); const params: Record = { offset, limit, sort_by: sortBy }; if (search) params.search = search; + if (emailSearch) params.email = emailSearch; if (statusFilter) params.status = statusFilter; const data = await adminUsersApi.getUsers( @@ -1003,7 +1005,7 @@ export default function AdminUsers() { } finally { setLoading(false); } - }, [offset, search, statusFilter, sortBy]); + }, [offset, search, emailSearch, statusFilter, sortBy]); const loadStats = useCallback(async () => { try { @@ -1086,47 +1088,67 @@ export default function AdminUsers() { )} {/* Filters */} -
-
-
- setSearch(e.target.value)} - placeholder={t('admin.users.search')} - className="w-full rounded-xl border border-dark-700 bg-dark-800 py-2 pl-10 pr-4 text-dark-100 placeholder-dark-500 focus:border-dark-600 focus:outline-none" - /> -
- +
+ {/* Search fields row */} +
+ +
+ setSearch(e.target.value)} + placeholder={t('admin.users.search')} + className="w-full rounded-xl border border-dark-700 bg-dark-800 py-2 pl-10 pr-4 text-dark-100 placeholder-dark-500 focus:border-dark-600 focus:outline-none" + /> +
+ +
-
- - - + +
+
+ setEmailSearch(e.target.value)} + placeholder={t('admin.users.searchEmail')} + className="w-full rounded-xl border border-dark-700 bg-dark-800 py-2 pl-10 pr-4 text-dark-100 placeholder-dark-500 focus:border-dark-600 focus:outline-none" + /> +
+ +
+
+
+
+ {/* Filters row */} +
+ + +
{/* Users list */} From 562376bb11ff75ce60527d6daa2090abb8dc8058 Mon Sep 17 00:00:00 2001 From: Egor Date: Sat, 31 Jan 2026 20:14:45 +0300 Subject: [PATCH 3/3] Add files via upload --- src/locales/en.json | 1 + src/locales/fa.json | 1 + src/locales/ru.json | 1 + src/locales/zh.json | 1 + 4 files changed, 4 insertions(+) diff --git a/src/locales/en.json b/src/locales/en.json index 0495966..2ec1b8c 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1542,6 +1542,7 @@ "title": "Users", "subtitle": "Bot user management", "search": "Search by ID, name, username...", + "searchEmail": "Search by email...", "noData": "No users found", "purchaseCount": "{{count}} purchases", "noPurchases": "No purchases", diff --git a/src/locales/fa.json b/src/locales/fa.json index e6ec9c6..7fca3dc 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -1361,6 +1361,7 @@ "title": "کاربران", "subtitle": "مدیریت کاربران ربات", "search": "جستجو بر اساس شناسه، نام، نام کاربری...", + "searchEmail": "جستجو بر اساس ایمیل...", "noData": "کاربری یافت نشد", "purchaseCount": "{{count}} خرید", "noPurchases": "بدون خرید", diff --git a/src/locales/ru.json b/src/locales/ru.json index 169f826..881019a 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -2053,6 +2053,7 @@ "title": "Пользователи", "subtitle": "Управление пользователями бота", "search": "Поиск по ID, имени, username...", + "searchEmail": "Поиск по email...", "noData": "Пользователи не найдены", "purchaseCount": "{{count}} покупок", "noPurchases": "Нет покупок", diff --git a/src/locales/zh.json b/src/locales/zh.json index 16c582f..6e7eae9 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -1360,6 +1360,7 @@ "title": "用户", "subtitle": "机器人用户管理", "search": "按ID、姓名、用户名搜索...", + "searchEmail": "按邮箱搜索...", "noData": "未找到用户", "purchaseCount": "{{count}} 次购买", "noPurchases": "无购买记录",