@@ -73,13 +73,9 @@ export default function Cursor({ primary }) {
73
73
if ( axis . position === 'left' ) {
74
74
x1 = siblingRange [ 0 ] ;
75
75
x2 = siblingRange [ 1 ] ;
76
- alignPctX = - 100 ;
77
- alignPctY = - 50 ;
78
76
} else {
79
77
x1 = siblingRange [ 1 ] ;
80
78
x2 = siblingRange [ 0 ] ;
81
- alignPctX = 0 ;
82
- alignPctY = - 50 ;
83
79
}
84
80
} else {
85
81
x = axis . scale ( latestValue ) ;
@@ -88,12 +84,62 @@ export default function Cursor({ primary }) {
88
84
if ( axis . position === 'top' ) {
89
85
y1 = siblingRange [ 0 ] ;
90
86
y2 = siblingRange [ 1 ] ;
91
- alignPctX = - 500 ;
92
- alignPctY = - 100 ;
93
87
} else {
94
88
y1 = siblingRange [ 1 ] ;
95
89
y2 = siblingRange [ 0 ] ;
96
- alignPctX = - 50 ;
90
+ }
91
+ }
92
+
93
+ const lineStartX = Math . min ( x1 , x2 ) ;
94
+ const lineStartY = Math . min ( y1 , y2 ) ;
95
+ const lineEndX = Math . max ( x1 , x2 ) ;
96
+ const lineEndY = Math . max ( y1 , y2 ) ;
97
+ const lineHeight = Math . max ( lineEndY - lineStartY , 0 ) ;
98
+ const lineWidth = Math . max ( lineEndX - lineStartX , 0 ) ;
99
+
100
+ let bubbleX ;
101
+ let bubbleY ;
102
+
103
+ // Bubble placement
104
+ if ( axis . vertical ) {
105
+ if ( axis . position === 'left' ) {
106
+ if ( ! axis . RTL ) {
107
+ bubbleX = lineStartX ;
108
+ } else {
109
+ bubbleX = lineEndX ;
110
+ }
111
+ } else {
112
+ if ( ! axis . RTL ) {
113
+ bubbleX = lineEndX ;
114
+ } else {
115
+ bubbleX = lineStartX ;
116
+ }
117
+ }
118
+
119
+ bubbleY = lineStartY + lineHeight / 2 ;
120
+ } else {
121
+ bubbleX = lineStartX + lineWidth / 2 ;
122
+
123
+ if ( axis . position === 'top' ) {
124
+ bubbleY = lineStartY ;
125
+ } else {
126
+ bubbleY = lineEndY ;
127
+ }
128
+ }
129
+
130
+ // Bubble anchoring
131
+ if ( axis . vertical ) {
132
+ alignPctY = - 50 ;
133
+ if ( axis . position === 'left' ) {
134
+ alignPctX = - 100 ;
135
+ } else {
136
+ alignPctX = 0 ;
137
+ }
138
+ } else {
139
+ alignPctX = - 50 ;
140
+ if ( axis . position === 'top' ) {
141
+ alignPctY = - 100 ;
142
+ } else {
97
143
alignPctY = 0 ;
98
144
}
99
145
}
@@ -118,26 +164,10 @@ export default function Cursor({ primary }) {
118
164
: ''
119
165
) ;
120
166
121
- const lineStartX = Math . min ( x1 , x2 ) ;
122
- const lineStartY = Math . min ( y1 , y2 ) ;
123
- const lineEndX = Math . max ( x1 , x2 ) ;
124
- const lineEndY = Math . max ( y1 , y2 ) ;
125
- const bubbleX =
126
- axis . vertical && axis . RTL
127
- ? lineEndX
128
- : x1 + ( ! axis . vertical ? ( x2 - x1 ) / 2 : 0 ) + ( ! axis . vertical ? 1 : 0 ) ;
129
- const bubbleY =
130
- ! axis . vertical && axis . RTL
131
- ? lineStartY
132
- : y1 + ( axis . vertical ? ( y2 - y1 ) / 2 : 0 ) + ( axis . vertical ? 1 : 0 ) ;
133
-
134
167
// if (!axis.vertical) {
135
168
// console.log({ bubbleX, bubbleY });
136
169
// }
137
170
138
- const lineHeight = Math . max ( lineEndY - lineStartY , 0 ) ;
139
- const lineWidth = Math . max ( lineEndX - lineStartX , 0 ) ;
140
-
141
171
let animateCoords ;
142
172
if ( previousShowRef . current === resolvedShow ) {
143
173
animateCoords = true ;
0 commit comments