Skip to content

Commit 3d4d210

Browse files
committed
stop old agent fetches from overwriting newer namespace results
Signed-off-by: Maaz Ghani <maazghani@gmail.com>
1 parent cea6f10 commit 3d4d210

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

ui/src/components/AgentList.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"use client";
2-
import { useCallback, useEffect, useState } from "react";
2+
import { useCallback, useEffect, useRef, useState } from "react";
33
import { AgentGrid } from "@/components/AgentGrid";
44
import { AgentListView } from "@/components/AgentListView";
55
import { Plus, LayoutGrid, List } from "lucide-react";
@@ -35,20 +35,32 @@ export default function AgentList() {
3535
const [loading, setLoading] = useState(true);
3636
const [error, setError] = useState("");
3737
const [view, setView] = useState<AgentsView>("grid");
38+
const latestFetchRequestId = useRef(0);
3839

3940
const fetchAgents = useCallback(async () => {
41+
const requestId = latestFetchRequestId.current + 1;
42+
latestFetchRequestId.current = requestId;
43+
4044
try {
4145
setLoading(true);
4246
const result = await getAgents(selectedNamespace ? { namespace: selectedNamespace } : {});
47+
if (requestId !== latestFetchRequestId.current) {
48+
return;
49+
}
4350
if (result.error) {
4451
throw new Error(result.error || "Failed to fetch agents");
4552
}
4653
setAgents(result.data || []);
4754
setError("");
4855
} catch (err) {
56+
if (requestId !== latestFetchRequestId.current) {
57+
return;
58+
}
4959
setError(err instanceof Error ? err.message : "An unexpected error occurred");
5060
} finally {
51-
setLoading(false);
61+
if (requestId === latestFetchRequestId.current) {
62+
setLoading(false);
63+
}
5264
}
5365
}, [selectedNamespace]);
5466

0 commit comments

Comments
 (0)