diff --git a/src/lib/components/common/ConfirmDialog.svelte b/src/lib/components/common/ConfirmDialog.svelte
index 8a336aa441..c1d2a5e0da 100644
--- a/src/lib/components/common/ConfirmDialog.svelte
+++ b/src/lib/components/common/ConfirmDialog.svelte
@@ -3,6 +3,8 @@
import { onMount, getContext, createEventDispatcher, onDestroy, tick } from 'svelte';
import * as FocusTrap from 'focus-trap';
+ import { settings } from '$lib/stores';
+ import { matchKeybinding, Shortcut } from '$lib/shortcuts';
const i18n = getContext('i18n');
const dispatch = createEventDispatcher();
@@ -45,7 +47,10 @@
};
const handleKeyDown = (event: KeyboardEvent) => {
- if (event.key === 'Escape') {
+ if (
+ event.key === 'Escape' ||
+ ($settings?.keyboardShortcuts !== false && matchKeybinding(event) === Shortcut.CLOSE_MODAL)
+ ) {
cancelHandler();
}
@@ -113,7 +118,7 @@
{
cancelHandler();
diff --git a/src/lib/components/common/Drawer.svelte b/src/lib/components/common/Drawer.svelte
index 191dd31c83..3f782af2e1 100644
--- a/src/lib/components/common/Drawer.svelte
+++ b/src/lib/components/common/Drawer.svelte
@@ -2,6 +2,8 @@
import { onDestroy, onMount } from 'svelte';
import { flyAndScale } from '$lib/utils/transitions';
import { fade, fly, slide } from 'svelte/transition';
+ import { settings } from '$lib/stores';
+ import { matchKeybinding, Shortcut } from '$lib/shortcuts';
export let show = false;
export let className = '';
@@ -12,7 +14,12 @@
let mounted = false;
const handleKeyDown = (event: KeyboardEvent) => {
- if (event.key === 'Escape' && isTopModal()) {
+ if (
+ (event.key === 'Escape' ||
+ ($settings?.keyboardShortcuts !== false &&
+ matchKeybinding(event) === Shortcut.CLOSE_MODAL)) &&
+ isTopModal()
+ ) {
console.log('Escape');
show = false;
}
diff --git a/src/lib/components/common/ImagePreview.svelte b/src/lib/components/common/ImagePreview.svelte
index 97ddd2ea6d..49ac722044 100644
--- a/src/lib/components/common/ImagePreview.svelte
+++ b/src/lib/components/common/ImagePreview.svelte
@@ -6,6 +6,8 @@
const { saveAs } = fileSaver;
import { WEBUI_BASE_URL } from '$lib/constants';
+ import { settings } from '$lib/stores';
+ import { matchKeybinding, Shortcut } from '$lib/shortcuts';
import PanzoomContainer from '$lib/components/common/PanzoomContainer.svelte';
import XMark from '$lib/components/icons/XMark.svelte';
@@ -18,7 +20,10 @@
let previewElement = null;
const handleKeyDown = (event: KeyboardEvent) => {
- if (event.key === 'Escape') {
+ if (
+ event.key === 'Escape' ||
+ ($settings?.keyboardShortcuts !== false && matchKeybinding(event) === Shortcut.CLOSE_MODAL)
+ ) {
console.log('Escape');
show = false;
}
diff --git a/src/lib/components/common/Modal.svelte b/src/lib/components/common/Modal.svelte
index 9d6afc534b..8e031a5bce 100644
--- a/src/lib/components/common/Modal.svelte
+++ b/src/lib/components/common/Modal.svelte
@@ -4,6 +4,8 @@
import { flyAndScale } from '$lib/utils/transitions';
import * as FocusTrap from 'focus-trap';
+ import { settings } from '$lib/stores';
+ import { matchKeybinding, Shortcut } from '$lib/shortcuts';
export let show = true;
export let size = 'md';
export let containerClassName = 'p-3';
@@ -40,7 +42,12 @@
};
const handleKeyDown = (event: KeyboardEvent) => {
- if (event.key === 'Escape' && isTopModal()) {
+ if (
+ (event.key === 'Escape' ||
+ ($settings?.keyboardShortcuts !== false &&
+ matchKeybinding(event) === Shortcut.CLOSE_MODAL)) &&
+ isTopModal()
+ ) {
console.log('Escape');
show = false;
}
diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte
index 0c96091268..7f8906c2d0 100644
--- a/src/routes/(app)/+layout.svelte
+++ b/src/routes/(app)/+layout.svelte
@@ -328,10 +328,6 @@
console.log('Shortcut triggered: SHOW_SHORTCUTS');
event.preventDefault();
showSettings.set('shortcuts');
- } else if (shortcut === Shortcut.CLOSE_MODAL) {
- console.log('Shortcut triggered: CLOSE_MODAL');
- event.preventDefault();
- showSettings.set(false);
} else if (shortcut === Shortcut.OPEN_MODEL_SELECTOR) {
console.log('Shortcut triggered: OPEN_MODEL_SELECTOR');
event.preventDefault();