From 57ae54d7168501596871903f40e3000620b1ca86 Mon Sep 17 00:00:00 2001 From: Grzegorz Kucmierz Date: Thu, 12 Feb 2026 13:51:10 +0100 Subject: [PATCH] feat: ESC zamyka wszystkie modale (Custom Game, Simulation, Win) --- src/components/CustomGameModal.vue | 12 ++++++++++++ src/components/SimulationView.vue | 16 +++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/components/CustomGameModal.vue b/src/components/CustomGameModal.vue index 77fd2aa..91e1e63 100644 --- a/src/components/CustomGameModal.vue +++ b/src/components/CustomGameModal.vue @@ -156,6 +156,7 @@ const stopDrag = () => { onUnmounted(() => { window.removeEventListener('mousemove', onDrag); window.removeEventListener('mouseup', stopDrag); + window.removeEventListener('keydown', onKeyDown); }); const showAdvanced = ref(false); @@ -169,6 +170,16 @@ const toggleAdvanced = () => { } }; +const handleClose = () => { + emit('close'); +}; + +const onKeyDown = (e) => { + if (e.key === 'Escape') { + handleClose(); + } +}; + onMounted(() => { const savedSize = localStorage.getItem('nonograms_custom_size'); if (savedSize && !isNaN(savedSize)) { @@ -181,6 +192,7 @@ onMounted(() => { } // Don't draw map initially if hidden + window.addEventListener('keydown', onKeyDown); }); watch([customSize, fillRate], () => { diff --git a/src/components/SimulationView.vue b/src/components/SimulationView.vue index 1baeb34..956bcd9 100644 --- a/src/components/SimulationView.vue +++ b/src/components/SimulationView.vue @@ -1,6 +1,6 @@