From ff210a98db07ea15ba91626816317be0147f972a Mon Sep 17 00:00:00 2001 From: yyh Date: Mon, 19 Jan 2026 21:20:38 +0800 Subject: [PATCH] feat(skill): add placeholder for inline tree node input Display localized placeholder text ("File name" / "Folder name") when creating new files or folders in the skill editor file tree. --- .../workflow/skill/file-tree/tree-edit-input.tsx | 9 ++++++++- web/i18n/en-US/workflow.json | 2 ++ web/i18n/zh-Hans/workflow.json | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/web/app/components/workflow/skill/file-tree/tree-edit-input.tsx b/web/app/components/workflow/skill/file-tree/tree-edit-input.tsx index 1c8d3cacb3..440d5705fd 100644 --- a/web/app/components/workflow/skill/file-tree/tree-edit-input.tsx +++ b/web/app/components/workflow/skill/file-tree/tree-edit-input.tsx @@ -4,13 +4,19 @@ import type { NodeApi } from 'react-arborist' import type { TreeNodeData } from '../type' import * as React from 'react' import { useEffect, useRef } from 'react' +import { useTranslation } from 'react-i18next' type TreeEditInputProps = { node: NodeApi } const TreeEditInput: React.FC = ({ node }) => { + const { t } = useTranslation('workflow') const inputRef = useRef(null) + const isFolder = node.data.node_type === 'folder' + const placeholder = isFolder + ? t('skillSidebar.folderNamePlaceholder') + : t('skillSidebar.fileNamePlaceholder') useEffect(() => { inputRef.current?.focus() @@ -37,10 +43,11 @@ const TreeEditInput: React.FC = ({ node }) => { ref={inputRef} type="text" defaultValue={node.data.name} + placeholder={placeholder} onKeyDown={handleKeyDown} onBlur={handleBlur} onClick={e => e.stopPropagation()} - className="min-w-0 flex-1 rounded border border-components-input-border-active bg-transparent px-1 text-[13px] font-normal leading-4 text-text-primary outline-none" + className="min-w-0 flex-1 rounded border border-components-input-border-active bg-transparent px-1 text-[13px] font-normal leading-4 text-text-primary outline-none placeholder:text-text-placeholder" /> ) } diff --git a/web/i18n/en-US/workflow.json b/web/i18n/en-US/workflow.json index 050d20e604..886e5f7bb6 100644 --- a/web/i18n/en-US/workflow.json +++ b/web/i18n/en-US/workflow.json @@ -1003,7 +1003,9 @@ "skillSidebar.addFolder": "New Folder", "skillSidebar.dropTip": "Drop files here to upload", "skillSidebar.empty": "No files yet", + "skillSidebar.fileNamePlaceholder": "File name", "skillSidebar.folderName": "Folder name", + "skillSidebar.folderNamePlaceholder": "Folder name", "skillSidebar.loadError": "Failed to load files", "skillSidebar.menu.createError": "Failed to create item", "skillSidebar.menu.delete": "Delete", diff --git a/web/i18n/zh-Hans/workflow.json b/web/i18n/zh-Hans/workflow.json index dbcba111ac..e0ea0debc9 100644 --- a/web/i18n/zh-Hans/workflow.json +++ b/web/i18n/zh-Hans/workflow.json @@ -997,7 +997,9 @@ "skillSidebar.addFolder": "新建文件夹", "skillSidebar.dropTip": "拖放文件到此处上传", "skillSidebar.empty": "暂无文件", + "skillSidebar.fileNamePlaceholder": "文件名称", "skillSidebar.folderName": "文件夹名称", + "skillSidebar.folderNamePlaceholder": "文件夹名称", "skillSidebar.loadError": "加载文件失败", "skillSidebar.menu.createError": "创建失败", "skillSidebar.menu.delete": "删除",