Skip to content

Commit 4b5b753

Browse files
committed
Integrate ScrollArea component into MCP page layout for improved scrolling experience, while maintaining existing structure and loading states.
1 parent 7cd58b2 commit 4b5b753

1 file changed

Lines changed: 34 additions & 31 deletions

File tree

src/app/mcp/page.tsx

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { Skeleton } from "ui/skeleton";
1010

1111
import { handleErrorWithToast } from "ui/shared-toast";
1212
import { Plus } from "lucide-react";
13+
import { ScrollArea } from "ui/scroll-area";
1314

1415
export default function Page() {
1516
const { data: mcpList, isLoading } = useSWR(
@@ -23,39 +24,41 @@ export default function Page() {
2324
);
2425

2526
return (
26-
<div className="relative flex flex-col gap-4 px-8 py-8 max-w-3xl mx-auto">
27-
<div className="flex items-center mb-4">
28-
<h1 className="text-2xl font-bold">MCP Servers</h1>
29-
<div className="flex-1" />
27+
<ScrollArea className="h-full w-full">
28+
<div className="flex-1 relative flex flex-col gap-4 px-8 py-8 max-w-3xl h-full mx-auto">
29+
<div className="flex items-center mb-4">
30+
<h1 className="text-2xl font-bold">MCP Servers</h1>
31+
<div className="flex-1" />
3032

31-
<div className="flex gap-2">
32-
<Link href="/mcp/create">
33-
<Button
34-
className="border-dashed border-foreground/20 font-semibold"
35-
variant="outline"
36-
>
37-
<Plus className="stroke-2" />
38-
Add MCP Server
39-
</Button>
40-
</Link>
33+
<div className="flex gap-2">
34+
<Link href="/mcp/create">
35+
<Button
36+
className="border-dashed border-foreground/20 font-semibold"
37+
variant="outline"
38+
>
39+
<Plus className="stroke-2" />
40+
Add MCP Server
41+
</Button>
42+
</Link>
43+
</div>
4144
</div>
45+
{isLoading ? (
46+
<div className="flex flex-col gap-4">
47+
<Skeleton className="h-60 w-full" />
48+
<Skeleton className="h-60 w-full" />
49+
<Skeleton className="h-60 w-full" />
50+
</div>
51+
) : mcpList?.length ? (
52+
<div className="flex flex-col gap-6 my-4">
53+
{mcpList.map((mcp) => (
54+
<MCPCard key={mcp.name} {...mcp} />
55+
))}
56+
</div>
57+
) : (
58+
// When MCP list is empty
59+
<MCPOverview />
60+
)}
4261
</div>
43-
{isLoading ? (
44-
<div className="flex flex-col gap-4">
45-
<Skeleton className="h-60 w-full" />
46-
<Skeleton className="h-60 w-full" />
47-
<Skeleton className="h-60 w-full" />
48-
</div>
49-
) : mcpList?.length ? (
50-
<div className="flex flex-col gap-6 my-4">
51-
{mcpList.map((mcp) => (
52-
<MCPCard key={mcp.name} {...mcp} />
53-
))}
54-
</div>
55-
) : (
56-
// When MCP list is empty
57-
<MCPOverview />
58-
)}
59-
</div>
62+
</ScrollArea>
6063
);
6164
}

0 commit comments

Comments
 (0)