Skip to content

Commit b480303

Browse files
MKY508claude
andcommitted
fix: auto-select default connection and fix React Flow rendering
- Auto-load default database connection on settings page - Fix useMemo -> useEffect for building nodes/edges (side effects) - Schema tab now shows tables immediately without manual selection 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent e74d60d commit b480303

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

apps/web/src/app/settings/page.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,22 @@
33
import { useState, useEffect } from "react";
44
import { useRouter } from "next/navigation";
55
import { ArrowLeft, Database, Brain, Settings as SettingsIcon, User, BookOpen, GitBranch } from "lucide-react";
6+
import { useQuery } from "@tanstack/react-query";
67
import { useAuthStore } from "@/lib/stores/auth";
8+
import { api } from "@/lib/api/client";
79
import { ModelSettings } from "@/components/settings/ModelSettings";
810
import { ConnectionSettings } from "@/components/settings/ConnectionSettings";
911
import { PreferencesSettings } from "@/components/settings/PreferencesSettings";
1012
import { SemanticSettings } from "@/components/settings/SemanticSettings";
1113
import { SchemaSettings } from "@/components/settings/SchemaSettings";
1214
import { cn } from "@/lib/utils";
1315

16+
interface Connection {
17+
id: string;
18+
name: string;
19+
is_default: boolean;
20+
}
21+
1422
type TabType = "models" | "connections" | "schema" | "semantic" | "preferences";
1523

1624
export default function SettingsPage() {
@@ -28,6 +36,28 @@ export default function SettingsPage() {
2836
// 用于 SchemaSettings 的连接 ID 状态 - 必须在条件返回之前
2937
const [selectedConnectionId, setSelectedConnectionId] = useState<string | null>(null);
3038

39+
// 获取连接列表,自动选择默认连接
40+
const { data: connections } = useQuery({
41+
queryKey: ["connections"],
42+
queryFn: async () => {
43+
const response = await api.get("/api/v1/config/connections");
44+
return response.data.data as Connection[];
45+
},
46+
enabled: isAuthenticated,
47+
});
48+
49+
// 自动选择默认连接
50+
useEffect(() => {
51+
if (connections && connections.length > 0 && !selectedConnectionId) {
52+
const defaultConn = connections.find((c) => c.is_default);
53+
if (defaultConn) {
54+
setSelectedConnectionId(defaultConn.id);
55+
} else {
56+
setSelectedConnectionId(connections[0].id);
57+
}
58+
}
59+
}, [connections, selectedConnectionId]);
60+
3161
if (!isAuthenticated) {
3262
return null;
3363
}

apps/web/src/components/settings/SchemaSettings.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import { useCallback, useMemo } from "react";
3+
import { useCallback, useEffect } from "react";
44
import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
55
import {
66
ReactFlow,
@@ -95,7 +95,7 @@ export function SchemaSettings({ connectionId }: SchemaSettingsProps) {
9595
};
9696

9797
// 构建节点和边
98-
useMemo(() => {
98+
useEffect(() => {
9999
if (!schemaInfo?.tables) return;
100100

101101
// 创建表节点

apps/web/tsconfig.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)