β¬ οΈ Back to Table of Contents
π SimplifiedTreeView¶
π Analysis Summary¶
| Metric | Count |
|---|---|
| π§ Functions | 2 |
| π¦ Imports | 9 |
| π JSX Elements | 7 |
| π Interfaces | 1 |
π Table of Contents¶
π οΈ File Location:¶
π packages/website/src/components/typeDetails/SimplifiedTreeView.tsx
π¦ Imports¶
| Name | Source |
|---|---|
clsx |
clsx |
useCallback |
react |
useMemo |
react |
React |
react |
OnHoverNodeFn |
../ast/types |
styles |
../ast/ASTViewer.module.css |
PropertyName |
../ast/PropertyName |
tsEnumToString |
../ast/tsUtils |
getRange |
../ast/utils |
JSX Elements¶
| Component | Type | Props | Children |
|---|---|---|---|
div |
element | className={styles.nonExpand} | , |
span |
element | className={selectedNode === value ? styles.selected : ''} | |
PropertyName |
component | className={styles.propName}, onClick={(): void => { onSelect(value); }}, onHo... | none |
div |
element | className={clsx(styles.subList, 'padding-left--md')} | {items.map((item, index) => ( <SimplifiedItem key={index.toString()} onHoverN... |
SimplifiedItem |
component | key={index.toString()}, onHoverNode={onHoverNode}, onSelect={onSelect}, selec... | none |
div |
element | className={clsx(styles.list, 'padding-left--sm')} | |
SimplifiedItem |
component | none | none |
Functions¶
SimplifiedTreeView(params: SimplifiedTreeViewProps): React.JSX.Element¶
Parameters:
paramsSimplifiedTreeViewProps
Returns: React.JSX.Element
Calls:
clsx (from clsx)
Code
SimplifiedItem({ onHoverNode, onSelect, selectβ¦: SimplifiedTreeViewProps): React.JSX.Element¶
Parameters:
{ onHoverNode, onSelect, selectedNode, value, }SimplifiedTreeViewProps
Returns: React.JSX.Element
Calls:
useMemo (from react)value.forEachChildresult.pushuseCallback (from react)onHoverNodegetRange (from ../ast/utils)onSelecttsEnumToString (from ../ast/tsUtils)clsx (from clsx)items.mapindex.toString
Code
function SimplifiedItem({
onHoverNode,
onSelect,
selectedNode,
value,
}: SimplifiedTreeViewProps): React.JSX.Element {
const items = useMemo(() => {
const result: ts.Node[] = [];
value.forEachChild(child => {
result.push(child);
});
return result;
}, [value]);
const onHover = useCallback(
(v: boolean) => {
if (onHoverNode) {
return onHoverNode(v ? getRange(value, 'tsNode') : undefined);
}
},
[onHoverNode, value],
);
return (
<div className={styles.nonExpand}>
<span className={selectedNode === value ? styles.selected : ''}>
<PropertyName
className={styles.propName}
onClick={(): void => {
onSelect(value);
}}
onHover={onHover}
value={tsEnumToString('SyntaxKind', value.kind)}
/>
</span>
<div className={clsx(styles.subList, 'padding-left--md')}>
{items.map((item, index) => (
<SimplifiedItem
key={index.toString()}
onHoverNode={onHoverNode}
onSelect={onSelect}
selectedNode={selectedNode}
value={item}
/>
))}
</div>
</div>
);
}
Interfaces¶
SimplifiedTreeViewProps¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
onHoverNode |
OnHoverNodeFn |
β | not shown |
onSelect |
(value: ts.Node) => void |
β | not shown |
selectedNode |
ts.Node \| undefined |
β | not shown |
value |
ts.Node |
β | not shown |
Generated by Syntax Scribe