onSelect(node.id, e))}
/>
);
}
return ;
}
function getIcon(fileIconMatchers: FileIconMatch[]) {
return function Icon({ id }: TreeNode) {
return getFileIcon(fileIconMatchers, id);
};
}
export function CodeCompareTree({
currentFile,
fileIconSlot,
className,
fileTree,
drawerName,
widgets,
getHref,
open,
onTreeNodeSelected,
}: CodeCompareTreeProps) {
const fileIconMatchers: FileIconMatch[] = useMemo(() => flatten(fileIconSlot?.values()), [fileIconSlot]);
const defaultDrawer = () => {
return ['FILES'];
};
const [openDrawerList, onToggleDrawer] = useState(defaultDrawer);
const handleDrawerToggle = (id: string) => {
const isDrawerOpen = openDrawerList.includes(id);
if (isDrawerOpen) {
onToggleDrawer((list) => list.filter((drawer) => drawer !== id));
return;
}
onToggleDrawer((list) => list.concat(id));
};
if (!open) return null;
return (
handleDrawerToggle('FILES')}
name={drawerName}
contentClass={styles.componentCompareCodeDrawerContent}
className={classNames(styles.componentCompareCodeTabDrawer)}
drawerNameClass={styles.componentCompareDrawerName}
>
);
}