diff --git a/packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx b/packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx index 68edf8abcd1..12ee4977137 100644 --- a/packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx +++ b/packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx @@ -9,6 +9,7 @@ import { SeriesColorPickerPopover } from './SeriesColorPickerPopover'; export interface ColorPickerProps extends Themeable { color: string; onChange: (color: string) => void; + enableNamedColors?: boolean; withArrow?: boolean; children?: JSX.Element; } @@ -22,10 +23,24 @@ export const colorPickerFactory = ( static displayName = displayName || 'ColorPicker'; pickerTriggerRef = createRef(); + handleColorChange = (color: string) => { + const { enableNamedColors, onChange } = this.props; + + if (enableNamedColors) { + return onChange(color); + } + + return onChange(getColorFromHexRgbOrName(color)); + + }; render() { - const popoverElement = React.createElement(popover, this.props); + const popoverElement = React.createElement(popover, { + ...this.props, + onChange: this.handleColorChange, + }); const { theme, withArrow, children } = this.props; + // TODO: hoist that this shit const renderArrow: RenderPopperArrowFn = ({ arrowProps, placement }) => { return (