Skip to content

Commit 8e5fd7e

Browse files
authored
Merge pull request #447 from open-rpc/feat/add-uischema-contentdesciptors-hidden
feat: add uiSchema to hide contentDescriptors
2 parents 7d446ee + d004c67 commit 8e5fd7e

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/Documentation.test.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Documentation from "./Documentation";
44

55
it("renders without crashing", () => {
66
const div = document.createElement("div");
7-
ReactDOM.render(<Documentation schema={{} as any}/>, div);
7+
ReactDOM.render(<Documentation schema={{} as any} />, div);
88
ReactDOM.unmountComponentAtNode(div);
99
});
1010

@@ -13,3 +13,22 @@ it("renders without crashing with no schema", () => {
1313
ReactDOM.render(<Documentation />, div);
1414
ReactDOM.unmountComponentAtNode(div);
1515
});
16+
17+
it("render contentDescriptors", () => {
18+
const div = document.createElement("div");
19+
ReactDOM.render(<Documentation
20+
schema={{ components: { contentDescriptors: { Foo: { name: "foo", schema: true } } } } as any}
21+
/>, div);
22+
expect(div.innerHTML.includes("ContentDescriptors")).toBe(true);
23+
ReactDOM.unmountComponentAtNode(div);
24+
});
25+
26+
it("doesnt render contentDescriptors if uiSchema contentDescriptors hidden is passed", () => {
27+
const div = document.createElement("div");
28+
ReactDOM.render(<Documentation
29+
schema={{ components: { contentDescriptors: { Foo: { name: "foo", schema: true } } } } as any}
30+
uiSchema={{ contentDescriptors: { "ui:hidden": true } }}
31+
/>, div);
32+
expect(div.innerHTML.includes("ContentDescriptors")).toBe(false);
33+
ReactDOM.unmountComponentAtNode(div);
34+
});

src/Documentation.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export default class Documentation extends React.Component<IProps> {
2121
if (!schema) {
2222
return null;
2323
}
24+
const shouldShowContentDescriptors = !(uiSchema && uiSchema.contentDescriptors && uiSchema.contentDescriptors["ui:hidden"] === true);
2425
return (
2526
<>
2627
<Info schema={schema} />
@@ -31,7 +32,9 @@ export default class Documentation extends React.Component<IProps> {
3132
reactJsonOptions={reactJsonOptions}
3233
methodPlugins={this.props.methodPlugins}
3334
/>
34-
<ContentDescriptors schema={schema} uiSchema={uiSchema}></ContentDescriptors>
35+
{shouldShowContentDescriptors &&
36+
<ContentDescriptors schema={schema} uiSchema={uiSchema}></ContentDescriptors>
37+
}
3538
</>
3639
);
3740
}

0 commit comments

Comments
 (0)