From cb148d181a55b625c3fa09470b475b0db8f98615 Mon Sep 17 00:00:00 2001 From: Fringg Date: Fri, 24 Apr 2026 07:29:02 +0300 Subject: [PATCH] fix: persist checkbox selection across page changes and filter switches Selection (both user and subscription checkboxes) now persists when: - Switching pages (prev/next) - Changing filters (status, tariff, promo group, trial) - Changing per-page limit - Searching - Refreshing data Selection is only cleared after a successful bulk action execution (modal close with result). --- src/pages/AdminBulkActions.tsx | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/pages/AdminBulkActions.tsx b/src/pages/AdminBulkActions.tsx index ec37f92..a7f5887 100644 --- a/src/pages/AdminBulkActions.tsx +++ b/src/pages/AdminBulkActions.tsx @@ -1503,7 +1503,6 @@ export default function AdminBulkActions() { searchTimerRef.current = setTimeout(() => { setOffset(0); setCommittedSearch(value); - clearAllSelections(); }, 400); }; @@ -1517,29 +1516,24 @@ export default function AdminBulkActions() { clearTimeout(searchTimerRef.current); setOffset(0); setCommittedSearch(searchInput); - clearAllSelections(); }; const handleStatusFilterChange = (v: string) => { setStatusFilter(v as SubscriptionStatusFilter); setOffset(0); - clearAllSelections(); }; const handleTariffFilterChange = (ids: number[]) => { setTariffFilter(ids); setOffset(0); - clearAllSelections(); }; const handlePromoGroupFilterChange = (v: string) => { setPromoGroupFilter(v); setOffset(0); - clearAllSelections(); }; const handleRefresh = () => { - clearAllSelections(); loadUsers(); }; @@ -2103,7 +2097,6 @@ export default function AdminBulkActions() { onClick={() => { setTrialOnly((prev) => !prev); setOffset(0); - clearAllSelections(); }} className={cn( 'flex h-5 w-5 items-center justify-center rounded-md border-2 transition-all duration-150', @@ -2225,7 +2218,6 @@ export default function AdminBulkActions() { onChange={(e) => { setLimit(Number(e.target.value)); setOffset(0); - clearAllSelections(); }} className="rounded-lg border border-dark-700 bg-dark-800 px-2 py-1.5 text-xs text-dark-200 outline-none transition-colors focus:border-accent-500/40" > @@ -2242,7 +2234,6 @@ export default function AdminBulkActions() {