import React from "react"; import styled from "styled-components"; type TreeStructureProps = { label: string; level: number; start: boolean; levelSeparator?: string; }; const TreeStructureHorizontalWrapper = styled.div<{ level: number; label: string; }>` position: absolute; width: ${props => (props.level - 1) * 2 + 9}px; height: 2px; background: #a2a6a8; top: ${props => (props.label ? "65%" : "50%")}; left: ${props => (props.level - 1) * 18 + 9}px; z-index: 1; `; const TreeStructureVerticalWrapper = styled.div<{ level: number; label: string; start: boolean; }>` position: absolute; height: ${props => (props.start ? (props.label ? "77%" : "70%") : "100%")}; width: 2px; background: #a2a6a8; top: ${props => props.start ? props.label ? "-12%" : "-16%" : props.label ? "-35%" : "-49%"}; left: ${props => (props.level - 1) * 18 + 9}px; z-index: 1; `; const TreeStructure = (props: TreeStructureProps) => { return ( {props.level ? ( ) : null} {(() => { if ( props.level && props.levelSeparator && props.levelSeparator === "odd" ) { const treeStructureVerticalWrappers = new Array(props.level) .fill("") .map((i, index) => { return ( ); }); return treeStructureVerticalWrappers; } else if (props.level) { return ( ); } else { return []; } })()} ); }; export default TreeStructure;