What do you want? (你想要什么?)
希望 Cebian 侧边栏的聊天输入区支持从系统文件管理器直接拖入文件作为附件,而不必每次点击“添加文件”按钮再通过文件选择窗口选择。
期望行为:
- 支持一次拖入一个或多个文件;
- 拖动文件进入输入区时显示清晰的拖放高亮提示;
- 松开后将文件添加到当前消息的附件列表;
- 保留现有点击“添加文件”的上传方式;
- 派发消息期间不接受新的拖放附件。
Why? (为什么?)
Cebian 运行在浏览器侧边栏中,用户经常需要一边浏览网页,一边将 Finder / 文件资源管理器中的本地文件交给 Agent 分析。当前必须点击附件按钮并经过系统文件选择窗口,操作路径较长,也不符合聊天工具常见的文件交互习惯。
直接拖放能够明显减少操作步骤,特别适合连续添加截图、文本、代码和数据文件的场景。
How? (怎么做? — 可选)
现有 components/chat/ChatInput.tsx 已经包含完整的文件读取及校验逻辑。建议:
- 将
handleFileUpload 中处理 FileList 的逻辑提取为可复用函数;
- 在聊天输入区域增加
dragenter、dragover、dragleave 和 drop 处理;
- 仅在
DataTransfer 包含文件时拦截默认行为,避免影响普通文本拖动;
- 点击选择和拖放统一复用现有规则:
- 附件数量上限;
- 图片与文本文件类型校验;
- 文件大小限制;
- 当前模型是否支持图片;
- 读取失败提示;
- 增加拖放状态的视觉反馈和必要的国际化文本;
- 补充针对多文件、超限、不支持类型及 dispatching 状态的测试。
实现范围可以保持在输入组件及少量可复用附件处理逻辑内,不需要改动后台附件协议。
如方案可行,请维护者回复 /ready,我可以提交实现 PR。
Alternatives considered (考虑过的替代方案 — 可选)
目前可以点击回形针按钮打开系统文件选择器,但连续添加文件时步骤较多;粘贴只适用于剪贴板中的图片或文本,不能替代从文件管理器拖入任意受支持文件。
What do you want? (你想要什么?)
希望 Cebian 侧边栏的聊天输入区支持从系统文件管理器直接拖入文件作为附件,而不必每次点击“添加文件”按钮再通过文件选择窗口选择。
期望行为:
Why? (为什么?)
Cebian 运行在浏览器侧边栏中,用户经常需要一边浏览网页,一边将 Finder / 文件资源管理器中的本地文件交给 Agent 分析。当前必须点击附件按钮并经过系统文件选择窗口,操作路径较长,也不符合聊天工具常见的文件交互习惯。
直接拖放能够明显减少操作步骤,特别适合连续添加截图、文本、代码和数据文件的场景。
How? (怎么做? — 可选)
现有
components/chat/ChatInput.tsx已经包含完整的文件读取及校验逻辑。建议:handleFileUpload中处理FileList的逻辑提取为可复用函数;dragenter、dragover、dragleave和drop处理;DataTransfer包含文件时拦截默认行为,避免影响普通文本拖动;实现范围可以保持在输入组件及少量可复用附件处理逻辑内,不需要改动后台附件协议。
如方案可行,请维护者回复
/ready,我可以提交实现 PR。Alternatives considered (考虑过的替代方案 — 可选)
目前可以点击回形针按钮打开系统文件选择器,但连续添加文件时步骤较多;粘贴只适用于剪贴板中的图片或文本,不能替代从文件管理器拖入任意受支持文件。