(
track: Element,
id: number | null | undefined,
pageX: number,
pageY: number
)
| 181 | }; |
| 182 | |
| 183 | let onTrackDown = ( |
| 184 | track: Element, |
| 185 | id: number | null | undefined, |
| 186 | pageX: number, |
| 187 | pageY: number |
| 188 | ) => { |
| 189 | let rect = track.getBoundingClientRect(); |
| 190 | let x = pageX - rect.x - rect.width / 2; |
| 191 | let y = pageY - rect.y - rect.height / 2; |
| 192 | let radius = Math.sqrt(x * x + y * y); |
| 193 | if ( |
| 194 | innerRadius < radius && |
| 195 | radius < outerRadius && |
| 196 | !state.isDragging && |
| 197 | currentPointer.current === undefined |
| 198 | ) { |
| 199 | isOnTrack.current = true; |
| 200 | currentPointer.current = id; |
| 201 | state.setHueFromPoint(x, y, radius); |
| 202 | |
| 203 | focusInput(); |
| 204 | state.setDragging(true); |
| 205 | |
| 206 | if (typeof PointerEvent !== 'undefined') { |
| 207 | addGlobalListener(window, 'pointerup', onTrackUp, false); |
| 208 | } else { |
| 209 | addGlobalListener(window, 'mouseup', onTrackUp, false); |
| 210 | addGlobalListener(window, 'touchend', onTrackUp, false); |
| 211 | } |
| 212 | } |
| 213 | }; |
| 214 | |
| 215 | let onTrackUp = e => { |
| 216 | let id = e.pointerId ?? e.changedTouches?.[0].identifier; |
no test coverage detected