mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 01:53:33 -06:00
* Chore: Fix typescript strict null errors * Added new limit * Fixed ts issue * fixed tests * trying to fix type inference * Fixing more ts errors * Revert tsconfig option * Fix * Fixed code * More fixes * fix tests * Updated snapshot * Chore: More ts strict null fixes * More fixes in some really messed up azure config components * More fixes, current count: 441 * 419 * More fixes * Fixed invalid initial state in explore * Fixing tests * Fixed tests * Explore fix * More fixes * Progress * Sub 300 * Now at 218 * Progress * Update * Progress * Updated tests * at 159 * fixed tests * Progress * YAy blow 100! at 94 * 10,9,8,7,6,5,4,3,2,1... lift off * Fixed tests * Fixed more type errors Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import React, { FC, useCallback, useMemo } from 'react';
|
|
import { useSelector } from 'react-redux';
|
|
import { Select } from '@grafana/ui';
|
|
import { SelectableValue } from '@grafana/data';
|
|
|
|
import { getVariables } from '../../../variables/state/selectors';
|
|
import { StoreState } from '../../../../types';
|
|
|
|
export interface Props {
|
|
repeat: string | undefined | null;
|
|
onChange: (name: string | null | undefined) => void;
|
|
}
|
|
|
|
export const RepeatRowSelect: FC<Props> = ({ repeat, onChange }) => {
|
|
const variables = useSelector((state: StoreState) => getVariables(state));
|
|
|
|
const variableOptions = useMemo(() => {
|
|
const options = variables.map((item: any) => {
|
|
return { label: item.name, value: item.name };
|
|
});
|
|
|
|
if (options.length === 0) {
|
|
options.unshift({
|
|
label: 'No template variables found',
|
|
value: null,
|
|
});
|
|
}
|
|
|
|
options.unshift({
|
|
label: 'Disable repeating',
|
|
value: null,
|
|
});
|
|
|
|
return options;
|
|
}, variables);
|
|
|
|
const onSelectChange = useCallback((option: SelectableValue<string | null>) => onChange(option.value), [onChange]);
|
|
|
|
return <Select value={repeat} onChange={onSelectChange} options={variableOptions} />;
|
|
};
|