mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-18 20:14:44 +08:00
feat: add tooltip for installation
This commit is contained in:
@@ -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">
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ export interface Translations {
|
|||||||
readFile: string;
|
readFile: string;
|
||||||
writeFile: string;
|
writeFile: string;
|
||||||
writeTodos: string;
|
writeTodos: string;
|
||||||
|
skillInstallTooltip: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ export const zhCN: Translations = {
|
|||||||
readFile: "读取文件",
|
readFile: "读取文件",
|
||||||
writeFile: "写入文件",
|
writeFile: "写入文件",
|
||||||
writeTodos: "更新 To-do 列表",
|
writeTodos: "更新 To-do 列表",
|
||||||
|
skillInstallTooltip: "安装技能并使其可在 DeerFlow 中使用",
|
||||||
},
|
},
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
|
|||||||
Reference in New Issue
Block a user