Skip to content

【Studio】Code tab does not show code export (default-plugin viewer always renders preview, not code) #1079

Description

@hotlong

Bug

现象(What happens)

  • 在 Studio 元数据详情页(如 apps > setup),点击顶部 "Code" 标签页,没有任何反应,一直是 Preview/属性视图。
  • 实际应当切换为可导出的代码模式(TypeScript/JSON),但内容没有变化。

期望结果(What should happen)

  • 切换到 Code 标签时应显示 CodeExporter,导出 TypeScript/JSON、支持一键复制等,而不是 property 预览。

技术细节 / 根因分析

  • default-plugin.tsx 只注册了一个 metadataViewer(json-inspector),声明支持 modes: ['preview', 'code'],但其组件 (DefaultViewerComponent) 并没有根据 mode 切换。
  • 目前无论 preview 还是 code,都只渲染 <MetadataInspector>,导致 toolbar 切换模式无法生效。
  • 代码导出组件 CodeExporter 已有(支持切 TypeScript/JSON/copy),但没有路由到 code 模式。

推荐修复方案:

  1. default-plugin 声明两个 viewer:json-inspector (preview)code-inspector (code),分别注册到 MetadataInspectorCodeExporter
  2. PluginHost 下切换 code 模式时,走 code-inspector,渲染 <CodeExporter type=... definition=... />,类型根据 metadataType 匹配(如 object/view/flow/agent/app)。
  3. 充分利用已有的代码导出 UI(TypeScript/JSON 切换、复制按钮)。

相关源码位置(关键文件)

  • apps/studio/src/plugins/built-in/default-plugin.tsx
  • apps/studio/src/components/CodeExporter.tsx
  • apps/studio/src/plugins/plugin-host.tsx

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions