Add object list component

This commit is contained in:
2022-03-04 16:22:05 +08:00
parent 9f59bd4b3a
commit ac88c4d3fd
9 changed files with 162 additions and 2 deletions
+30
View File
@@ -0,0 +1,30 @@
import { Component, ReactNode } from "react";
import { DetailsList } from "@Component/DetailsList/DetailsList";
class ObjectList extends Component {
public render(): ReactNode {
return <DetailsList
items={[
{key: "1", name: "Object 01", behaviors: [{name: "B1"}, {name: "B2"}], label: [{name: "L1"}, {name: "L2"}]},
{key: "2", name: "New Object", behaviors: [{name: "M1"}], label: [{name: "L1"}]},
{key: "3", name: "Range 01", behaviors: [], label: []},
{key: "4", name: "Cube", behaviors: [{name: "AA1"}], label: []},
{key: "5", name: "Custom Object", behaviors: [{name: "B1"}], label: [{name: "Q1"}, {name: "L2"}]}
]}
columns={[
{
key: "name",
render: (name) => <span>{name}</span>
}, {
key: "behaviors",
render: (behaviors) => <span>{(behaviors as Record<"name", string>[]).map(r => r.name).join(", ")}</span>
}, {
key: "label",
render: (label) => <span>{(label as Record<"name", string>[]).map(r => r.name).join(", ")}</span>
}
]}
/>
}
}
export { ObjectList };
+6
View File
@@ -2,6 +2,7 @@ import { ReactNode, Component, FunctionComponent } from "react";
import { Theme } from "@Component/Theme/Theme";
import { Localization } from "@Component/Localization/Localization";
import { RenderView } from "./RenderView/RenderView";
import { ObjectList } from "./ObjectList/ObjectList";
interface IPanelInfo {
nameKey: string;
@@ -15,6 +16,7 @@ interface IPanelInfo {
type PanelId = ""
| "RenderView" // 主渲染器
| "ObjectList" // 对象列表
;
const PanelInfoMap = new Map<PanelId, IPanelInfo>();
@@ -22,6 +24,10 @@ PanelInfoMap.set("RenderView", {
nameKey: "Panel.Title.Render.View", introKay: "Panel.Info.Render.View",
class: RenderView, hidePadding: true, hideScrollBar: true, isDeepDark: true
});
PanelInfoMap.set("ObjectList", {
nameKey: "Panel.Title.Object.List.View", introKay: "Panel.Info.Object.List.View",
class: ObjectList, hidePadding: true
})
function getPanelById(panelId: PanelId): ReactNode {
switch (panelId) {