diff --git a/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx b/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx index b0b3f05d018..70068fe5cff 100644 --- a/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx +++ b/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx @@ -6,9 +6,11 @@ import { AppChromeUpdate } from 'app/core/components/AppChrome/AppChromeUpdate'; import { NavToolbarSeparator } from 'app/core/components/AppChrome/NavToolbar/NavToolbarSeparator'; import { t } from 'app/core/internationalization'; import { DashNavButton } from 'app/features/dashboard/components/DashNav/DashNavButton'; +import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv'; import { ShareModal } from '../sharing/ShareModal'; import { DashboardInteractions } from '../utils/interactions'; +import { dynamicDashNavActions } from '../utils/registerDynamicDashNavAction'; import { DashboardScene } from './DashboardScene'; @@ -19,6 +21,8 @@ interface Props { export const NavToolbarActions = React.memo(({ dashboard }) => { const { actions = [], isEditing, viewPanelScene, isDirty, uid, meta, editview } = dashboard.useState(); const toolbarActions = (actions ?? []).map((action) => ); + const rightToolbarActions: JSX.Element[] = []; + const _legacyDashboardModel = getDashboardSrv().getCurrent(); if (uid && !editview) { if (meta.canStar) { @@ -61,10 +65,31 @@ export const NavToolbarActions = React.memo(({ dashboard }) => { onClick={() => locationService.push(`/d/${uid}`)} /> ); + if (dynamicDashNavActions.left.length > 0) { + dynamicDashNavActions.left.map((action, index) => { + const Component = action.component; + const element = ; + typeof action.index === 'number' + ? toolbarActions.splice(action.index, 0, element) + : toolbarActions.push(element); + }); + } } toolbarActions.push(); + if (dynamicDashNavActions.right.length > 0) { + dynamicDashNavActions.right.map((action, index) => { + const Component = action.component; + const element = ; + typeof action.index === 'number' + ? rightToolbarActions.splice(action.index, 0, element) + : rightToolbarActions.push(element); + }); + + toolbarActions.push(...rightToolbarActions); + } + if (viewPanelScene) { toolbarActions.push(