Files
evilspins/app/app.vue
valere 620112d9ba
All checks were successful
Deploy App / build (push) Successful in 1m9s
Deploy App / deploy (push) Successful in 21s
minor style changes
2026-02-10 22:04:52 +01:00

37 lines
928 B
Vue

<template>
<div class="min-h-screen dark:bg-neutral-900" @keydown.esc="resetFocus">
<NuxtRouteAnnouncer />
<NuxtLayout>
<NuxtPage ref="pageContent" />
</NuxtLayout>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue'
const pageContent = ref<HTMLElement | null>(null)
const resetFocus = (event: KeyboardEvent) => {
if (event.key === 'Escape') {
// On déplace le focus sur l'élément racine
if (document.activeElement instanceof HTMLElement) {
document.activeElement.blur()
}
// On force le focus sur le body
document.body.focus()
}
}
// Ajout du gestionnaire d'événement au montage du composant
onMounted(() => {
window.addEventListener('keydown', resetFocus)
})
// Nettoyage du gestionnaire d'événement lors du démontage du composant
onUnmounted(() => {
window.removeEventListener('keydown', resetFocus)
})
</script>