dt-react-component
dt-react-component copied to clipboard
feat: support AI quick command feat
变更类型
请选择以下选项以描述 PR 的类型:
- [ ] Bug 修复(修复现有问题)
- [x] 新功能(添加了一个功能)
- [ ] 代码优化(性能改进、代码重构)
- [ ] 文档更新
- [ ] 单测新增或修改
- [ ] 其他(请说明):
相关问题
变更内容
CodeBlock组件接口修改
- 新增泛型参数
M,继承自MessageEntity,默认MessageEntity - 新增
message字段,用于接受泛型类型的消息实体 toolbars字段修改,原来只接受无参函数,现在接收code字符串和可选的message参数,从而能根据上下文内容动态渲染工具栏。
CodeBlock组件修改目的
- 用以支持某些自定义的
toolbars需要拿到当前CodeBlock所在的那条message的信息去做一些校验或操作
Content组件接口修改
- 接口修改:新增泛型参数
M和P:M继承自IMessageProps,默认IMessageProps;P继承自IPromptProps,默认IPromptProps - 接口修改:新增
replacePrompt字段,是用来替换渲染Prompt的函数组件 - 接口修改:新增
replaceMessage字段,是用来替换渲染Message的函数组件 - 渲染:原本渲染
Prompt的逻辑改成有replacePrompt就渲染replacePrompt,没有才渲染默认组件Prompt;原本渲染Message的逻辑改成有replaceMessage就渲染replaceMessage,没有才渲染默认组件Message。
Content组件修改目的
- 用以支持某些用户需要渲染自定义的
Prompt或Message的逻辑
Markdown组件
- 接口修改:新增
isHtmlContent字段,是用来区分是否要支持html内容显示 - 接口修改:新增
message字段,是传给CodeBlock组件使用的 - 组件:引入
rehype-raw,支持在Markdown → HTML 的转换过程中安全地解析并渲染「原始 HTML」标签
Markdown组件修改目的
- 支持渲染内容里带自定义html结构的情况
- 支持修改后的
CodeBlock组件的message字段的数据来源
Message组件
- 接口修改:新增泛型参数
T,继承自MessageEntity,默认MessageEntity - 接口修改:新增
extraRender字段 - 接口修改:
onRegenerate方法参数改为使用泛型T - 接口修改:
onStop方法参数改为使用泛型T - 组件:在
Markdown前面增加一个卡槽,渲染extraRender,用来支持新增的自定义结构
Message组件修改目的
- 支持消息里带文件列表的情况
Prompt组件
- 接口修改:新增泛型参数
T,继承自PromptEntity,默认PromptEntity - 接口修改:新增
extraRender字段 - 组件:在
Markdown后面增加一个卡槽,渲染extraRender,用来支持新增的自定义结构
Prompt组件修改目的
- 支持问题里带文件列表的情况
其他
- 更新demo
- 更新单测
详细描述
- 目标效果
对应 Previewer
CI 挂了。 补一下demo和 previewer
CI 挂了。 补一下demo和 previewer
哎呀,我补了咋拉依赖还挂了😭
CI 挂了。 补一下demo和 previewer
哎呀,我补了咋拉依赖还挂了😭
CI 是因为使用了淘宝源没安装成功挂掉的, pnpm-lock.yml 文件别更新太多东西
CI 挂了。 补一下demo和 previewer
哎呀,我补了咋拉依赖还挂了😭
CI 是因为使用了淘宝源没安装成功挂掉的,
pnpm-lock.yml文件别更新太多东西
我只新增了一个依赖,lock file自动生成的😓我再看下
设计层面需要考虑,我下周才有时间跟任务owner讨论,先draft
1、关于input下新增的type.ts考虑将从组件内部移除,由于当初的实现方式是直接修改原组件,所以会有这个枚举的维护文件,但后期修改了设计之后,这个文件应该考虑放到应用层自己维护
2、关于chat下面entity.ts里新增的commandList 和fileList 考虑移除,因为这两个属性是业务属性,考虑将实体在应用层继承后去扩展新增需要的业务属性,而不是直接在rc里增加
3、关于message和prompt组件的demo,需要体现的是带样式的dom结构插入后能正常显示样式,后续会更新为插入带样式的dom结构
