Ver Fonte

Make named colors optional in color picker, enable named colors in graph legend series picker

Dominik Prokop há 7 anos atrás
pai
commit
c3e5737fb8

+ 16 - 1
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 = <T extends ColorPickerProps>(
     static displayName = displayName || 'ColorPicker';
     pickerTriggerRef = createRef<HTMLDivElement>();
 
+    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 (
           <div

+ 1 - 0
public/app/plugins/panel/graph/Legend/LegendSeriesItem.tsx

@@ -177,6 +177,7 @@ class LegendSeriesIcon extends PureComponent<LegendSeriesIconProps, LegendSeries
               onChange={this.props.onColorChange}
               onToggleAxis={this.props.onToggleAxis}
               theme={theme}
+              enableNamedColors
             >
               <span className="graph-legend-icon">
                 <SeriesIcon color={this.props.color} />