Files
nikki-kiga 7a3b52783c Geomap: Add Property and values to GeoJSON style rule (#41845)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-11-18 09:29:40 +01:00

34 lines
820 B
TypeScript

import { SelectableValue } from '@grafana/data';
export interface SelectionInfo<T = any> {
options: Array<SelectableValue<T>>;
current?: SelectableValue<T>;
}
/**
* The select component is really annoying -- if the current value is not in the list of options
* it won't show up. This is a wrapper to make that happen.
*/
export function getSelectionInfo<T>(v?: T, options?: Array<SelectableValue<T>>): SelectionInfo<T> {
if (v && !options) {
const current = { label: `${v}`, value: v };
return { options: [current], current };
}
if (!options) {
options = [];
}
let current = options.find((item) => item.value === v);
if (v && !current) {
current = {
label: `${v} (not found)`,
value: v,
};
options.push(current);
}
return {
options,
current,
};
}