import React from 'react'; import type {PreparedStorageNode} from '../../../store/reducers/storage/types'; import {cn} from '../../../utils/cn'; import type {PreparedVersion} from '../../../utils/versions/types'; import {NodesTable} from '../NodesTable/NodesTable'; import {NodesTreeTitle} from '../NodesTreeTitle/NodesTreeTitle'; import {VersionsBlock} from '../VersionsBlock/VersionsBlock'; import type {GroupedNodesItem} from '../types'; import './GroupedNodesTree.scss'; const b = cn('ydb-versions-grouped-node-tree'); interface GroupedNodesTreeProps { title?: string; isDatabase?: boolean; nodes?: PreparedStorageNode[]; items?: GroupedNodesItem[]; expanded?: boolean; versionColor?: string; preparedVersions?: PreparedVersion[]; } export const GroupedNodesTree = ({ title, isDatabase, nodes, items, expanded = false, versionColor, preparedVersions, }: GroupedNodesTreeProps) => { const [isOpened, setIsOpened] = React.useState(false); React.useEffect(() => { setIsOpened(expanded); }, [expanded]); const toggleCollapsed = () => { setIsOpened((value) => !value); }; const renderHeader = () => { return ( ); }; const renderItemsContent = () => { return items?.map((item, index) => ( )); }; const renderNodesContent = () => { return ; }; const renderContent = () => { if (items) { return renderItemsContent(); } return renderNodesContent(); }; return (
); };