From 9dce72250eb6a2a6a1d5ad3d0703a257abc30964 Mon Sep 17 00:00:00 2001 From: MathieuG-P <40181755+Zagrios@users.noreply.github.com> Date: Tue, 6 Dec 2022 00:52:06 +0100 Subject: [PATCH] close on escape --- .../components/modal/modal.component.tsx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/renderer/components/modal/modal.component.tsx b/src/renderer/components/modal/modal.component.tsx index 01518a96..55ed96b9 100644 --- a/src/renderer/components/modal/modal.component.tsx +++ b/src/renderer/components/modal/modal.component.tsx @@ -2,6 +2,7 @@ import { ModalExitCode, ModalService } from "renderer/services/modale.service"; import { AnimatePresence, motion } from "framer-motion"; import { useObservable } from "renderer/hooks/use-observable.hook"; import { useThemeColor } from "renderer/hooks/use-theme-color.hook"; +import { useEffect } from "react"; export function Modal() { @@ -14,6 +15,27 @@ export function Modal() { const {firstColor, secondColor} = useThemeColor(); + useEffect(() => { + + const onEscape = (e: KeyboardEvent) => { + if(e.key !== "Escape"){ return; } + resolver?.(ModalExitCode.NO_CHOICE); + } + + if(!!ModalComponent){ + window.addEventListener("keyup", onEscape) + } + else{ + window.removeEventListener("keyup", onEscape); + } + + return () => { + console.log("oui"); + window.removeEventListener("keyup", onEscape); + } + }, [ModalComponent]) + + return ( {ModalComponent && (