labo-components
Version:
61 lines (55 loc) • 2.21 kB
JSX
import React from "react";
import classNames from "classnames";
import PropTypes from "prop-types";
import IDUtil from "../../../../util/IDUtil";
import Info from "../../../shared/Info";
import { LayersPropTypes } from "./Layers";
// Per layer, show the layer header with the title, description, menu etc;
class LayerHeaders extends React.PureComponent {
render() {
const { layers } = this.props;
return (
<div className={IDUtil.cssClassName("tl-layer-headers")}>
{layers.map((layer) => (
<div
key={layer.id}
className={classNames(
"tl-layer-header",
{
active: layer.id === this.props.activeLayerId,
tools:
layer.headerChildren &&
layer.headerChildren.props.children.filter(
(a) => a
).length > 1, // add-segment-button is always shown, tools are added only != null when active annotation in layer
},
layer.className
)}
style={{
height: layer.height,
}}
onClick={() => {
this.props.onClick(layer.id);
}}
>
{layer.description ? (
<Info
id={"layer_header_info_" + layer.id}
text={layer.description}
className="black left"
/>
) : null}
{layer.title}
{layer.headerChildren}
</div>
))}
</div>
);
}
}
LayerHeaders.propTypes = {
layers: LayersPropTypes,
activeLayerId: PropTypes.number,
onClick: PropTypes.func.isRequired,
};
export default LayerHeaders;