2025-02-05 00:07:38 +05:30

34 lines
884 B
TypeScript

import Node from '@/components/dashboard/library/Node';
import { TreeProps } from '@/components/dashboard/library/types';
import React from 'react';
type BranchProps<T> = {
item: TreeProps<T>['data'][number];
level: number;
};
function Branch<T>({ item, level }: BranchProps<T>): React.JSX.Element {
const [expanded, setExpanded] = React.useState(item.initiallyExpanded ?? false);
const hasChild = item?.children?.length;
const renderSubBranches = () => {
if (hasChild) {
const newLevel = level + 1;
return item?.children?.map((el) => <Branch key={el.id} item={el} level={newLevel} />);
}
};
const onExpand = () => {
setExpanded((prev) => !prev);
};
return (
<div className="pt-2">
<Node item={item} onExpand={onExpand} isExpanded={expanded} />
{expanded && renderSubBranches()}
</div>
);
}
export default Branch;