From c3e5737fb87d153efd48aa31d15c65e7d4adc477 Mon Sep 17 00:00:00 2001 From: Dominik Prokop Date: Tue, 22 Jan 2019 13:35:57 +0100 Subject: [PATCH] Make named colors optional in color picker, enable named colors in graph legend series picker --- .../src/components/ColorPicker/ColorPicker.tsx | 17 ++++++++++++++++- .../panel/graph/Legend/LegendSeriesItem.tsx | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) 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 (