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