Skip to content

Commit 2fb3a12

Browse files
committed
Fix dash-table tooltip ref
1 parent 19ae407 commit 2fb3a12

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

components/dash-table/src/dash-table/components/ControlledTable/fragments/TableTooltip.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
1-
import React, {Component} from 'react';
1+
import React, {Component, createRef} from 'react';
22

33
import Tooltip, {ITooltipProps, Arrow} from 'dash-table/components/Tooltip';
44
import {getPositionalParent} from 'dash-table/components/tooltipHelper';
5-
import ReactDOM from 'react-dom';
5+
66
import {isEqual} from 'core/comparer';
77

88
interface IState {
99
arrow?: Arrow;
1010
cell?: any;
1111
}
1212

13-
export default class TableTooltip extends Component<ITooltipProps, IState> {
13+
export default class TableTooltip extends Component<
14+
Omit<ITooltipProps, 'divRef'>,
15+
IState
16+
> {
17+
tooltipRef: React.RefObject<HTMLElement>;
1418
constructor(props: ITooltipProps) {
1519
super(props);
1620

21+
this.tooltipRef = createRef();
22+
1723
this.state = {
1824
arrow: Arrow.Bottom
1925
};
@@ -40,7 +46,7 @@ export default class TableTooltip extends Component<ITooltipProps, IState> {
4046
return (
4147
<Tooltip
4248
key='tooltip'
43-
ref='tooltip'
49+
divRef={this.tooltipRef}
4450
arrow={arrow}
4551
{...this.props}
4652
/>
@@ -50,7 +56,7 @@ export default class TableTooltip extends Component<ITooltipProps, IState> {
5056
private adjustPosition() {
5157
const {cell} = this.state;
5258

53-
const el = ReactDOM.findDOMNode(this.refs.tooltip) as any;
59+
const el = this.tooltipRef.current;
5460

5561
const positionalParent = getPositionalParent(el);
5662

components/dash-table/src/dash-table/components/Tooltip/index.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as R from 'ramda';
2-
import React, {PureComponent} from 'react';
2+
import React, {Component} from 'react';
33
import {Remarkable} from 'remarkable';
44

55
import {isEqual} from 'core/comparer';
@@ -17,6 +17,7 @@ export enum Arrow {
1717
export interface ITooltipProps {
1818
arrow?: Arrow;
1919
className?: string;
20+
divRef: any;
2021
tooltip: {
2122
delay: number;
2223
duration: number;
@@ -32,10 +33,7 @@ interface ITooltipState {
3233
md: Remarkable;
3334
}
3435

35-
export default class Tooltip extends PureComponent<
36-
ITooltipProps,
37-
ITooltipState
38-
> {
36+
export default class Tooltip extends Component<ITooltipProps, ITooltipState> {
3937
constructor(props: ITooltipProps) {
4038
super(props);
4139

@@ -85,6 +83,7 @@ export default class Tooltip extends PureComponent<
8583

8684
return (
8785
<div
86+
ref={this.props.divRef}
8887
className='dash-tooltip'
8988
data-attr-anchor={arrow}
9089
style={{visibility: display ? 'visible' : 'hidden'}}

0 commit comments

Comments
 (0)