diff --git a/ui/litellm-dashboard/src/components/VirtualKeysPage/VirtualKeysTable.tsx b/ui/litellm-dashboard/src/components/VirtualKeysPage/VirtualKeysTable.tsx index e4d9d7b3ac4..b30d4b6ce5b 100644 --- a/ui/litellm-dashboard/src/components/VirtualKeysPage/VirtualKeysTable.tsx +++ b/ui/litellm-dashboard/src/components/VirtualKeysPage/VirtualKeysTable.tsx @@ -94,15 +94,11 @@ export function VirtualKeysTable({ teams, organizations, onSortChange, currentSo }); const [expandedAccordions, setExpandedAccordions] = useState>({}); - // Stabilize the keys array reference so that useFilterLogic's useEffect - // (which depends on `keys`) only fires when the actual data changes, not on - // every render caused by setFilteredKeys → re-render → new [] literal. - const stableKeys = useMemo(() => keys?.keys ?? [], [keys]); - // Use the filter logic hook + const { filters, filteredKeys, filteredTotalCount, allTeams, allOrganizations, handleFilterChange, handleFilterReset } = useFilterLogic({ - keys: stableKeys, + keys: keys?.keys || [], teams, organizations, });