Skip to content

Commit 474b487

Browse files
committed
add support for flipped tooltip
1 parent 4eda9d7 commit 474b487

File tree

2 files changed

+51
-5
lines changed

2 files changed

+51
-5
lines changed

src/main.scss

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,14 @@ $arrow-size: 5px !default;
3636

3737
.#{$cy-tooltip-class}-top,
3838
.#{$cy-tooltip-class}-top-start,
39-
.#{$cy-tooltip-class}-top-end {
39+
.#{$cy-tooltip-class}-top-end,
40+
.#{$cy-tooltip-class}-bottom.#{$cy-tooltip-class}-flipped,
41+
.#{$cy-tooltip-class}-bottom-start.#{$cy-tooltip-class}-flipped,
42+
.#{$cy-tooltip-class}-bottom-end.#{$cy-tooltip-class}-flipped {
4043
margin-bottom: $arrow-size;
4144

4245
.#{$cy-tooltip-class}-arrow {
46+
top: auto;
4347
bottom: -$arrow-size - $cy-tooltip-border-width;
4448
height: $arrow-size + $cy-tooltip-border-width;
4549
width: $arrow-size * 2 + $cy-tooltip-border-width * 2;
@@ -52,22 +56,34 @@ $arrow-size: 5px !default;
5256

5357
.#{$cy-tooltip-class}-right,
5458
.#{$cy-tooltip-class}-right-start,
55-
.#{$cy-tooltip-class}-right-end {
59+
.#{$cy-tooltip-class}-right-end,
60+
.#{$cy-tooltip-class}-left.#{$cy-tooltip-class}-flipped,
61+
.#{$cy-tooltip-class}-left-start.#{$cy-tooltip-class}-flipped,
62+
.#{$cy-tooltip-class}-left-end.#{$cy-tooltip-class}-flipped {
5663
margin-left: $arrow-size;
5764

5865
.#{$cy-tooltip-class}-arrow {
66+
right: auto;
5967
left: -$arrow-size - $cy-tooltip-border-width;
6068
height: $arrow-size * 2 + $cy-tooltip-border-width * 2;
6169
width: $arrow-size + $cy-tooltip-border-width;
6270
}
71+
72+
svg {
73+
left: 0;
74+
}
6375
}
6476

6577
.#{$cy-tooltip-class}-left,
6678
.#{$cy-tooltip-class}-left-start,
67-
.#{$cy-tooltip-class}-left-end {
79+
.#{$cy-tooltip-class}-left-end,
80+
.#{$cy-tooltip-class}-right.#{$cy-tooltip-class}-flipped,
81+
.#{$cy-tooltip-class}-right-start.#{$cy-tooltip-class}-flipped,
82+
.#{$cy-tooltip-class}-right-end.#{$cy-tooltip-class}-flipped {
6883
margin-right: $arrow-size;
6984

7085
.#{$cy-tooltip-class}-arrow {
86+
left: auto;
7187
right: -$arrow-size - $cy-tooltip-border-width;
7288
height: $arrow-size * 2 + $cy-tooltip-border-width * 2;
7389
width: $arrow-size + $cy-tooltip-border-width;
@@ -80,12 +96,40 @@ $arrow-size: 5px !default;
8096

8197
.#{$cy-tooltip-class}-bottom,
8298
.#{$cy-tooltip-class}-bottom-start,
83-
.#{$cy-tooltip-class}-bottom-end {
99+
.#{$cy-tooltip-class}-bottom-end,
100+
.#{$cy-tooltip-class}-top.#{$cy-tooltip-class}-flipped,
101+
.#{$cy-tooltip-class}-top-start.#{$cy-tooltip-class}-flipped,
102+
.#{$cy-tooltip-class}-top-end.#{$cy-tooltip-class}-flipped {
84103
margin-top: $arrow-size;
85104

86105
.#{$cy-tooltip-class}-arrow {
106+
bottom: auto;
87107
height: $arrow-size + $cy-tooltip-border-width;
88108
top: -$arrow-size - $cy-tooltip-border-width;
89109
width: $arrow-size * 2 + $cy-tooltip-border-width * 2;
90110
}
111+
112+
svg {
113+
top: 0;
114+
}
115+
}
116+
117+
.#{$cy-tooltip-class}-top-start .#{$cy-tooltip-class}-arrow,
118+
.#{$cy-tooltip-class}-bottom-start .#{$cy-tooltip-class}-arrow {
119+
left: 0;
120+
}
121+
122+
.#{$cy-tooltip-class}-top-end .#{$cy-tooltip-class}-arrow,
123+
.#{$cy-tooltip-class}-bottom-end .#{$cy-tooltip-class}-arrow {
124+
right: 0;
125+
}
126+
127+
.#{$cy-tooltip-class}-left-start .#{$cy-tooltip-class}-arrow,
128+
.#{$cy-tooltip-class}-right-start .#{$cy-tooltip-class}-arrow {
129+
top: 0;
130+
}
131+
132+
.#{$cy-tooltip-class}-left-end .#{$cy-tooltip-class}-arrow,
133+
.#{$cy-tooltip-class}-right-end .#{$cy-tooltip-class}-arrow {
134+
bottom: 0;
91135
}

src/portal-popper.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,19 @@ class PortalPopper extends Component {
3535
this.state = {
3636
arrowProps: initialArrowProps,
3737
popperProps: initialPopperProps,
38+
flipped: false,
3839
}
3940
}
4041

4142
render () {
4243
const { className, placement, title } = this.props
4344
const prefix = _.last(className.split(' '))
45+
const flippedClass = this.state.flipped ? ` ${prefix}-flipped` : ''
4446

4547
return (
4648
<Portal
47-
className={`${className} ${prefix}-${placement}`}
4849
ref='portal'
50+
className={`${className} ${prefix}-${placement}${flippedClass}`}
4951
style={this._getPopperStyle()}
5052
>
5153
<span>{title}</span>

0 commit comments

Comments
 (0)