feat: add tooltip for installation

This commit is contained in:
Henry Li
2026-02-01 10:55:08 +08:00
parent 46feff6c16
commit e1ecf62afa
4 changed files with 19 additions and 8 deletions

View File

@@ -50,8 +50,11 @@ import { useI18n } from "@/core/i18n/hooks";
import { installSkill } from "@/core/skills/api"; import { installSkill } from "@/core/skills/api";
import { streamdownPlugins } from "@/core/streamdown"; import { streamdownPlugins } from "@/core/streamdown";
import { checkCodeFile, getFileName } from "@/core/utils/files"; import { checkCodeFile, getFileName } from "@/core/utils/files";
import { env } from "@/env";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
import { Tooltip } from "../tooltip";
import { useArtifacts } from "./context"; import { useArtifacts } from "./context";
export function ArtifactFileDetail({ export function ArtifactFileDetail({
@@ -130,7 +133,7 @@ export function ArtifactFileDetail({
if (result.success) { if (result.success) {
toast.success(result.message); toast.success(result.message);
} else { } else {
toast.error(result.message || "Failed to install skill"); toast.error(result.message ?? "Failed to install skill");
} }
} catch (error) { } catch (error) {
console.error("Failed to install skill:", error); console.error("Failed to install skill:", error);
@@ -188,13 +191,18 @@ export function ArtifactFileDetail({
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<ArtifactActions> <ArtifactActions>
{!isWriteFile && filepath.endsWith(".skill") && ( {!isWriteFile && filepath.endsWith(".skill") && (
<ArtifactAction <Tooltip content={t.toolCalls.skillInstallTooltip}>
icon={isInstalling ? LoaderIcon : PackageIcon} <ArtifactAction
label={t.common.install} icon={isInstalling ? LoaderIcon : PackageIcon}
tooltip={t.common.install} label={t.common.install}
disabled={isInstalling} tooltip={t.common.install}
onClick={handleInstallSkill} disabled={
/> isInstalling ||
env.NEXT_PUBLIC_STATIC_WEBSITE_ONLY === "true"
}
onClick={handleInstallSkill}
/>
</Tooltip>
)} )}
{!isWriteFile && ( {!isWriteFile && (
<a href={urlOfArtifact({ filepath, threadId })} target="_blank"> <a href={urlOfArtifact({ filepath, threadId })} target="_blank">

View File

@@ -118,6 +118,7 @@ export const enUS: Translations = {
readFile: "Read file", readFile: "Read file",
writeFile: "Write file", writeFile: "Write file",
writeTodos: "Update to-do list", writeTodos: "Update to-do list",
skillInstallTooltip: "Install skill and make it available to DeerFlow",
}, },
// Settings // Settings

View File

@@ -111,6 +111,7 @@ export interface Translations {
readFile: string; readFile: string;
writeFile: string; writeFile: string;
writeTodos: string; writeTodos: string;
skillInstallTooltip: string;
}; };
// Settings // Settings

View File

@@ -115,6 +115,7 @@ export const zhCN: Translations = {
readFile: "读取文件", readFile: "读取文件",
writeFile: "写入文件", writeFile: "写入文件",
writeTodos: "更新 To-do 列表", writeTodos: "更新 To-do 列表",
skillInstallTooltip: "安装技能并使其可在 DeerFlow 中使用",
}, },
// Settings // Settings