evilSpins v1
All checks were successful
Deploy App / build (push) Successful in 43s
Deploy App / deploy (push) Successful in 41s

This commit is contained in:
valere
2025-11-04 22:41:41 +01:00
parent deb15b3ea1
commit 34d22b3b17
49 changed files with 5791 additions and 2447 deletions

View File

@@ -1,8 +1,5 @@
import { useUiStore } from '~/store/ui'
import { usePlayerStore } from '~/store/player'
import { onBeforeUnmount, onUnmounted, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { useDataStore } from '~/store/data'
export default defineNuxtPlugin((nuxtApp) => {
// Ne s'exécuter que côté client
@@ -10,8 +7,6 @@ export default defineNuxtPlugin((nuxtApp) => {
const ui = useUiStore()
const player = usePlayerStore()
const route = useRoute()
const dataStore = useDataStore()
function isInputElement(target: EventTarget | null): boolean {
return (
@@ -23,11 +18,10 @@ export default defineNuxtPlugin((nuxtApp) => {
}
function handleKeyDown(e: KeyboardEvent) {
console.log('Key pressed:', e.code, 'Key:', e.key, 'Target:', e.target)
// console.log('Key pressed:', e.code, 'Key:', e.key, 'Target:', e.target)
// Ne pas interférer avec les champs de formulaire
if (isInputElement(e.target as HTMLElement)) {
console.log('Input element, ignoring key')
return
}
@@ -48,14 +42,16 @@ export default defineNuxtPlugin((nuxtApp) => {
switch (e.code) {
// Gestion de la barre d'espace pour play/pause
case 'Space':
console.log('Space pressed, toggling play/pause')
e.preventDefault()
e.stopPropagation()
if (player.currentTrack) {
console.log('Toggling play state')
const selectedBox = ui.getSelectedBox
// Si une box est sélectionnée et qu'aucune piste n'est en cours de lecture
if (selectedBox && !player.currentTrack) {
player.playBox(selectedBox)
} else if (player.currentTrack) {
// Comportement normal si une piste est déjà chargée
player.togglePlay()
} else {
console.log('No current track to play/pause')
}
return false
@@ -86,21 +82,4 @@ export default defineNuxtPlugin((nuxtApp) => {
// Ajout de l'écouteur d'événements avec capture pour intercepter l'événement plus tôt
window.addEventListener('keydown', handleKeyDown, { capture: true, passive: false })
console.log('Keyboard event listener added')
// Nettoyage lors de la destruction
const stop = () => {
window.removeEventListener('keydown', handleKeyDown)
}
// Nettoyage quand le composant est démonté
onUnmounted(stop)
// Nettoyage quand la page est déchargée
if (process.client) {
window.addEventListener('unload', stop)
onBeforeUnmount(() => {
window.removeEventListener('unload', stop)
})
}
})