Dashboard: Hide add variable button in edit views (#113438)

This commit is contained in:
Bogdan Matei
2025-11-05 14:38:31 +02:00
committed by GitHub
parent 93f1c24b82
commit d9d227ec4d
2 changed files with 13 additions and 10 deletions
@@ -27,11 +27,7 @@ export function VariableControls({ dashboard }: { dashboard: DashboardScene }) {
.map((variable) => (
<VariableValueSelectWrapper key={variable.state.key} variable={variable} />
))}
{config.featureToggles.dashboardNewLayouts ? (
<div className="dashboard-canvas-add-button">
<AddVariableButton dashboard={dashboard} />
</div>
) : null}
{config.featureToggles.dashboardNewLayouts ? <AddVariableButton dashboard={dashboard} /> : null}
</>
);
}
@@ -9,7 +9,7 @@ import { DashboardInteractions } from '../utils/interactions';
import { DashboardScene } from './DashboardScene';
export function AddVariableButton({ dashboard }: { dashboard: DashboardScene }) {
const { isEditing } = dashboard.useState();
const { editview, editPanel, isEditing, viewPanel } = dashboard.useState();
const handlePointerDown: PointerEventHandler = useCallback(
(evt) => {
@@ -20,13 +20,20 @@ export function AddVariableButton({ dashboard }: { dashboard: DashboardScene })
[dashboard]
);
if (!isEditing) {
// Hide the button if:
// - the dashboard is not in edit mode
// - the dashboard is in an edit view mode
// - the dashboard is in a view panel mode
// - the dashboard is in an edit panel mode
if (!isEditing || !!editview || !!viewPanel || !!editPanel) {
return null;
}
return (
<Button icon="plus" variant="primary" fill="text" onPointerDown={handlePointerDown}>
<Trans i18nKey="dashboard-scene.variable-controls.add-variable">Add variable</Trans>
</Button>
<div className="dashboard-canvas-add-button">
<Button icon="plus" variant="primary" fill="text" onPointerDown={handlePointerDown}>
<Trans i18nKey="dashboard-scene.variable-controls.add-variable">Add variable</Trans>
</Button>
</div>
);
}