@difizen/mana-app
Version:
39 lines (38 loc) • 1.35 kB
JavaScript
import { ViewInstance } from '@difizen/mana-core';
import { useInject } from '@difizen/mana-observable';
import * as React from 'react';
import { TreeProps, TREE_NODE_INDENT_GUIDE_CLASS } from "../tree-protocol";
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
export var TreeIdent = function TreeIdent(props) {
var treeViewHelper = useInject(ViewInstance);
var treeProps = useInject(TreeProps);
var renderIndentGuides = 'onHover'; // this.corePreferences['workbench.tree.renderIndentGuides'];
if (renderIndentGuides === 'none') {
return null;
}
var node = props.node,
nodeProps = props.nodeProps;
var depth = nodeProps.depth;
var indentDivs = [];
var current = node;
while (current && depth) {
var classNames = [TREE_NODE_INDENT_GUIDE_CLASS];
if (treeViewHelper.needsActiveIndentGuideline(current)) {
classNames.push('active');
} else {
classNames.push(renderIndentGuides === 'onHover' ? 'hover' : 'always');
}
var paddingLeft = treeProps.leftPadding * depth;
indentDivs.unshift( /*#__PURE__*/_jsx("div", {
className: classNames.join(' '),
style: {
paddingLeft: "".concat(paddingLeft, "px")
}
}, depth));
current = current.parent;
depth -= 1;
}
return /*#__PURE__*/_jsx(_Fragment, {
children: indentDivs
});
};