Skip to content

plugin-view 文档页的三个 "Interactive Examples" 没有一个用到 object-view —— 都是手搭的静态卡片版面,且 id 沿用虚构的 viewMode 三分法 #5113

Description

@yinlianghui

发现于 #5088 的实施(PR #5109)。Filed unassigned, not claiming。

读数取自 origin/main @ 405d54e4d(该三个 JSON 在 93de4f69b 上未变)。

现象

content/docs/plugins/plugin-view.mdx 顶部有一节 "Interactive Examples",整节包在 < PluginLoader plugins={['view']} > 里 —— 即为这几个示例专门加载 view 插件 —— 然后三个示例一个都没有用到这个插件:

页面小标题引用的 catalog id该 JSON 的节点 type 全集object-view?objectName?
User Directory Viewplugin-view/grid-view-modebadge, button, card, flex, stack, text
Record Detail Viewplugin-view/detail-view-modeavatar, button, card, flex, stack, text
Form Create Viewplugin-view/form-view-modebutton, card, flex, grid, input, label, select, stack, text

三个文件(examples/schema-catalog/src/schemas/plugin-view/*.json)都是手搭的静态版面 —— 卡片套 flex 套 text,把一个用户列表、一条记录详情、一个新建表单出来,没有任何一个节点会走到 ObjectViewRenderer,也没有数据源。读者看到的是「这就是 object-view 渲染出来的样子」,而实际上这是三张与插件无关的模拟图。

为什么现在提

复核方式

node -e "const j=require('./examples/schema-catalog/src/schemas/plugin-view/grid-view-mode.json');
const t=new Set();(function w(n){if(Array.isArray(n))return n.forEach(w);if(n&&typeof n==='object'){if(typeof n.type==='string')t.add(n.type);Object.values(n).forEach(w);}})(j);
console.log([...t].sort().join(', '), '| object-view?', t.has('object-view'));"

三个文件跑一遍,object-view? 全部 false

门禁为什么没抓到

check-doc-component-types 只核每个 type 值是否被注册 —— card / flex / text / avatar / input 全都注册了,故整页绿。catalog-gallery-render.test.tsx(#4616)只核每个 catalog 条目渲染时不出 "Unknown component type" 面板 —— 这三个都正常渲染。「某插件页下挂的示例是否真的用到该插件」没有任何检查覆盖,这是 #4823 第二维度之外的又一维。

分级

未打 finding 标签,但分级本身请 PM 定,两种读法都写在这里,不由我预判:

交 PM 分诊。

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationpm:queue

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions