diff --git a/public/app/features/dashboard-scene/scene/DashboardControls.tsx b/public/app/features/dashboard-scene/scene/DashboardControls.tsx index 0c8b3b51e6b..8368463d25d 100644 --- a/public/app/features/dashboard-scene/scene/DashboardControls.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardControls.tsx @@ -17,7 +17,7 @@ import { SceneObjectUrlValues, CancelActivationHandler, } from '@grafana/scenes'; -import { Box, Button, useStyles2 } from '@grafana/ui'; +import { Box, Button, Stack, useStyles2 } from '@grafana/ui'; import { playlistSrv } from 'app/features/playlist/PlaylistSrv'; import { PanelEditControls } from '../panel-edit/PanelEditControls'; @@ -52,7 +52,13 @@ export class DashboardControls extends SceneObjectBase { }); protected _urlSync = new SceneObjectUrlSyncConfig(this, { - keys: ['_dash.hideTimePicker', '_dash.hideVariables', '_dash.hideLinks', '_dash.hideDashboardControls'], + keys: [ + '_dash.hideTimePicker', + '_dash.hideVariables', + '_dash.hideAnnotations', + '_dash.hideLinks', + '_dash.hideDashboardControls', + ], }); /** @@ -171,17 +177,17 @@ function DashboardControlsRenderer({ model }: SceneComponentProps {/* Time controls */} {!hideTimeControls && ( -
+ -
+ )} {/* Actions (edit, play, share, etc.) */} {config.featureToggles.dashboardNewLayouts && ( -
+ -
+ )} @@ -191,7 +197,7 @@ function DashboardControlsRenderer({ model }: SceneComponentProps} {!hideAnnotationControls && } {!hideLinksControls && !editPanel && } - {!hideDashboardControls && hasDashboardControls(dashboard) && } + {!hideDashboardControls && hasDashboardControls && } {editPanel && } {showDebugger && } @@ -250,13 +256,14 @@ function getStyles(theme: GrafanaTheme2) { controls: css({ gap: theme.spacing(1), padding: theme.spacing(2, 2, 1, 2), - flexDirection: 'row', + display: 'flex', + flexDirection: 'row-reverse', flexWrap: 'nowrap', position: 'relative', width: '100%', marginLeft: 'auto', [theme.breakpoints.down('sm')]: { - flexDirection: 'column-reverse', + flexDirection: 'column', alignItems: 'stretch', }, '&:hover .dashboard-canvas-add-button': { @@ -276,38 +283,33 @@ function getStyles(theme: GrafanaTheme2) { leftControls: css({ display: 'flex', gap: theme.spacing(1), - float: 'left', alignItems: 'flex-start', + justifyContent: 'flex-start', + flex: 1, flexWrap: 'wrap', maxWidth: '100%', minWidth: 0, }), rightControls: css({ - display: 'flex', + display: 'inline-flex', gap: theme.spacing(1), - float: 'right', alignItems: 'flex-start', - flexWrap: 'wrap', + justifyContent: 'flex-end', + flexWrap: 'nowrap', + flexShrink: 0, maxWidth: '100%', minWidth: 0, - }), - fixedControls: css({ - display: 'flex', - justifyContent: 'flex-end', - gap: theme.spacing(1), - marginBottom: theme.spacing(1), - order: 2, - marginLeft: 'auto', - flexShrink: 0, - alignSelf: 'flex-start', - }), - dashboardControlsButton: css({ - order: 2, - marginLeft: 'auto', + [theme.breakpoints.down('sm')]: { + flexWrap: 'wrap', + }, }), rightControlsWrap: css({ flexWrap: 'wrap', marginLeft: 'auto', }), + dashboardControlsButton: css({ + order: 2, + marginLeft: 'auto', + }), }; } diff --git a/public/app/features/dashboard-scene/scene/DashboardDataLayerControls.tsx b/public/app/features/dashboard-scene/scene/DashboardDataLayerControls.tsx index 94929687be2..f31f02be1de 100644 --- a/public/app/features/dashboard-scene/scene/DashboardDataLayerControls.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardDataLayerControls.tsx @@ -1,5 +1,4 @@ import { SceneDataLayerProvider, sceneGraph } from '@grafana/scenes'; -import { Stack } from '@grafana/ui'; import { isDashboardDataLayerSetState } from './DashboardDataLayerSet'; import { DashboardScene } from './DashboardScene'; @@ -16,11 +15,11 @@ export function DashboardDataLayerControls({ dashboard }: { dashboard: Dashboard if (isDashboardDataLayerSetState(state)) { return ( - + <> {state.annotationLayers.filter(isDefaultPlacement).map((layer) => ( ))} - + ); } diff --git a/public/app/features/dashboard-scene/scene/DashboardLinkRenderer.tsx b/public/app/features/dashboard-scene/scene/DashboardLinkRenderer.tsx index d2571314782..92ea9aa473f 100644 --- a/public/app/features/dashboard-scene/scene/DashboardLinkRenderer.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardLinkRenderer.tsx @@ -63,7 +63,6 @@ function getStyles(theme: GrafanaTheme2) { display: 'inline-flex', alignItems: 'center', verticalAlign: 'middle', - marginBottom: theme.spacing(1), }), }; } diff --git a/public/app/features/dashboard-scene/scene/DashboardLinksControls.tsx b/public/app/features/dashboard-scene/scene/DashboardLinksControls.tsx index 5a9569dd298..8053055fe81 100644 --- a/public/app/features/dashboard-scene/scene/DashboardLinksControls.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardLinksControls.tsx @@ -1,6 +1,5 @@ import { sceneGraph } from '@grafana/scenes'; import { DashboardLink } from '@grafana/schema'; -import { Stack } from '@grafana/ui'; import { DashboardLinkRenderer } from './DashboardLinkRenderer'; import { DashboardScene } from './DashboardScene'; @@ -19,12 +18,12 @@ export function DashboardLinksControls({ links, dashboard }: Props) { } return ( - + <> {links .filter((link) => link.placement === undefined) .map((link: DashboardLink, index: number) => ( ))} - + ); } diff --git a/public/app/features/dashboard-scene/scene/VariableControls.tsx b/public/app/features/dashboard-scene/scene/VariableControls.tsx index 457a6a06fad..cd4f0aa4265 100644 --- a/public/app/features/dashboard-scene/scene/VariableControls.tsx +++ b/public/app/features/dashboard-scene/scene/VariableControls.tsx @@ -12,7 +12,7 @@ import { ControlsLayout, sceneUtils, } from '@grafana/scenes'; -import { Stack, useElementSelection, useStyles2 } from '@grafana/ui'; +import { useElementSelection, useStyles2 } from '@grafana/ui'; import { DashboardScene } from './DashboardScene'; import { AddVariableButton } from './VariableControlsAddButton'; @@ -21,14 +21,14 @@ export function VariableControls({ dashboard }: { dashboard: DashboardScene }) { const { variables } = sceneGraph.getVariables(dashboard)!.useState(); return ( - + <> {variables .filter((v) => v.state.hide !== VariableHide.inControlsMenu) .map((variable) => ( ))} {config.featureToggles.dashboardNewLayouts ? : null} - + ); } @@ -173,7 +173,6 @@ const getStyles = (theme: GrafanaTheme2) => ({ borderTopLeftRadius: 'unset', borderBottomLeftRadius: 'unset', }), - marginBottom: theme.spacing(1), }), verticalContainer: css({ display: 'flex', diff --git a/public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx b/public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx index ae5cffb9b31..f2d0d9e026f 100644 --- a/public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx +++ b/public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx @@ -181,7 +181,6 @@ function getStyles(theme: GrafanaTheme2) { display: 'inline-flex', alignItems: 'center', verticalAlign: 'middle', - marginBottom: theme.spacing(1), }), }; }