📄 TypesDetails¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 1 |
| 📦 Imports | 12 |
| 💠 JSX Elements | 8 |
| 📐 Interfaces | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/website/src/components/typeDetails/TypesDetails.tsx
📦 Imports¶
| Name | Source |
|---|---|
useEffect |
react |
useState |
react |
React |
react |
Panel |
react-resizable-panels |
PanelGroup |
react-resizable-panels |
PanelResizeHandle |
react-resizable-panels |
OnHoverNodeFn |
../ast/types |
findSelectionPath |
../ast/selectedRange |
isTSNode |
../ast/utils |
styles |
../Playground.module.css |
SimplifiedTreeView |
./SimplifiedTreeView |
TypeInfo |
./TypeInfo |
JSX Elements¶
| Component | Type | Props | Children |
|---|---|---|---|
PanelGroup |
component | autoSaveId="playground-types", direction="horizontal" | |
Panel |
component | className={styles.PanelColumn}, collapsible={true}, defaultSize={35}, id="sim... | |
div |
element | className={styles.playgroundInfoContainer} | |
SimplifiedTreeView |
component | onHoverNode={onHoverNode}, onSelect={setSelectedNode}, selectedNode={selected... | none |
PanelResizeHandle |
component | className={styles.PanelResizeHandle} | none |
Panel |
component | className={styles.PanelColumn}, collapsible={true}, id="typeInfo" | |
div |
element | className={styles.playgroundInfoContainer} | |
TypeInfo |
component | onHoverNode={onHoverNode}, typeChecker={typeChecker}, value={selectedNode} | none |
Functions¶
TypesDetails({ cursorPosition, onHoverNode, …: TypesDetailsProps): React.JSX.Element¶
Parameters:
{ cursorPosition, onHoverNode, typeChecker, value, }TypesDetailsProps
Returns: React.JSX.Element
Calls:
useState (from react)useEffect (from react)findSelectionPath (from ../ast/selectedRange)isTSNode (from ../ast/utils)setSelectedNode
Code
export function TypesDetails({
cursorPosition,
onHoverNode,
typeChecker,
value,
}: TypesDetailsProps): React.JSX.Element {
const [selectedNode, setSelectedNode] = useState(value);
useEffect(() => {
if (cursorPosition) {
const item = findSelectionPath(value, cursorPosition);
if (item.node && isTSNode(item.node)) {
setSelectedNode(item.node);
}
}
}, [cursorPosition, value]);
return (
<PanelGroup autoSaveId="playground-types" direction="horizontal">
<Panel
className={styles.PanelColumn}
collapsible={true}
defaultSize={35}
id="simplifiedTree"
>
<div className={styles.playgroundInfoContainer}>
<SimplifiedTreeView
onHoverNode={onHoverNode}
onSelect={setSelectedNode}
selectedNode={selectedNode}
value={value}
/>
</div>
</Panel>
<PanelResizeHandle className={styles.PanelResizeHandle} />
<Panel className={styles.PanelColumn} collapsible={true} id="typeInfo">
<div className={styles.playgroundInfoContainer}>
<TypeInfo
onHoverNode={onHoverNode}
typeChecker={typeChecker}
value={selectedNode}
/>
</div>
</Panel>
</PanelGroup>
);
}
Interfaces¶
TypesDetailsProps¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
cursorPosition |
number |
✓ | not shown |
onHoverNode |
OnHoverNodeFn |
✓ | not shown |
typeChecker |
ts.TypeChecker |
✓ | not shown |
value |
ts.Node |
✗ | not shown |
Generated by Syntax Scribe