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

Function onTrackDown

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

Source from the content-addressed store, hash-verified

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;

Callers 1

useColorWheelFunction · 0.85

Calls 2

setHueFromPointMethod · 0.80
setDraggingMethod · 0.65

Tested by

no test coverage detected