1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Scrolling to item on TreeItem click

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2021-03-05 17:37:49 +03:00
parent 662cb25787
commit d0e25e90b0

View File

@ -25,6 +25,7 @@ export function RecursiveTreeView({ data }: Props) {
key={node.id} key={node.id}
nodeId={node.id} nodeId={node.id}
label={node.name} label={node.name}
onLabelClick={() => scrollToItem(node.id)}
className={cssNames({selected: node.selected})} className={cssNames({selected: node.selected})}
> >
{Array.isArray(node.children) ? node.children.map((node) => renderTree([node])) : null} {Array.isArray(node.children) ? node.children.map((node) => renderTree([node])) : null}
@ -32,6 +33,12 @@ export function RecursiveTreeView({ data }: Props) {
)); ));
}; };
const scrollToItem = (id: string) => {
const element = document.getElementById(id);
element?.scrollIntoView();
};
const getAllNodeIds = (nodes: NavigationTree[]): string[] => { const getAllNodeIds = (nodes: NavigationTree[]): string[] => {
return flattenDeep(nodes.map(node => { return flattenDeep(nodes.map(node => {
return [node.id, ...node.children.map(item => getAllNodeIds([item]))]; return [node.id, ...node.children.map(item => getAllNodeIds([item]))];