@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
27 lines (26 loc) • 1.46 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { cn } from '../../../lib/utils';
import { Box } from '../../../components/Flex';
import { useAdaptable } from '../../AdaptableContext';
import { AdaptableObjectList } from '../../Components/AdaptableObjectList';
import { useRerender } from '../../../components/utils/useRerender';
import { useEffect } from 'react';
export const AdaptableObjectsSummary = ({ className, }) => {
const adaptable = useAdaptable();
const rerender = useRerender();
useEffect(() => {
return adaptable.api.eventApi.on('AdaptableStateChanged', rerender);
}, [adaptable]);
const modules = adaptable.ModuleService.getModuleCollection();
const baseClassName = 'ab-AdaptableObjectsSummary';
return (_jsx(Box, { className: cn(baseClassName, className), children: [...modules].map(([moduleName, module]) => {
if (!module.isModuleVisible()) {
return null;
}
const items = module?.toViewAll?.();
if (!items?.length) {
return null;
}
return (_jsxs(Box, { "data-name": module.moduleInfo.ModuleName, className: `${baseClassName}__module-list`, children: [_jsx("b", { className: `${baseClassName}__header`, children: module.moduleInfo.FriendlyName }), items?.length && _jsx(AdaptableObjectList, { items: items, module: module })] }, module.moduleInfo.ModuleName));
}) }));
};