UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

43 lines (42 loc) 1.97 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { ModuleManager } from '../../components/DragAndDropContext/ModuleManager'; import { DashboardSetPinnedToolbars } from '../../Redux/ActionsReducers/DashboardRedux'; import { ACCESS_LEVEL_READ_ONLY } from '../../Utilities/Constants/GeneralConstants'; import { useAdaptable } from '../AdaptableContext'; export const PinnedToolbarsSelector = (props) => { const { api } = useAdaptable(); const dashboardAccessLevel = api.entitlementApi.getEntitlementAccessLevelForModule('Dashboard'); const isDashboardDisabled = dashboardAccessLevel === ACCESS_LEVEL_READ_ONLY; const dashboardState = useSelector((state) => state.Dashboard); const dispatch = 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: '', Items: pinnedToolbars ?? [], }, ]; }, [pinnedToolbars]); return (_jsx(ModuleManager, { dragScope: "dashboard-pinned", layout: "strip", permittedActions: { createTab: false, dragAndDropTab: false, deleteTab: false, editTabName: false, }, onTabsChange: (tabs) => { dispatch(DashboardSetPinnedToolbars(tabs[0].Items)); }, disabled: isDashboardDisabled, tabs: tabs, availableItems: toolbars, filterOutSelectedItems: true })); };