32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# Change: 工具箱插件化运行时与音乐播放器工具
|
|
|
|
## Why
|
|
|
|
当前工具箱把内置工具定义、内部组件映射、iframe 工具配置散落在多个全局文件中:
|
|
|
|
- 工具定义依赖 `built-in-tools.ts`
|
|
- 内部 React 工具依赖 `InternalToolComponents.tsx`
|
|
- 画布嵌入和弹窗打开各自做分支判断
|
|
|
|
这使得每增加一个工具,都需要同步修改多处中心化映射,难以满足“每个工具一个独立目录、像插件一样集成”的目标。
|
|
|
|
同时,仓库虽然已有画布音频节点与全局音频播放服务,但缺少一个面向素材库音频选择、后台播放和与播放控件联动的独立播放器工具。
|
|
|
|
## What Changes
|
|
|
|
- 引入统一的工具插件注册中心,收敛内置工具清单与内部组件解析
|
|
- 将内置工具重构为“每个工具一个目录”的 manifest/entry 结构
|
|
- 保留 URL 工具能力,但将其视为 `iframe` 类型工具插件
|
|
- 新增音乐播放器工具,可直接浏览素材库音频并驱动全局播放会话
|
|
- 让播放器工具与现有播放控件共享同一播放状态,并支持互相切换
|
|
|
|
## Impact
|
|
|
|
- Affected code:
|
|
- `packages/drawnix/src/constants/built-in-tools.ts`
|
|
- `packages/drawnix/src/services/toolbox-service.ts`
|
|
- `packages/drawnix/src/components/toolbox-drawer/*`
|
|
- `packages/drawnix/src/components/tool-element/*`
|
|
- `packages/drawnix/src/components/audio-node-element/*`
|
|
- `packages/drawnix/src/tools/**/*`
|