Skip to content

Commit 7ff1b7a

Browse files
peterjEItanya
andauthored
toggle servers, sort them (#561)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io> Co-authored-by: Eitan Yarmush <eitan.yarmush@solo.io>
1 parent 58cb880 commit 7ff1b7a

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

ui/src/app/servers/page.tsx

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ export default function ServersPage() {
3333
try {
3434
setIsLoading(true);
3535

36-
// Fetch servers
3736
const serversResponse = await getServers();
3837
if (serversResponse.success && serversResponse.data) {
39-
setServers(serversResponse.data);
40-
41-
// Initially expand all servers
42-
const serverNames = serversResponse.data.map((server) => server.ref).filter((ref): ref is string => ref !== undefined);
43-
44-
setExpandedServers(new Set(serverNames));
38+
const sortedServers = [...serversResponse.data].sort((a, b) => {
39+
return (a.ref || '').localeCompare(b.ref || '');
40+
});
41+
setServers(sortedServers);
42+
43+
// Start with all servers collapsed
44+
setExpandedServers(new Set());
4545
} else {
4646
console.error("Failed to fetch servers:", serversResponse);
4747
toast.error(serversResponse.error || "Failed to fetch servers data.");
@@ -100,6 +100,18 @@ export default function ServersPage() {
100100
}
101101
};
102102

103+
const toggleServer = (serverName: string) => {
104+
setExpandedServers(prev => {
105+
const newSet = new Set(prev);
106+
if (newSet.has(serverName)) {
107+
newSet.delete(serverName);
108+
} else {
109+
newSet.add(serverName);
110+
}
111+
return newSet;
112+
});
113+
};
114+
103115
return (
104116
<div className="mt-12 mx-auto max-w-6xl px-6">
105117
<div className="flex justify-between items-center mb-6">
@@ -134,7 +146,10 @@ export default function ServersPage() {
134146
{/* Server Header */}
135147
<div className="bg-secondary/10 p-4">
136148
<div className="flex items-center justify-between">
137-
<div className="flex items-center gap-3 cursor-pointer">
149+
<div
150+
className="flex items-center gap-3 cursor-pointer"
151+
onClick={() => toggleServer(serverName)}
152+
>
138153
{isExpanded ? <ChevronDown className="h-5 w-5" /> : <ChevronRight className="h-5 w-5" />}
139154
<div className="flex items-center gap-2">
140155
<Globe className="h-5 w-5 text-green-500" />

0 commit comments

Comments
 (0)