Skip to content

Commit

Permalink
Merge remote-tracking branch 'grafana/master' into single-stat-data-f…
Browse files Browse the repository at this point in the history
…rame

* grafana/master:
  Rewrite user profile edit to react (grafana#17917)
  Docs: remove codecov badge (grafana#18623)
  Prometheus: Prevents panel editor crash when switching to Prometheus datasource (grafana#18616)
  Chore: Rename Popper to Popover (grafana#18543)
  • Loading branch information
ryantxu committed Aug 19, 2019
2 parents 1f28e0e + e3e2cd8 commit de58d9d
Show file tree
Hide file tree
Showing 30 changed files with 294 additions and 145 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# [Grafana](https://grafana.com) [![Circle CI](https://circleci.com/gh/grafana/grafana.svg?style=svg)](https://circleci.com/gh/grafana/grafana) [![Go Report Card](https://goreportcard.com/badge/github.com/grafana/grafana)](https://goreportcard.com/report/github.com/grafana/grafana) [![codecov](https://codecov.io/gh/grafana/grafana/branch/master/graph/badge.svg)](https://codecov.io/gh/grafana/grafana)
# [Grafana](https://grafana.com) [![Circle CI](https://circleci.com/gh/grafana/grafana.svg?style=svg)](https://circleci.com/gh/grafana/grafana) [![Go Report Card](https://goreportcard.com/badge/github.com/grafana/grafana)](https://goreportcard.com/report/github.com/grafana/grafana)

[Website](https://grafana.com) |
[Twitter](https://twitter.com/grafana) |
Expand Down
10 changes: 5 additions & 5 deletions packages/grafana-ui/src/components/ColorPicker/ColorPicker.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { Component, createRef } from 'react';
import omit from 'lodash/omit';
import { PopperController } from '../Tooltip/PopperController';
import { Popper } from '../Tooltip/Popper';
import { PopoverController } from '../Tooltip/PopoverController';
import { Popover } from '../Tooltip/Popover';
import { ColorPickerPopover, ColorPickerProps, ColorPickerChangeHandler } from './ColorPickerPopover';
import { getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
import { SeriesColorPickerPopover } from './SeriesColorPickerPopover';
Expand Down Expand Up @@ -46,12 +46,12 @@ export const colorPickerFactory = <T extends ColorPickerProps>(
});

return (
<PopperController content={popoverElement} hideAfter={300}>
<PopoverController content={popoverElement} hideAfter={300}>
{(showPopper, hidePopper, popperProps) => {
return (
<>
{this.pickerTriggerRef.current && (
<Popper
<Popover
{...popperProps}
referenceElement={this.pickerTriggerRef.current}
wrapperClassName="ColorPicker"
Expand Down Expand Up @@ -80,7 +80,7 @@ export const colorPickerFactory = <T extends ColorPickerProps>(
</>
);
}}
</PopperController>
</PopoverController>
);
}
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import { NamedColorsPalette } from './NamedColorsPalette';
import { getColorName, getColorFromHexRgbOrName } from '../../utils/namedColorsPalette';
import { PopperContentProps } from '../Tooltip/PopperController';
import { PopoverContentProps } from '../Tooltip/Tooltip';
import SpectrumPalette from './SpectrumPalette';
import { GrafanaThemeType, Themeable } from '../../types/theme';
import { warnAboutColorPickerPropsDeprecation } from './warnAboutColorPickerPropsDeprecation';
Expand All @@ -19,7 +19,7 @@ export interface ColorPickerProps extends Themeable {
enableNamedColors?: boolean;
}

export interface Props<T> extends ColorPickerProps, PopperContentProps {
export interface Props<T> extends ColorPickerProps, PopoverContentProps {
customPickers?: T;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import React, { FunctionComponent } from 'react';

import { ColorPickerPopover, ColorPickerProps } from './ColorPickerPopover';
import { PopperContentProps } from '../Tooltip/PopperController';
import { PopoverContentProps } from '../Tooltip/Tooltip';
import { Switch } from '../Switch/Switch';
import { withTheme } from '../../themes/ThemeContext';

export interface SeriesColorPickerPopoverProps extends ColorPickerProps, PopperContentProps {
export interface SeriesColorPickerPopoverProps extends ColorPickerProps, PopoverContentProps {
yaxis?: number;
onToggleAxis?: () => void;
}
Expand Down
4 changes: 2 additions & 2 deletions packages/grafana-ui/src/components/FormField/FormField.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import React, { InputHTMLAttributes, FunctionComponent } from 'react';
import { FormLabel } from '../FormLabel/FormLabel';
import { PopperContent } from '../Tooltip/PopperController';
import { PopoverContent } from '../Tooltip/Tooltip';
import { cx } from 'emotion';
export interface Props extends InputHTMLAttributes<HTMLInputElement> {
label: string;
tooltip?: PopperContent<any>;
tooltip?: PopoverContent;
labelWidth?: number;
inputWidth?: number;
inputEl?: React.ReactNode;
Expand Down
5 changes: 2 additions & 3 deletions packages/grafana-ui/src/components/FormLabel/FormLabel.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import React, { FunctionComponent, ReactNode } from 'react';
import classNames from 'classnames';
import { Tooltip } from '../Tooltip/Tooltip';
import { PopperContent } from '../Tooltip/PopperController';
import { Tooltip, PopoverContent } from '../Tooltip/Tooltip';

interface Props {
children: ReactNode;
className?: string;
htmlFor?: string;
isFocused?: boolean;
isInvalid?: boolean;
tooltip?: PopperContent<any>;
tooltip?: PopoverContent;
width?: number;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import React from 'react';
import { Tooltip, TooltipProps } from '../Tooltip/Tooltip';
import { PopperContent } from '../Tooltip/PopperController';
import { Tooltip, TooltipProps, PopoverContent } from '../Tooltip/Tooltip';

interface InfoTooltipProps extends Omit<TooltipProps, 'children' | 'content'> {
children: PopperContent<any>;
children: PopoverContent;
}

export const InfoTooltip = ({ children, ...restProps }: InfoTooltipProps) => {
Expand Down
4 changes: 2 additions & 2 deletions packages/grafana-ui/src/components/Select/ButtonSelect.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { PureComponent, ReactElement } from 'react';
import Select from './Select';
import { PopperContent } from '../Tooltip/PopperController';
import { PopoverContent } from '../Tooltip/Tooltip';
import { SelectableValue } from '@grafana/data';

interface ButtonComponentProps {
Expand Down Expand Up @@ -38,7 +38,7 @@ export interface Props<T> {
components?: any;
maxMenuHeight?: number;
onChange: (item: SelectableValue<T>) => void;
tooltipContent?: PopperContent<any>;
tooltipContent?: PopoverContent;
isMenuOpen?: boolean;
onOpenMenu?: () => void;
onCloseMenu?: () => void;
Expand Down
6 changes: 3 additions & 3 deletions packages/grafana-ui/src/components/Select/Select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import IndicatorsContainer from './IndicatorsContainer';
import NoOptionsMessage from './NoOptionsMessage';
import resetSelectStyles from './resetSelectStyles';
import { CustomScrollbar } from '../CustomScrollbar/CustomScrollbar';
import { PopperContent } from '../Tooltip/PopperController';
import { PopoverContent } from '../Tooltip/Tooltip';
import { Tooltip } from '../Tooltip/Tooltip';
import { SelectableValue } from '@grafana/data';

Expand All @@ -43,7 +43,7 @@ export interface CommonProps<T> {
backspaceRemovesValue?: boolean;
isOpen?: boolean;
components?: any;
tooltipContent?: PopperContent<any>;
tooltipContent?: PopoverContent;
onOpenMenu?: () => void;
onCloseMenu?: () => void;
tabSelectsValue?: boolean;
Expand Down Expand Up @@ -269,7 +269,7 @@ export interface TooltipWrapperProps {
onOpenMenu?: () => void;
onCloseMenu?: () => void;
isOpen?: boolean;
tooltipContent?: PopperContent<any>;
tooltipContent?: PopoverContent;
}

export interface TooltipWrapperState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ exports[`Render should render with base threshold 1`] = `
}
}
>
<PopperController
<PopoverController
content={
<ColorPickerPopover
color="green"
Expand Down Expand Up @@ -439,7 +439,7 @@ exports[`Render should render with base threshold 1`] = `
</div>
</div>
</ForwardRef(ColorPickerTrigger)>
</PopperController>
</PopoverController>
</ColorPicker>
</WithTheme(ColorPicker)>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import * as PopperJS from 'popper.js';
import { Manager, Popper as ReactPopper, PopperArrowProps } from 'react-popper';
import { Portal } from '../Portal/Portal';
import Transition from 'react-transition-group/Transition';
import { PopperContent } from './PopperController';
import { PopoverContent } from './Tooltip';

const defaultTransitionStyles = {
transition: 'opacity 200ms linear',
Expand All @@ -22,14 +22,14 @@ export type RenderPopperArrowFn = (props: { arrowProps: PopperArrowProps; placem
interface Props extends React.HTMLAttributes<HTMLDivElement> {
show: boolean;
placement?: PopperJS.Placement;
content: PopperContent<any>;
content: PopoverContent;
referenceElement: PopperJS.ReferenceObject;
wrapperClassName?: string;
renderArrow?: RenderPopperArrowFn;
eventsEnabled?: boolean;
}

class Popper extends PureComponent<Props> {
class Popover extends PureComponent<Props> {
static defaultProps: Partial<Props> = {
eventsEnabled: true,
};
Expand Down Expand Up @@ -101,4 +101,4 @@ class Popper extends PureComponent<Props> {
}
}

export { Popper };
export { Popover };
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
import React from 'react';
import * as PopperJS from 'popper.js';
import { PopoverContent } from './Tooltip';

// This API allows popovers to update Popper's position when e.g. popover content changes
// updatePopperPosition is delivered to content by react-popper
export interface PopperContentProps {
updatePopperPosition?: () => void;
}

export type PopperContent<T extends PopperContentProps> = string | React.ReactElement<T> | ((props: T) => JSX.Element);

export interface UsingPopperProps {
show?: boolean;
placement?: PopperJS.Placement;
content: PopperContent<any>;
content: PopoverContent;
children: JSX.Element;
}

Expand All @@ -22,13 +18,13 @@ type PopperControllerRenderProp = (
popperProps: {
show: boolean;
placement: PopperJS.Placement;
content: PopperContent<any>;
content: PopoverContent;
}
) => JSX.Element;

interface Props {
placement?: PopperJS.Placement;
content: PopperContent<any>;
content: PopoverContent;
className?: string;
children: PopperControllerRenderProp;
hideAfter?: number;
Expand All @@ -39,7 +35,7 @@ interface State {
show: boolean;
}

class PopperController extends React.Component<Props, State> {
class PopoverController extends React.Component<Props, State> {
private hideTimeout: any;

constructor(props: Props) {
Expand Down Expand Up @@ -101,4 +97,4 @@ class PopperController extends React.Component<Props, State> {
}
}

export { PopperController };
export { PopoverController };
17 changes: 12 additions & 5 deletions packages/grafana-ui/src/components/Tooltip/Tooltip.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
import React, { createRef } from 'react';
import * as PopperJS from 'popper.js';
import { Popper } from './Popper';
import { PopperController, UsingPopperProps } from './PopperController';
import { Popover } from './Popover';
import { PopoverController, UsingPopperProps } from './PopoverController';

export interface TooltipProps extends UsingPopperProps {
theme?: 'info' | 'error';
}

export interface PopoverContentProps {
updatePopperPosition?: () => void;
}

export type PopoverContent = string | React.ReactElement<any> | ((props: PopoverContentProps) => JSX.Element);

export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) => {
const tooltipTriggerRef = createRef<PopperJS.ReferenceObject>();
const popperBackgroundClassName = 'popper__background' + (theme ? ' popper__background--' + theme : '');

return (
<PopperController {...controllerProps}>
<PopoverController {...controllerProps}>
{(showPopper, hidePopper, popperProps) => {
{
/* Override internal 'show' state if passed in as prop */
Expand All @@ -23,7 +30,7 @@ export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) =
return (
<>
{tooltipTriggerRef.current && (
<Popper
<Popover
{...payloadProps}
onMouseEnter={showPopper}
onMouseLeave={hidePopper}
Expand All @@ -43,6 +50,6 @@ export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) =
</>
);
}}
</PopperController>
</PopoverController>
);
};
6 changes: 3 additions & 3 deletions packages/grafana-ui/src/components/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export { DeleteButton } from './DeleteButton/DeleteButton';
export { Tooltip } from './Tooltip/Tooltip';
export { PopperController, PopperContent } from './Tooltip/PopperController';
export { Popper } from './Tooltip/Popper';
export { Tooltip, PopoverContent } from './Tooltip/Tooltip';
export { PopoverController } from './Tooltip/PopoverController';
export { Popover } from './Tooltip/Popover';
export { Portal } from './Portal/Portal';
export { CustomScrollbar } from './CustomScrollbar/CustomScrollbar';

Expand Down
3 changes: 3 additions & 0 deletions public/app/core/angular_wrappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { ColorPicker, SeriesColorPickerPopoverWithTheme, SecretFormField, DataLi
import { FunctionEditor } from 'app/plugins/datasource/graphite/FunctionEditor';
import { SearchField } from './components/search/SearchField';
import { GraphContextMenu } from 'app/plugins/panel/graph/GraphContextMenu';
import ReactProfileWrapper from 'app/features/profile/ReactProfileWrapper';

export function registerAngularDirectives() {
react2AngularDirective('sidemenu', SideMenu, []);
Expand Down Expand Up @@ -87,4 +88,6 @@ export function registerAngularDirectives() {
'suggestions',
['onChange', { watchDepth: 'reference', wrapApply: true }],
]);

react2AngularDirective('reactProfileWrapper', ReactProfileWrapper, []);
}
Loading

0 comments on commit de58d9d

Please sign in to comment.