Skip to content

Commit e03ad5a

Browse files
committed
feat: fix search page and enhance server fetching logic
- Introduced a new SearchPage component for improved server search functionality. - Fix routing to include the search page. - Enhanced server fetching logic with a longer timeout and refined error handling for better user feedback. - Improved loading state display in the SearchPage to indicate ongoing searches. chore: update package and dependencies to version 1.3.0 - Bumped version of package.json and Cargo files for mcp-linker to 1.3.0. - Ensured consistency across package management files.
1 parent eef23d9 commit e03ad5a

File tree

6 files changed

+30
-13
lines changed

6 files changed

+30
-13
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"author": "milisp",
99
"license": "MIT",
1010
"private": true,
11-
"version": "1.2.9",
11+
"version": "1.3.0",
1212
"type": "module",
1313
"scripts": {
1414
"dev": "vite",

src-tauri/Cargo.lock

Lines changed: 11 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-tauri/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mcp-linker"
3-
version = "1.2.8"
3+
version = "1.3.0"
44
description = "Easily connect and manage MCP servers for Claude and other clients"
55
authors = ["milisp"]
66
edition = "2021"
@@ -31,7 +31,7 @@ tauri-plugin-deep-link = "2"
3131
tokio = { version = "1.45.1", features = ["process"] }
3232
url = "2.5.4"
3333
anyhow = "1.0.98"
34-
git2 = "0.20.2"
34+
git2 = { version = "0.20.2", features = ["https", "vendored-openssl"] }
3535

3636
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
3737
tauri-plugin-single-instance = { version = "2.0.0", features = ["deep-link"] }

src/lib/api/servers.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ export async function fetchServers(
3737
console.log("API Request:", { path, params: Object.fromEntries(params) });
3838

3939
try {
40-
// Try API with timeout (5s for search)
40+
// Try API with timeout (10s for search)
4141
const response = await api.get(path, { timeout: 10000 });
42-
toast.success("API Response:", response.data);
4342

4443
// Ensure we always return a valid structure
4544
return {
@@ -50,10 +49,11 @@ export async function fetchServers(
5049
};
5150
} catch (err) {
5251
console.error("API Error:", err);
53-
toast.error(
54-
"Failed to fetch servers: " +
55-
(err instanceof Error ? err.message : String(err)),
56-
);
52+
53+
// Only show toast for actual errors, not empty results
54+
if (err instanceof Error && !err.message.includes('timeout')) {
55+
toast.error("Search failed: " + err.message);
56+
}
5757

5858
// Return empty result structure instead of null
5959
return {

src/pages/search.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ export default function SearchPage() {
2626
searchTerm,
2727
deferredSearchTerm,
2828
page,
29-
data,
29+
serversCount: data?.servers?.length || 0,
3030
isFetching,
31-
error,
32-
allServers,
31+
error: error?.message,
32+
allServersCount: allServers.length,
3333
});
3434

3535
useEffect(() => {
@@ -70,6 +70,11 @@ export default function SearchPage() {
7070
if (isFetching && servers.length === 0) {
7171
return (
7272
<div className="p-8">
73+
{query && (
74+
<div className="mb-6">
75+
<h1 className="text-2xl font-bold">Searching for "{query}"</h1>
76+
</div>
77+
)}
7378
<div className="flex justify-center items-center py-10">
7479
<div className="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
7580
<span className="ml-2">Searching...</span>

src/routes.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Favorites from "@/pages/favorites";
66
import Manage from "@/pages/manage";
77
import OnBoarding from "@/pages/OnBoarding";
88
import Recently from "@/pages/recently";
9+
import SearchPage from "@/pages/search";
910
import { ServerPage } from "@/pages/ServerPage";
1011
import { Clock, Download, LayoutGrid, Search, Star } from "lucide-react";
1112
import { Navigate, Route, Routes } from "react-router-dom";
@@ -19,6 +20,7 @@ export const AppRoutes = () => {
1920
<Route path="/categories" element={<Categories />} />
2021
<Route path="/manage" element={<Manage />} />
2122
<Route path="/recently" element={<Recently />} />
23+
<Route path="/search" element={<SearchPage />} />
2224
<Route path="/auth" element={<AuthPage />} />
2325
<Route path="/servers/:id" element={<ServerPage />} />
2426

0 commit comments

Comments
 (0)