src/Behaviors.tsx (31 lines of code) (raw):
import Details from './Details';
import CollapsingDetails from './CollapsingDetails';
import CollapsingType from './CollapsingType';
import ValueOf from './ValueOf';
import { Behavior as BehaviorType } from './metamodel';
type Props = {
behaviors: BehaviorType[];
}
export default function Behaviors({ behaviors }: Props) {
return (
<CollapsingDetails header="Behaviors">
{behaviors.map((b, i) => (
<div key={i}>
<CollapsingType header="Behavior" namespace={b.type.namespace} name={b.type.name} />
{b.generics &&
<CollapsingDetails header="Generics">
{b.generics.map((g, i) => (
<ValueOf key={i} value={g} />
))}
</CollapsingDetails>
}
{b.meta &&
<CollapsingDetails header="Meta">
{Object.keys(b.meta).map(k => (
<Details key={k} header={k} value={b.meta ? b.meta[k] : ""} />
))}
</CollapsingDetails>
}
</div>
))}
</CollapsingDetails>
);
}