MCPcopy Create free account
hub / github.com/adobe/react-spectrum / onTrackDown

Function onTrackDown

packages/react-aria/src/color/useColorWheel.ts:183–213  ·  view source on GitHub ↗
(
    track: Element,
    id: number | null | undefined,
    pageX: number,
    pageY: number
  )

Source from the content-addressed store, hash-verified

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;

Callers 1

useColorWheelFunction · 0.85

Calls 2

setHueFromPointMethod · 0.80
setDraggingMethod · 0.65

Tested by

no test coverage detected