@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
44 lines (43 loc) • 1.91 kB
JavaScript
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
import * as React from 'react';
import { useSelector } from 'react-redux';
import { ALL_MODULES } from '../../AdaptableState/Common/Types';
import { useAdaptable } from '../AdaptableContext';
import { AdaptableViewPanelFactory } from '../AdaptableViewFactory';
import { CustomToolbarCmp } from './CustomToolbar';
const SystemDashboardToolbarFactory = (props) => {
const adaptable = useAdaptable();
const moduleInfo = adaptable.api.internalApi
.getModuleService()
.getModuleInfoByModule(props.toolbarName);
const accessLevel = adaptable.api.entitlementApi.getEntitlementAccessLevelForModule(props.toolbarName);
const moduleToolbarView = AdaptableViewPanelFactory.get(props.toolbarName);
if (!moduleToolbarView) {
return _jsx(_Fragment, {});
}
const moduleToolbarElement = React.createElement(moduleToolbarView, {
viewType: 'Toolbar',
api: adaptable.api,
accessLevel,
moduleInfo,
});
return moduleToolbarElement;
};
const CustomDashboardToolbarFactory = (props) => {
const revision = useSelector((state) => state.Internal.Dashboard.DashboardRevision);
const adaptable = useAdaptable();
const customToolbars = adaptable.api.dashboardApi.getCustomToolbars();
const customToolbar = customToolbars && customToolbars.find((ct) => ct.name == props.toolbarName);
if (customToolbar) {
return _jsx(CustomToolbarCmp, { customToolbar: customToolbar, dashboardRevision: revision });
}
return _jsx(_Fragment, {});
};
export const DashboardToolbarFactory = (props) => {
if (ALL_MODULES.includes(props.toolbarName)) {
return _jsx(SystemDashboardToolbarFactory, { toolbarName: props.toolbarName });
}
else {
return _jsx(CustomDashboardToolbarFactory, { toolbarName: props.toolbarName });
}
};