diff --git a/ui/litellm-dashboard/src/components/view_users.tsx b/ui/litellm-dashboard/src/components/view_users.tsx index 67da9898909..bc430d38419 100644 --- a/ui/litellm-dashboard/src/components/view_users.tsx +++ b/ui/litellm-dashboard/src/components/view_users.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useCallback } from "react"; +import React, { useState, useEffect, useCallback, useRef } from "react"; import { Card, Title, @@ -131,6 +131,9 @@ const ViewUserDashboard: React.FC = ({ max_spend: null }); const [showFilters, setShowFilters] = useState(false); + const [showColumnDropdown, setShowColumnDropdown] = useState(false); + const [selectedFilter, setSelectedFilter] = useState("Email"); + const filtersRef = useRef(null); // check if window is not undefined if (typeof window !== "undefined") { @@ -374,56 +377,143 @@ const ViewUserDashboard: React.FC = ({
{/* Search and Filter Controls */} -
-
- + {/* Email Search */} +
+ handleFilterChange('email', e.target.value)} - className="w-full" /> + + +
- + + + + Filters + {(filters.user_id || filters.user_role || filters.team) && ( + + )} + + + {/* Reset Filters Button */} +
- {/* Advanced Filters */} + {/* Additional Filters */} {showFilters && ( -
- handleFilterChange('user_id', e.target.value)} - /> - - +
+ {/* User ID Search */} +
+ handleFilterChange('user_id', e.target.value)} + /> + + + +
- + {/* Role Dropdown */} +
+ +
+ + {/* Team Dropdown */} +
+ +
)}