Skip to content

Commit 6c1a545

Browse files
committed
feat(ui-overlays,ui-tooltip): expose positionTarget prop on Tooltip
refs: INSTUI-2348 TEST PLAN: - Both Tooltip and DeprecatedTooltip should behave as before with no regressions Change-Id: I7471aa605d84f394e7a276e9c2b82b64436fd825 Reviewed-on: https://gerrit.instructure.com/c/instructure-ui/+/215481 Reviewed-by: Ken Meleta <kmeleta@instructure.com> Product-Review: Ken Meleta <kmeleta@instructure.com> QA-Review: Daniel Sasaki <dsasaki@instructure.com> Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com> Visual-Regression-Test: Steve Jensen <sejensen@instructure.com>
1 parent 2b26d54 commit 6c1a545

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

packages/ui-overlays/src/Tooltip/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import { themeable } from '@instructure/ui-themeable'
3030
import { deprecated } from '@instructure/ui-react-utils'
3131
import { testable } from '@instructure/ui-testable'
3232
import { Tooltip as UITooltip } from '@instructure/ui-tooltip'
33+
import { element } from '@instructure/ui-prop-types'
3334

3435
import styles from './styles.css'
3536
import theme from './theme'
@@ -76,6 +77,10 @@ class Tooltip extends Component {
7677
* for the `<Tooltip />` (defaults to `document.body`)
7778
*/
7879
mountNode: LayoutPropTypes.mountNode,
80+
/**
81+
* Target element for positioning the Tooltip (if it differs from children/trigger)
82+
*/
83+
positionTarget: PropTypes.oneOfType([element, PropTypes.func]),
7984
/**
8085
* The parent in which to constrain the tooltip.
8186
* One of: 'window', 'scroll-parent', 'parent', 'none', an element,
@@ -89,6 +94,7 @@ class Tooltip extends Component {
8994
variant: 'inverse',
9095
placement: 'top',
9196
mountNode: null,
97+
positionTarget: undefined,
9298
constrain: 'window'
9399
}
94100

@@ -100,6 +106,7 @@ class Tooltip extends Component {
100106
on,
101107
placement,
102108
mountNode,
109+
positionTarget,
103110
constrain,
104111
...passthroughProps
105112
} = this.props
@@ -112,6 +119,7 @@ class Tooltip extends Component {
112119
color={variant === 'inverse' ? 'primary' : 'primary-inverse'}
113120
placement={placement}
114121
mountNode={mountNode}
122+
positionTarget={positionTarget}
115123
constrain={constrain}
116124
>
117125
{ children }

packages/ui-tooltip/src/Tooltip/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import { uid } from '@instructure/uid'
3838
import { themeable } from '@instructure/ui-themeable'
3939
import { testable } from '@instructure/ui-testable'
4040
import { Popover } from '@instructure/ui-popover'
41+
import { element } from '@instructure/ui-prop-types'
4142

4243
import styles from './styles.css'
4344
import theme from './theme'
@@ -114,6 +115,10 @@ class Tooltip extends Component {
114115
* The vertical offset for the positioned content
115116
*/
116117
offsetY: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
118+
/**
119+
* Target element for positioning the Tooltip (if it differs from children/trigger)
120+
*/
121+
positionTarget: PropTypes.oneOfType([element, PropTypes.func]),
117122
/**
118123
* Callback fired when content is shown. When controlled, this callback is
119124
* fired when the tooltip expects to be shown
@@ -148,6 +153,7 @@ class Tooltip extends Component {
148153
constrain: 'window',
149154
offsetX: 0,
150155
offsetY: 0,
156+
positionTarget: undefined,
151157
onShowContent: (event) => {},
152158
onHideContent: (event, { documentClick }) => {}
153159
}
@@ -206,6 +212,7 @@ class Tooltip extends Component {
206212
constrain,
207213
offsetX,
208214
offsetY,
215+
positionTarget,
209216
onShowContent,
210217
onHideContent,
211218
tip,
@@ -235,6 +242,7 @@ class Tooltip extends Component {
235242
shadow="none"
236243
offsetX={offsetX}
237244
offsetY={offsetY}
245+
positionTarget={positionTarget}
238246
renderTrigger={() => this.renderTrigger()}
239247
onShowContent={onShowContent}
240248
onHideContent={onHideContent}

0 commit comments

Comments
 (0)