Tree select component built for ink
Please consider following this project's author, Sina Bayandorian, and consider starring the project to show your ❤️ and support.
npm i ink-tree-select// * index.tsx
// * visit the components section if you need further customization
import { render, Text } from 'ink';
import React, { useState } from 'react';
import { TreeSelect } from 'ink-tree-select';
const App = () => {
const [selectedPath, setSelectedPath] = useState<string>('');
const selectHandler = (path: string) => setSelectedPath(path);
return (
<>
<TreeSelect root='./' onSelect={selectHandler} />
{selectedPath.length > 0 && <Text>{selectedPath}</Text>}
</>
);
};
render(<App />);| Type | Default | Description | |
|---|---|---|---|
| root | string | Root directory to scan | |
| onChange | (activePath: string) => void; |
Triggers on every selected path change | |
| onSelect | (selectedPath: string) => void; |
Triggers once user hits Enter |
|
| options | TreeSelectOptions |
{ } |
type TreeSelectOptions = Partial<{
// * directories to ignore - read https://www.npmjs.com/package/fast-glob#ignore
ignore: string[];
rootAlias: string; // default to '.' - tree's root
previewColor: Color; // path preview text color
indicatorColor: Color; // ● color
}>;Accepts a custom tree instead of a directory to scan
| Type | Default | Description | |
|---|---|---|---|
| tree | Tree |
Custom directory tree | |
| onChange | (activePath: string) => void; |
Triggers on every selected path change | |
| onSelect | (selectedPath: string) => void; |
Triggers once user hits Enter |
|
| options | VirtualTreeSelectOptions |
{ } |
type Tree = { name: string; fullPath: string; branches: Tree[]; dir?: boolean };type VirtualTreeSelectOptions = Partial<{
previewColor: Color; // path preview text color
indicatorColor: Color; // ● color
}>;