mirror of
https://github.com/grafana/grafana.git
synced 2025-08-06 20:59:35 +08:00

* user essentials mob! 🔱 lastFile:public/app/features/variables/textbox/TextBoxVariablePicker.tsx * user essentials mob! 🔱 * user essentials mob! 🔱 lastFile:public/app/features/variables/adhoc/picker/AdHocFilter.tsx * finish up disabling variables in snapshots * remove accident * use theme.spacing instead of the v1 shim Co-authored-by: Joao Silva <joao.silva@grafana.com> Co-authored-by: Leodegario Pasakdal <leodegario.pasakdal@grafana.com>
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import React, { FunctionComponent, useEffect, useState } from 'react';
|
|
|
|
import { selectors } from '@grafana/e2e-selectors';
|
|
|
|
import { PickerRenderer } from '../../../variables/pickers/PickerRenderer';
|
|
import { VariableHide, VariableModel } from '../../../variables/types';
|
|
|
|
interface Props {
|
|
variables: VariableModel[];
|
|
readOnly?: boolean;
|
|
}
|
|
|
|
export const SubMenuItems: FunctionComponent<Props> = ({ variables, readOnly }) => {
|
|
const [visibleVariables, setVisibleVariables] = useState<VariableModel[]>([]);
|
|
|
|
useEffect(() => {
|
|
setVisibleVariables(variables.filter((state) => state.hide !== VariableHide.hideVariable));
|
|
}, [variables]);
|
|
|
|
if (visibleVariables.length === 0) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<>
|
|
{visibleVariables.map((variable) => {
|
|
return (
|
|
<div
|
|
key={variable.id}
|
|
className="submenu-item gf-form-inline"
|
|
data-testid={selectors.pages.Dashboard.SubMenu.submenuItem}
|
|
>
|
|
<PickerRenderer variable={variable} readOnly={readOnly} />
|
|
</div>
|
|
);
|
|
})}
|
|
</>
|
|
);
|
|
};
|