@adaptabletools/adaptable-cjs
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
46 lines (45 loc) • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PinnedToolbarsSelector = void 0;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const react_redux_1 = require("react-redux");
const ModuleManager_1 = require("../../components/DragAndDropContext/ModuleManager");
const DashboardRedux_1 = require("../../Redux/ActionsReducers/DashboardRedux");
const AdaptableContext_1 = require("../AdaptableContext");
const PinnedToolbarsSelector = (props) => {
const { api } = (0, AdaptableContext_1.useAdaptable)();
const dashboardAccessLevel = api.entitlementApi.getEntitlementAccessLevelForModule('Dashboard');
const isDashboardDisabled = dashboardAccessLevel === 'ReadOnly';
const dashboardState = (0, react_redux_1.useSelector)((state) => state.Dashboard);
const dispatch = (0, react_redux_1.useDispatch)();
const pinnedToolbars = dashboardState.PinnedToolbars;
const toolbars = React.useMemo(() => {
const systemToolbars = api.dashboardApi.internalApi.getModuleToolbars().map((mt) => ({
Id: mt.id,
Title: mt.friendlyName,
}));
const customToolbars = api.dashboardApi.getCustomToolbars().map((ct) => ({
Id: ct.name,
Title: ct.title ? ct.title : ct.name,
}));
return [...systemToolbars, ...customToolbars];
}, []);
const tabs = React.useMemo(() => {
return [
{
Name: 'Pinned Toolbars',
Items: pinnedToolbars ?? [],
},
];
}, [pinnedToolbars]);
return (React.createElement(ModuleManager_1.ModuleManager, { permittedActions: {
createTab: false,
dragAndDropTab: false,
deleteTab: false,
editTabName: false,
}, onTabsChange: (tabs) => {
dispatch((0, DashboardRedux_1.DashboardSetPinnedToolbars)(tabs[0].Items));
}, disabled: isDashboardDisabled, tabs: tabs, availableItems: toolbars, tabsTitle: 'Pinned Toolbars', unusedPanelTitle: "Available Pinned Toolbars", dragItemText: "Drag into the Panel below" }));
};
exports.PinnedToolbarsSelector = PinnedToolbarsSelector;