PLATINE drag to play & random tracks
This commit is contained in:
@@ -82,14 +82,10 @@ class Disc {
|
||||
public isReversed: boolean = false
|
||||
|
||||
public callbacks = {
|
||||
// @ts-expect-error: unused var
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
onDragStart: (): void => {},
|
||||
onDragEnded: (secondsPlayed: number): void => {},
|
||||
onStop: () => {},
|
||||
|
||||
// @ts-expect-error: unused var
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
onLoop: (params: DiscProgress) => {}
|
||||
onStop: (): void => {},
|
||||
onLoop: (params: DiscProgress): void => {}
|
||||
}
|
||||
|
||||
constructor(el: HTMLElement) {
|
||||
@@ -172,19 +168,26 @@ class Disc {
|
||||
// Empêcher le comportement par défaut pour éviter le défilement
|
||||
e.preventDefault()
|
||||
|
||||
// Appeler le callback onDragStart
|
||||
this.callbacks.onDragStart()
|
||||
|
||||
// Obtenir les coordonnées du toucher ou de la souris
|
||||
const getCoords = (event: PointerEvent | TouchEvent): { x: number; y: number } => {
|
||||
if ('touches' in event) {
|
||||
// Gestion des événements tactiles
|
||||
const touchEvent = event as TouchEvent
|
||||
if (touchEvent.touches?.[0]) {
|
||||
return {
|
||||
x: event.touches[0].clientX,
|
||||
y: event.touches[0].clientY
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
x: event.clientX,
|
||||
y: event.clientY
|
||||
x: touchEvent.touches[0].clientX,
|
||||
y: touchEvent.touches[0].clientY
|
||||
}
|
||||
}
|
||||
|
||||
// Gestion des événements de souris
|
||||
const mouseEvent = event as PointerEvent
|
||||
return {
|
||||
x: mouseEvent.clientX ?? this._center.x,
|
||||
y: mouseEvent.clientY ?? this._center.y
|
||||
}
|
||||
}
|
||||
|
||||
const startCoords = getCoords(e)
|
||||
|
||||
Reference in New Issue
Block a user