diff --git a/eslint-suppressions.json b/eslint-suppressions.json index e9af258606b..2450d3721d7 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -2071,9 +2071,6 @@ } }, "public/app/features/dashboard-scene/settings/variables/VariableEditableElement.tsx": { - "no-restricted-syntax": { - "count": 1 - }, "react-hooks/rules-of-hooks": { "count": 4 } diff --git a/public/app/features/dashboard-scene/settings/variables/VariableEditableElement.tsx b/public/app/features/dashboard-scene/settings/variables/VariableEditableElement.tsx index c9b64183853..78876f4ee55 100644 --- a/public/app/features/dashboard-scene/settings/variables/VariableEditableElement.tsx +++ b/public/app/features/dashboard-scene/settings/variables/VariableEditableElement.tsx @@ -150,7 +150,7 @@ function VariableNameInput({ variable, isNewElement }: { variable: SceneVariable const oldName = useRef(name); return ( - + isEditableVariableType(variable.state.type)); } public useEditPaneOptions = useEditPaneOptions.bind(this, this.set); @@ -71,9 +73,12 @@ export function VariableList({ set }: { set: SceneVariableSet }) { DashboardInteractions.addVariableButtonClicked({ source: 'edit_pane' }); }, [set]); + // Filter out system and snapshot variables - they should not appear in the list + const editableVariables = variables.filter((variable) => isEditableVariableType(variable.state.type)); + return ( - {variables.map((variable) => ( + {editableVariables.map((variable) => ( // TODO fix keyboard a11y here // eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events
onEditVariable(variable)}> diff --git a/public/app/features/dashboard-scene/settings/variables/components/AdHocVariableForm.tsx b/public/app/features/dashboard-scene/settings/variables/components/AdHocVariableForm.tsx index 5434068f21e..334d7db98da 100644 --- a/public/app/features/dashboard-scene/settings/variables/components/AdHocVariableForm.tsx +++ b/public/app/features/dashboard-scene/settings/variables/components/AdHocVariableForm.tsx @@ -98,9 +98,9 @@ export function AdHocVariableForm({ > { - if (defaultKeys === undefined) { + if (defaultKeys == null) { onDefaultKeysChange([]); } else { onDefaultKeysChange(undefined); @@ -109,7 +109,7 @@ export function AdHocVariableForm({ /> - {defaultKeys !== undefined && ( + {defaultKeys != null && ( { }); it('should return false for non-editable variable types', () => { - const nonEditableTypes: VariableType[] = ['system']; + const nonEditableTypes: VariableType[] = ['system', 'snapshot']; nonEditableTypes.forEach((type) => { expect(isEditableVariableType(type)).toBe(false); }); diff --git a/public/app/features/dashboard-scene/settings/variables/utils.ts b/public/app/features/dashboard-scene/settings/variables/utils.ts index 23941e3e330..bbb56b0e8c6 100644 --- a/public/app/features/dashboard-scene/settings/variables/utils.ts +++ b/public/app/features/dashboard-scene/settings/variables/utils.ts @@ -47,7 +47,7 @@ interface EditableVariableConfig { export type EditableVariableType = Exclude; export function isEditableVariableType(type: VariableType): type is EditableVariableType { - return type !== 'system'; + return type !== 'system' && type !== 'snapshot'; } export const getEditableVariables: () => Record = () => ({