mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Update components to fit updated PopperController API
This commit is contained in:
parent
de4e1a91f7
commit
ec904cf662
@ -14,8 +14,10 @@ export const Label: SFC<Props> = props => {
|
|||||||
<span className={`gf-form-label width-${props.width ? props.width : '10'}`}>
|
<span className={`gf-form-label width-${props.width ? props.width : '10'}`}>
|
||||||
<span>{props.children}</span>
|
<span>{props.children}</span>
|
||||||
{props.tooltip && (
|
{props.tooltip && (
|
||||||
<Tooltip className="gf-form-help-icon--right-normal" placement="auto" content={props.tooltip}>
|
<Tooltip placement="auto" content={props.tooltip}>
|
||||||
|
<div className="gf-form-help-icon--right-normal">
|
||||||
<i className="gicon gicon-question gicon--has-hover" />
|
<i className="gicon gicon-question gicon--has-hover" />
|
||||||
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
)}
|
)}
|
||||||
</span>
|
</span>
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
import React, { PureComponent } from 'react';
|
|
||||||
import Popper from './Popper';
|
|
||||||
import withPopper, { UsingPopperProps } from './withPopper';
|
|
||||||
|
|
||||||
class Popover extends PureComponent<UsingPopperProps> {
|
|
||||||
render() {
|
|
||||||
const { children, hidePopper, showPopper, className, ...restProps } = this.props;
|
|
||||||
|
|
||||||
const togglePopper = restProps.show ? hidePopper : showPopper;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className={`popper__manager ${className}`} onClick={togglePopper}>
|
|
||||||
<Popper {...restProps}>{children}</Popper>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default withPopper(Popover);
|
|
@ -6,8 +6,8 @@ describe('Tooltip', () => {
|
|||||||
it('renders correctly', () => {
|
it('renders correctly', () => {
|
||||||
const tree = renderer
|
const tree = renderer
|
||||||
.create(
|
.create(
|
||||||
<Tooltip className="test-class" placement="auto" content="Tooltip text">
|
<Tooltip placement="auto" content="Tooltip text">
|
||||||
<a href="http://www.grafana.com">Link with tooltip</a>
|
<a className="test-class" href="http://www.grafana.com">Link with tooltip</a>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
)
|
)
|
||||||
.toJSON();
|
.toJSON();
|
||||||
|
@ -1,17 +1,28 @@
|
|||||||
import React, { PureComponent } from 'react';
|
import React, { createRef } from 'react';
|
||||||
import Popper from './Popper';
|
import * as PopperJS from 'popper.js';
|
||||||
import withPopper, { UsingPopperProps } from './withPopper';
|
|
||||||
|
|
||||||
class Tooltip extends PureComponent<UsingPopperProps> {
|
import Popper from './Popper';
|
||||||
render() {
|
import PopperController, { UsingPopperProps } from './PopperController';
|
||||||
const { children, hidePopper, showPopper, className, ...restProps } = this.props;
|
|
||||||
|
const Tooltip = ({ children, renderContent, ...controllerProps }: UsingPopperProps) => {
|
||||||
|
const tooltipTriggerRef = createRef<PopperJS.ReferenceObject>();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`popper__manager ${className}`} onMouseEnter={showPopper} onMouseLeave={hidePopper}>
|
<PopperController {...controllerProps}>
|
||||||
<Popper {...restProps}>{children}</Popper>
|
{(showPopper, hidePopper, popperProps) => {
|
||||||
</div>
|
return (
|
||||||
|
<>
|
||||||
|
<Popper {...popperProps} referenceElement={tooltipTriggerRef.current} />
|
||||||
|
{React.cloneElement(children, {
|
||||||
|
ref: tooltipTriggerRef,
|
||||||
|
onMouseEnter: showPopper,
|
||||||
|
onMouseLeave: hidePopper,
|
||||||
|
})}
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}}
|
||||||
}
|
</PopperController>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export default withPopper(Tooltip);
|
export default Tooltip;
|
||||||
|
@ -1,19 +1,12 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`Tooltip renders correctly 1`] = `
|
exports[`Tooltip renders correctly 1`] = `
|
||||||
<div
|
<a
|
||||||
className="popper__manager test-class"
|
className="test-class"
|
||||||
|
href="http://www.grafana.com"
|
||||||
onMouseEnter={[Function]}
|
onMouseEnter={[Function]}
|
||||||
onMouseLeave={[Function]}
|
onMouseLeave={[Function]}
|
||||||
>
|
>
|
||||||
<div
|
|
||||||
className="popper_ref "
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
href="http://www.grafana.com"
|
|
||||||
>
|
|
||||||
Link with tooltip
|
Link with tooltip
|
||||||
</a>
|
</a>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
`;
|
||||||
|
@ -138,7 +138,7 @@ function TabItem({ tab, activeTab, onClick }: TabItemParams) {
|
|||||||
return (
|
return (
|
||||||
<div className="panel-editor-tabs__item" onClick={() => onClick(tab)}>
|
<div className="panel-editor-tabs__item" onClick={() => onClick(tab)}>
|
||||||
<a className={tabClasses}>
|
<a className={tabClasses}>
|
||||||
<Tooltip content={`${tab.text}`} className="popper__manager--block" placement="auto">
|
<Tooltip content={`${tab.text}`} placement="auto">
|
||||||
<i className={`gicon gicon-${tab.id}${activeTab === tab.id ? '-active' : ''}`} />
|
<i className={`gicon gicon-${tab.id}${activeTab === tab.id ? '-active' : ''}`} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</a>
|
</a>
|
||||||
|
@ -78,12 +78,14 @@ export class PanelHeaderCorner extends Component<Props> {
|
|||||||
{infoMode === InfoModes.Info || infoMode === InfoModes.Links ? (
|
{infoMode === InfoModes.Info || infoMode === InfoModes.Links ? (
|
||||||
<Tooltip
|
<Tooltip
|
||||||
content={this.getInfoContent}
|
content={this.getInfoContent}
|
||||||
className="popper__manager--block"
|
|
||||||
refClassName={`panel-info-corner panel-info-corner--${infoMode.toLowerCase()}`}
|
|
||||||
placement="bottom-start"
|
placement="bottom-start"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className={`panel-info-corner panel-info-corner--${infoMode.toLowerCase()}`}
|
||||||
>
|
>
|
||||||
<i className="fa" />
|
<i className="fa" />
|
||||||
<span className="panel-info-corner-inner" />
|
<span className="panel-info-corner-inner" />
|
||||||
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
) : null}
|
) : null}
|
||||||
</>
|
</>
|
||||||
|
@ -70,8 +70,10 @@ export class DashboardPermissions extends PureComponent<Props, State> {
|
|||||||
<div className="dashboard-settings__header">
|
<div className="dashboard-settings__header">
|
||||||
<div className="page-action-bar">
|
<div className="page-action-bar">
|
||||||
<h3 className="d-inline-block">Permissions</h3>
|
<h3 className="d-inline-block">Permissions</h3>
|
||||||
<Tooltip className="page-sub-heading-icon" placement="auto" content={PermissionsInfo}>
|
<Tooltip placement="auto" content={PermissionsInfo}>
|
||||||
|
<div className="page-sub-heading-icon">
|
||||||
<i className="gicon gicon-question gicon--has-hover" />
|
<i className="gicon gicon-question gicon--has-hover" />
|
||||||
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div className="page-action-bar__spacer" />
|
<div className="page-action-bar__spacer" />
|
||||||
<button className="btn btn-success pull-right" onClick={this.onOpenAddPermissions} disabled={isAdding}>
|
<button className="btn btn-success pull-right" onClick={this.onOpenAddPermissions} disabled={isAdding}>
|
||||||
|
@ -84,8 +84,10 @@ export class FolderPermissions extends PureComponent<Props, State> {
|
|||||||
<div className="page-container page-body">
|
<div className="page-container page-body">
|
||||||
<div className="page-action-bar">
|
<div className="page-action-bar">
|
||||||
<h3 className="page-sub-heading">Folder Permissions</h3>
|
<h3 className="page-sub-heading">Folder Permissions</h3>
|
||||||
<Tooltip className="page-sub-heading-icon" placement="auto" content={PermissionsInfo}>
|
<Tooltip placement="auto" content={PermissionsInfo}>
|
||||||
|
<div className="page-sub-heading-icon">
|
||||||
<i className="gicon gicon-question gicon--has-hover" />
|
<i className="gicon gicon-question gicon--has-hover" />
|
||||||
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div className="page-action-bar__spacer" />
|
<div className="page-action-bar__spacer" />
|
||||||
<button className="btn btn-success pull-right" onClick={this.onOpenAddPermissions} disabled={isAdding}>
|
<button className="btn btn-success pull-right" onClick={this.onOpenAddPermissions} disabled={isAdding}>
|
||||||
|
@ -77,8 +77,10 @@ export class TeamGroupSync extends PureComponent<Props, State> {
|
|||||||
<div>
|
<div>
|
||||||
<div className="page-action-bar">
|
<div className="page-action-bar">
|
||||||
<h3 className="page-sub-heading">External group sync</h3>
|
<h3 className="page-sub-heading">External group sync</h3>
|
||||||
<Tooltip className="page-sub-heading-icon" placement="auto" content={headerTooltip}>
|
<Tooltip placement="auto" content={headerTooltip}>
|
||||||
|
<div className="page-sub-heading-icon">
|
||||||
<i className="gicon gicon-question gicon--has-hover" />
|
<i className="gicon gicon-question gicon--has-hover" />
|
||||||
|
</div>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<div className="page-action-bar__spacer" />
|
<div className="page-action-bar__spacer" />
|
||||||
{groups.length > 0 && (
|
{groups.length > 0 && (
|
||||||
|
@ -60,6 +60,7 @@ export class TeamSettings extends React.Component<Props, State> {
|
|||||||
onChange={this.onChangeName}
|
onChange={this.onChangeName}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="gf-form max-width-30">
|
<div className="gf-form max-width-30">
|
||||||
<Label tooltip="This is optional and is primarily used to set the team profile avatar (via gravatar service)">
|
<Label tooltip="This is optional and is primarily used to set the team profile avatar (via gravatar service)">
|
||||||
Email
|
Email
|
||||||
|
@ -10,15 +10,18 @@ exports[`Render should render component 1`] = `
|
|||||||
>
|
>
|
||||||
External group sync
|
External group sync
|
||||||
</h3>
|
</h3>
|
||||||
<class_1
|
<Tooltip
|
||||||
className="page-sub-heading-icon"
|
|
||||||
content="Sync LDAP or OAuth groups with your Grafana teams."
|
content="Sync LDAP or OAuth groups with your Grafana teams."
|
||||||
placement="auto"
|
placement="auto"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="page-sub-heading-icon"
|
||||||
>
|
>
|
||||||
<i
|
<i
|
||||||
className="gicon gicon-question gicon--has-hover"
|
className="gicon gicon-question gicon--has-hover"
|
||||||
/>
|
/>
|
||||||
</class_1>
|
</div>
|
||||||
|
</Tooltip>
|
||||||
<div
|
<div
|
||||||
className="page-action-bar__spacer"
|
className="page-action-bar__spacer"
|
||||||
/>
|
/>
|
||||||
@ -116,15 +119,18 @@ exports[`Render should render groups table 1`] = `
|
|||||||
>
|
>
|
||||||
External group sync
|
External group sync
|
||||||
</h3>
|
</h3>
|
||||||
<class_1
|
<Tooltip
|
||||||
className="page-sub-heading-icon"
|
|
||||||
content="Sync LDAP or OAuth groups with your Grafana teams."
|
content="Sync LDAP or OAuth groups with your Grafana teams."
|
||||||
placement="auto"
|
placement="auto"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="page-sub-heading-icon"
|
||||||
>
|
>
|
||||||
<i
|
<i
|
||||||
className="gicon gicon-question gicon--has-hover"
|
className="gicon gicon-question gicon--has-hover"
|
||||||
/>
|
/>
|
||||||
</class_1>
|
</div>
|
||||||
|
</Tooltip>
|
||||||
<div
|
<div
|
||||||
className="page-action-bar__spacer"
|
className="page-action-bar__spacer"
|
||||||
/>
|
/>
|
||||||
|
Loading…
Reference in New Issue
Block a user