@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
43 lines (42 loc) • 1.94 kB
JavaScript
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 React.createElement(React.Fragment, null, "adasdasdas");
}
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 React.createElement(CustomToolbarCmp, { customToolbar: customToolbar, dashboardRevision: revision });
}
return React.createElement(React.Fragment, null);
};
export const DashboardToolbarFactory = (props) => {
if (ALL_MODULES.includes(props.toolbarName)) {
return React.createElement(SystemDashboardToolbarFactory, { toolbarName: props.toolbarName });
}
else {
return React.createElement(CustomDashboardToolbarFactory, { toolbarName: props.toolbarName });
}
};