refactor: optimize handleTeamsChange function with useCallback for better performance

This commit is contained in:
mlogclub
2026-06-20 21:00:22 +08:00
parent 84c0fd9949
commit dc2ad27483
+3 -3
View File
@@ -5,7 +5,7 @@ import {
PanelLeftOpenIcon, PanelLeftOpenIcon,
UserCogIcon, UserCogIcon,
} from "lucide-react"; } from "lucide-react";
import { useMemo, useState } from "react"; import { useCallback, useMemo, useState } from "react";
import { import {
DashboardCrudPage, DashboardCrudPage,
@@ -52,7 +52,7 @@ export default function DashboardAgentsPage() {
const [selectedTeam, setSelectedTeam] = useState<AdminAgentTeam | null>(null); const [selectedTeam, setSelectedTeam] = useState<AdminAgentTeam | null>(null);
const [sidebarCollapsed, setSidebarCollapsed] = useState(false); const [sidebarCollapsed, setSidebarCollapsed] = useState(false);
function handleTeamsChange(nextTeams: AdminAgentTeam[]) { const handleTeamsChange = useCallback((nextTeams: AdminAgentTeam[]) => {
setSelectedTeam((current) => { setSelectedTeam((current) => {
if (nextTeams.length === 0) { if (nextTeams.length === 0) {
return null; return null;
@@ -62,7 +62,7 @@ export default function DashboardAgentsPage() {
} }
return nextTeams.find((item) => item.id === current.id) ?? nextTeams[0]; return nextTeams.find((item) => item.id === current.id) ?? nextTeams[0];
}); });
} }, []);
const filters = useMemo<DashboardCrudFilter[]>( const filters = useMemo<DashboardCrudFilter[]>(
() => [ () => [