From 81b1dbfefb7ac3026c1993c1466bcc07a0224632 Mon Sep 17 00:00:00 2001 From: Li Xin Date: Sun, 20 Apr 2025 21:07:46 +0800 Subject: [PATCH] feat: replace with simplified `Tooltip` --- web/src/app/_components/image.tsx | 39 ++++++------- web/src/app/_components/input-box.tsx | 42 ++++++-------- web/src/app/_components/markdown.tsx | 57 ++++++++----------- web/src/app/_components/message-list-view.tsx | 27 ++++----- web/src/app/_components/research-block.tsx | 31 ++++------ .../app/_components/research-report-block.tsx | 39 ++++++------- web/src/app/_components/theme-toggle.tsx | 3 + web/src/app/_components/tooltip.tsx | 25 ++++++++ 8 files changed, 124 insertions(+), 139 deletions(-) create mode 100644 web/src/app/_components/tooltip.tsx diff --git a/web/src/app/_components/image.tsx b/web/src/app/_components/image.tsx index 8f227d1..0a583ef 100644 --- a/web/src/app/_components/image.tsx +++ b/web/src/app/_components/image.tsx @@ -1,12 +1,12 @@ +// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates +// SPDX-License-Identifier: MIT + import { memo, useCallback, useEffect, useState } from "react"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "~/components/ui/tooltip"; import { cn } from "~/lib/utils"; +import { Tooltip } from "./tooltip"; + function Image({ className, imageClassName, @@ -47,23 +47,18 @@ function Image({ {isError ? ( fallback ) : ( - - - {alt} - - -

{alt ?? "No caption"}

-
+ + {alt} )} diff --git a/web/src/app/_components/input-box.tsx b/web/src/app/_components/input-box.tsx index c8384fa..fd3efa9 100644 --- a/web/src/app/_components/input-box.tsx +++ b/web/src/app/_components/input-box.tsx @@ -12,14 +12,11 @@ import { } from "react"; import { Button } from "~/components/ui/button"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "~/components/ui/tooltip"; import type { Option } from "~/core/messages"; import { cn } from "~/lib/utils"; +import { Tooltip } from "./tooltip"; + export function InputBox({ className, size, @@ -139,26 +136,21 @@ export function InputBox({
- - - - - -

{responding ? "Stop" : "Send"}

-
+ +
diff --git a/web/src/app/_components/markdown.tsx b/web/src/app/_components/markdown.tsx index 8446dfc..9cfe3c1 100644 --- a/web/src/app/_components/markdown.tsx +++ b/web/src/app/_components/markdown.tsx @@ -12,15 +12,11 @@ import remarkMath from "remark-math"; import "katex/dist/katex.min.css"; import { Button } from "~/components/ui/button"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "~/components/ui/tooltip"; import { rehypeSplitWordsIntoSpans } from "~/core/rehype"; import { cn } from "~/lib/utils"; import Image from "./image"; +import { Tooltip } from "./tooltip"; export function Markdown({ className, @@ -77,34 +73,29 @@ export function Markdown({ function CopyButton({ content }: { content: string }) { const [copied, setCopied] = useState(false); return ( - - - - - -

Copy

-
+ + ); } diff --git a/web/src/app/_components/message-list-view.tsx b/web/src/app/_components/message-list-view.tsx index f19001b..ee8be71 100644 --- a/web/src/app/_components/message-list-view.tsx +++ b/web/src/app/_components/message-list-view.tsx @@ -18,11 +18,6 @@ import { CardHeader, CardTitle, } from "~/components/ui/card"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "~/components/ui/tooltip"; import type { Message, Option } from "~/core/messages"; import { openResearch, @@ -38,6 +33,7 @@ import { Markdown } from "./markdown"; import { RainbowText } from "./rainbow-text"; import { RollingText } from "./rolling-text"; import { ScrollContainer } from "./scroll-container"; +import { Tooltip } from "./tooltip"; export function MessageListView({ className, @@ -398,18 +394,15 @@ function PodcastCard({ {!isGenerating && (
- - - - - Download podcast + +
)} diff --git a/web/src/app/_components/research-block.tsx b/web/src/app/_components/research-block.tsx index c926b27..c58397a 100644 --- a/web/src/app/_components/research-block.tsx +++ b/web/src/app/_components/research-block.tsx @@ -7,17 +7,13 @@ import { useEffect, useState } from "react"; import { Button } from "~/components/ui/button"; import { Card } from "~/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "~/components/ui/tabs"; -import { - Tooltip, - TooltipContent, - TooltipTrigger, -} from "~/components/ui/tooltip"; import { openResearch, useStore } from "~/core/store"; import { cn } from "~/lib/utils"; import { ResearchActivitiesBlock } from "./research-activities-block"; import { ResearchReportBlock } from "./research-report-block"; import { ScrollContainer } from "./scroll-container"; +import { Tooltip } from "./tooltip"; export function ResearchBlock({ className, @@ -43,20 +39,17 @@ export function ResearchBlock({
- - - - - Close + +
{message?.content && !message.isStreaming && ( - - - - - -

- {isGenerated ? "The podcast is generated" : "Generate podcast"} -

-
+ + )}
diff --git a/web/src/app/_components/theme-toggle.tsx b/web/src/app/_components/theme-toggle.tsx index 17fa748..957f8c5 100644 --- a/web/src/app/_components/theme-toggle.tsx +++ b/web/src/app/_components/theme-toggle.tsx @@ -1,3 +1,6 @@ +// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates +// SPDX-License-Identifier: MIT + import { Moon, Sun } from "lucide-react"; import { useTheme } from "next-themes"; diff --git a/web/src/app/_components/tooltip.tsx b/web/src/app/_components/tooltip.tsx new file mode 100644 index 0000000..e07d6f3 --- /dev/null +++ b/web/src/app/_components/tooltip.tsx @@ -0,0 +1,25 @@ +// Copyright (c) 2025 Bytedance Ltd. and/or its affiliates +// SPDX-License-Identifier: MIT + +import { + Tooltip as ShadcnTooltip, + TooltipContent, + TooltipTrigger, +} from "~/components/ui/tooltip"; + +export function Tooltip({ + className, + children, + title, +}: { + className?: string; + children: React.ReactNode; + title: React.ReactNode; +}) { + return ( + + {children} + {title} + + ); +}