From dff2afb2e6fe82eb7c22cea95b75e66d7edbc4c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanislas=20Ormi=C3=A8res?= Date: Thu, 3 Oct 2024 15:07:56 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20affiche=20l=E2=80=99infob?= =?UTF-8?q?ulle=20au=20focus=20et=20la=20cache=20avec=20ESC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Affiche l’infobulle au focus du composant qui la contient - Cache l’infobulle après l’appui sur la touche ESC (Échappe) fix #952 --- src/components/DsfrTooltip/DsfrTooltip.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/DsfrTooltip/DsfrTooltip.vue b/src/components/DsfrTooltip/DsfrTooltip.vue index 86b8fc48..ace7feb2 100644 --- a/src/components/DsfrTooltip/DsfrTooltip.vue +++ b/src/components/DsfrTooltip/DsfrTooltip.vue @@ -89,12 +89,20 @@ const clickListener = (event: MouseEvent) => { show.value = false } +const onEscapeKey = (event: KeyboardEvent) => { + if (event.key === 'Escape') { + show.value = false + } +} + onMounted(() => { document.documentElement.addEventListener('click', clickListener) + document.documentElement.addEventListener('keydown', onEscapeKey) }) onUnmounted(() => { document.documentElement.removeEventListener('click', clickListener) + document.documentElement.removeEventListener('keydown', onEscapeKey) }) const onMouseEnter = () => { @@ -127,6 +135,8 @@ const onClick = () => { @click.stop="onClick()" @mouseenter="onMouseEnter()" @mouseleave="onMouseLeave()" + @focus="onMouseEnter()" + @blur="onMouseLeave()" >