import { css } from '@emotion/css'; import React from 'react'; import { GrafanaTheme2 } from '@grafana/data'; import { SceneComponentProps } from '@grafana/scenes'; import { useStyles2 } from '@grafana/ui'; import { NavToolbarActions } from '../scene/NavToolbarActions'; import { getDashboardSceneFor } from '../utils/utils'; import { PanelEditor } from './PanelEditor'; export function PanelEditorRenderer({ model }: SceneComponentProps) { const dashboard = getDashboardSceneFor(model); const { body } = model.useState(); const { controls } = dashboard.useState(); const styles = useStyles2(getStyles); return ( <>
{controls && (
{controls.map((control) => ( ))}
)}
); } function getStyles(theme: GrafanaTheme2) { return { canvasContent: css({ label: 'canvas-content', display: 'flex', flexDirection: 'column', flexBasis: '100%', flexGrow: 1, minHeight: 0, width: '100%', }), body: css({ label: 'body', flexGrow: 1, display: 'flex', position: 'relative', minHeight: 0, gap: '8px', }), controls: css({ display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: theme.spacing(1), padding: theme.spacing(2), }), }; }