Skip to content

Commit 22dd739

Browse files
committed
refactor(ui): 为按钮添加Tooltip提示
- 在Header组件中新建聊天和设置按钮添加Tooltip包裹,提升交互体验 - 在SessionList组件侧边栏按钮添加Tooltip提示,明确功能含义 - 更新CSS变量引用,优化错误颜色适配VSCode主题配色
1 parent a7cb529 commit 22dd739

3 files changed

Lines changed: 48 additions & 36 deletions

File tree

packages/vscode-ide-companion/src/webview/components/Header.tsx

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
1-
import { useState, useCallback, useMemo } from "react";
1+
import { useCallback, useMemo } from "react";
22
import { Button } from "@/webview/components/ui/button";
3-
import SessionDropdown from "@/webview/components/SessionList";
43
import type { SessionSummary } from "@/webview/types";
5-
import { PanelRight, Plus, Settings } from "lucide-react";
4+
import { Plus, Settings } from "lucide-react";
65
import { chatService } from "@/webview/services/chatService";
76
import icon from "../../../assets/deepcoding_icon.png";
8-
import {
9-
Drawer,
10-
DrawerClose,
11-
DrawerContent,
12-
DrawerDescription,
13-
DrawerFooter,
14-
DrawerHeader,
15-
DrawerTitle,
16-
DrawerTrigger,
17-
} from "@/webview/components/ui/drawer";
187
import SessionList from "@/webview/components/SessionList";
8+
import { Tooltip, TooltipContent, TooltipTrigger } from "@/webview/components/ui/tooltip";
199

2010
interface HeaderProps {
2111
sessions: SessionSummary[];
@@ -49,24 +39,38 @@ export default function Header({ sessions, activeSessionId, onSelectSession, onC
4939
</Button>
5040

5141
<div>
52-
<Button
53-
variant="ghost"
54-
size="icon"
55-
className="shrink-0 cursor-pointer"
56-
onClick={onCreateNewSession}
57-
title="New chat"
58-
>
59-
<Plus className="h-4 w-4" />
60-
</Button>
61-
<Button
62-
variant="ghost"
63-
size="icon"
64-
className="shrink-0 cursor-pointer"
65-
onClick={() => chatService.openSettings()}
66-
title="Open settings"
67-
>
68-
<Settings className="h-4 w-4" />
69-
</Button>
42+
<Tooltip>
43+
<TooltipTrigger asChild>
44+
<Button
45+
variant="ghost"
46+
size="icon"
47+
className="shrink-0 cursor-pointer"
48+
onClick={onCreateNewSession}
49+
title="New chat"
50+
>
51+
<Plus className="h-4 w-4" />
52+
</Button>
53+
</TooltipTrigger>
54+
<TooltipContent>
55+
<p>New Chat</p>
56+
</TooltipContent>
57+
</Tooltip>
58+
<Tooltip>
59+
<TooltipTrigger asChild>
60+
<Button
61+
variant="ghost"
62+
size="icon"
63+
className="shrink-0 cursor-pointer"
64+
onClick={() => chatService.openSettings()}
65+
title="Open settings"
66+
>
67+
<Settings className="h-4 w-4" />
68+
</Button>
69+
</TooltipTrigger>
70+
<TooltipContent>
71+
<p>Settings</p>
72+
</TooltipContent>
73+
</Tooltip>
7074
<SessionList
7175
sessions={sessions}
7276
activeSessionId={activeSessionId}

packages/vscode-ide-companion/src/webview/components/SessionList.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
} from "@/webview/components/ui/drawer";
1616
import { Button } from "@/webview/components/ui/button";
1717
import { InputGroup, InputGroupAddon, InputGroupInput } from "@/webview/components/ui/input-group";
18+
import { Tooltip, TooltipContent, TooltipTrigger } from "@/webview/components/ui/tooltip";
1819

1920
interface SessionListProps {
2021
sessions: SessionSummary[];
@@ -85,9 +86,16 @@ export default function SessionList({ sessions, activeSessionId, onSelect, onCre
8586
return (
8687
<Drawer direction="right" open={drawerOpen} onOpenChange={setDrawerOpen}>
8788
<DrawerTrigger asChild>
88-
<Button variant="ghost" size="icon" className="shrink-0 cursor-pointer" title="Show Agent Sessions Sidebar">
89-
<PanelRight className="h-4 w-4" />
90-
</Button>
89+
<Tooltip>
90+
<TooltipTrigger asChild>
91+
<Button variant="ghost" size="icon" className="shrink-0 cursor-pointer" title="Show Agent Sessions Sidebar">
92+
<PanelRight className="h-4 w-4" />
93+
</Button>
94+
</TooltipTrigger>
95+
<TooltipContent>
96+
<p>Sessions</p>
97+
</TooltipContent>
98+
</Tooltip>
9199
</DrawerTrigger>
92100
<DrawerContent>
93101
<DrawerHeader>

packages/vscode-ide-companion/src/webview/index.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
--muted-foreground: var(--vscode-disabledForeground, #888888);
3838
--accent: var(--vscode-toolbar-hoverBackground, #e0e0e0);
3939
--accent-foreground: var(--vscode-foreground, #333333);
40-
--destructive: var(--vscode-errorForeground, #d32f2f);
40+
--destructive: var(--vscode-editorError-foreground, #d32f2f);
4141
--success: var(--vscode-testing-iconPassed, #22863a);
4242
--success-foreground: var(--vscode-editor-background, #ffffff);
4343
--border: var(--vscode-panel-border, #e0e0e0);
@@ -125,7 +125,7 @@
125125
--muted-foreground: var(--vscode-disabledForeground, #858585);
126126
--accent: var(--vscode-toolbar-hoverBackground, #3c3c3c);
127127
--accent-foreground: var(--vscode-foreground, #cccccc);
128-
--destructive: var(--vscode-errorForeground, #f48771);
128+
--destructive: var(--vscode-editorError-foreground, #f48771);
129129
--success: var(--vscode-testing-iconPassed, #89d185);
130130
--success-foreground: var(--vscode-editor-background, #1e1e1e);
131131
--border: var(--vscode-panel-border, #3c3c3c);

0 commit comments

Comments
 (0)