diff --git a/src/_locales/de/main.json b/src/_locales/de/main.json
index a5eb555..78dd956 100644
--- a/src/_locales/de/main.json
+++ b/src/_locales/de/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Vorlagen-Template",
"Explain this: {{selection}}": "Erkläre das: {{selection}}",
"New": "Neu",
- "Always display floating window, disable sidebar for all site adapters": "Immer das schwebende Fenster anzeigen, die Seitenleiste für alle Website-Adapter deaktivieren"
+ "Always display floating window, disable sidebar for all site adapters": "Immer das schwebende Fenster anzeigen, die Seitenleiste für alle Website-Adapter deaktivieren",
+ "Allow ESC to close all floating windows": "ESC-Taste zum Schließen aller schwebenden Fenster zulassen"
}
diff --git a/src/_locales/en/main.json b/src/_locales/en/main.json
index 26dd94b..196ca97 100644
--- a/src/_locales/en/main.json
+++ b/src/_locales/en/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Prompt Template",
"Explain this: {{selection}}": "Explain this: {{selection}}",
"New": "New",
- "Always display floating window, disable sidebar for all site adapters": "Always display floating window, disable sidebar for all site adapters"
+ "Always display floating window, disable sidebar for all site adapters": "Always display floating window, disable sidebar for all site adapters",
+ "Allow ESC to close all floating windows": "Allow ESC to close all floating windows"
}
diff --git a/src/_locales/es/main.json b/src/_locales/es/main.json
index 0ae0028..6e84392 100644
--- a/src/_locales/es/main.json
+++ b/src/_locales/es/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Plantilla de sugerencias",
"Explain this: {{selection}}": "Explicar esto: {{selection}}",
"New": "Nuevo",
- "Always display floating window, disable sidebar for all site adapters": "Mostrar siempre la ventana flotante, desactivar la barra lateral para todos los adaptadores de sitios"
+ "Always display floating window, disable sidebar for all site adapters": "Mostrar siempre la ventana flotante, desactivar la barra lateral para todos los adaptadores de sitios",
+ "Allow ESC to close all floating windows": "Permitir que ESC cierre todas las ventanas flotantes"
}
diff --git a/src/_locales/fr/main.json b/src/_locales/fr/main.json
index 0019d2c..ff4197b 100644
--- a/src/_locales/fr/main.json
+++ b/src/_locales/fr/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Modèle de suggestion",
"Explain this: {{selection}}": "Expliquer ceci : {{selection}}",
"New": "Nouveau",
- "Always display floating window, disable sidebar for all site adapters": "Toujours afficher la fenêtre flottante, désactiver la barre latérale pour tous les adaptateurs de site"
+ "Always display floating window, disable sidebar for all site adapters": "Toujours afficher la fenêtre flottante, désactiver la barre latérale pour tous les adaptateurs de site",
+ "Allow ESC to close all floating windows": "Autoriser la touche ESC pour fermer toutes les fenêtres flottantes"
}
diff --git a/src/_locales/in/main.json b/src/_locales/in/main.json
index 0650e9b..6826d8b 100644
--- a/src/_locales/in/main.json
+++ b/src/_locales/in/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Template Prompt",
"Explain this: {{selection}}": "Jelaskan ini: {{selection}}",
"New": "Baru",
- "Always display floating window, disable sidebar for all site adapters": "Selalu tampilkan jendela mengambang, nonaktifkan sidebar untuk semua adapter situs"
+ "Always display floating window, disable sidebar for all site adapters": "Selalu tampilkan jendela mengambang, nonaktifkan sidebar untuk semua adapter situs",
+ "Allow ESC to close all floating windows": "Izinkan ESC untuk menutup semua jendela mengambang"
}
diff --git a/src/_locales/it/main.json b/src/_locales/it/main.json
index 594ff70..fc6b51b 100644
--- a/src/_locales/it/main.json
+++ b/src/_locales/it/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Modello di prompt",
"Explain this: {{selection}}": "Spiega questo: {{selection}}",
"New": "Nuovo",
- "Always display floating window, disable sidebar for all site adapters": "Mostra sempre la finestra flottante, disabilita la barra laterale per tutti gli adattatori del sito"
+ "Always display floating window, disable sidebar for all site adapters": "Mostra sempre la finestra flottante, disabilita la barra laterale per tutti gli adattatori del sito",
+ "Allow ESC to close all floating windows": "Consenti ESC per chiudere tutte le finestre flottanti"
}
diff --git a/src/_locales/ja/main.json b/src/_locales/ja/main.json
index 5697909..b85e365 100644
--- a/src/_locales/ja/main.json
+++ b/src/_locales/ja/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "プロンプトテンプレート",
"Explain this: {{selection}}": "これを説明する: {{selection}}",
"New": "新規",
- "Always display floating window, disable sidebar for all site adapters": "常にフローティングウィンドウを表示し、すべてのサイトアダプターでサイドバーを無効にします"
+ "Always display floating window, disable sidebar for all site adapters": "常にフローティングウィンドウを表示し、すべてのサイトアダプターでサイドバーを無効にします",
+ "Allow ESC to close all floating windows": "ESCキーですべてのフローティングウィンドウを閉じる"
}
diff --git a/src/_locales/ko/main.json b/src/_locales/ko/main.json
index e0a39a4..058f542 100644
--- a/src/_locales/ko/main.json
+++ b/src/_locales/ko/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "프롬프트 템플릿",
"Explain this: {{selection}}": "이것을 설명하세요: {{selection}}",
"New": "새로 만들기",
- "Always display floating window, disable sidebar for all site adapters": "항상 떠다니는 창을 표시하고 모든 사이트 어댑터의 사이드바를 비활성화합니다"
+ "Always display floating window, disable sidebar for all site adapters": "항상 떠다니는 창을 표시하고 모든 사이트 어댑터의 사이드바를 비활성화합니다",
+ "Allow ESC to close all floating windows": "ESC를 눌러 모든 떠다니는 창을 닫도록 허용"
}
diff --git a/src/_locales/pt/main.json b/src/_locales/pt/main.json
index d4b62e2..47c4ece 100644
--- a/src/_locales/pt/main.json
+++ b/src/_locales/pt/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Modelo de Prompt",
"Explain this: {{selection}}": "Explique isso: {{selection}}",
"New": "Novo",
- "Always display floating window, disable sidebar for all site adapters": "Sempre exibir janela flutuante, desativar barra lateral para todos os adaptadores de site"
+ "Always display floating window, disable sidebar for all site adapters": "Sempre exibir janela flutuante, desativar barra lateral para todos os adaptadores de site",
+ "Allow ESC to close all floating windows": "Permitir ESC para fechar todas as janelas flutuantes"
}
diff --git a/src/_locales/ru/main.json b/src/_locales/ru/main.json
index e5d1f75..05cfb1b 100644
--- a/src/_locales/ru/main.json
+++ b/src/_locales/ru/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Шаблон запроса",
"Explain this: {{selection}}": "Объяснить это: {{selection}}",
"New": "Новый",
- "Always display floating window, disable sidebar for all site adapters": "Всегда отображать плавающее окно, отключить боковую панель для всех адаптеров сайтов"
+ "Always display floating window, disable sidebar for all site adapters": "Всегда отображать плавающее окно, отключить боковую панель для всех адаптеров сайтов",
+ "Allow ESC to close all floating windows": "Разрешить ESC для закрытия всех плавающих окон"
}
diff --git a/src/_locales/tr/main.json b/src/_locales/tr/main.json
index 77d4fba..cc2134d 100644
--- a/src/_locales/tr/main.json
+++ b/src/_locales/tr/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "Prompt Şablonu",
"Explain this: {{selection}}": "Bunu açıkla: {{selection}}",
"New": "Yeni",
- "Always display floating window, disable sidebar for all site adapters": "Her zaman kayan pencereyi görüntüle, tüm site adaptörleri için kenar çubuğunu devre dışı bırak"
+ "Always display floating window, disable sidebar for all site adapters": "Her zaman kayan pencereyi görüntüle, tüm site adaptörleri için kenar çubuğunu devre dışı bırak",
+ "Allow ESC to close all floating windows": "ESC tuşuyla tüm kayan pencereleri kapatmaya izin ver"
}
diff --git a/src/_locales/zh-hans/main.json b/src/_locales/zh-hans/main.json
index f713173..ae1f95a 100644
--- a/src/_locales/zh-hans/main.json
+++ b/src/_locales/zh-hans/main.json
@@ -145,6 +145,7 @@
"Explain this: {{selection}}": "解释这个: {{selection}}",
"New": "新建",
"Always display floating window, disable sidebar for all site adapters": "总是显示浮动窗口, 禁用所有站点适配器的侧边栏",
+ "Allow ESC to close all floating windows": "允许按ESC关闭所有浮动窗口",
"Temperature": "温度",
"keep-alive Time": "保活时间",
"5m": "5分钟",
diff --git a/src/_locales/zh-hant/main.json b/src/_locales/zh-hant/main.json
index 21a4089..8951662 100644
--- a/src/_locales/zh-hant/main.json
+++ b/src/_locales/zh-hant/main.json
@@ -143,5 +143,6 @@
"Prompt Template": "提示範本",
"Explain this: {{selection}}": "解釋這個: {{selection}}",
"New": "新增",
- "Always display floating window, disable sidebar for all site adapters": "總是顯示浮動視窗,停用所有網站適配器的側邊欄"
+ "Always display floating window, disable sidebar for all site adapters": "總是顯示浮動視窗,停用所有網站適配器的側邊欄",
+ "Allow ESC to close all floating windows": "允許按 ESC 關閉所有浮動視窗"
}
diff --git a/src/components/ConversationCard/index.jsx b/src/components/ConversationCard/index.jsx
index 58d2ece..0abb9ed 100644
--- a/src/components/ConversationCard/index.jsx
+++ b/src/components/ConversationCard/index.jsx
@@ -253,17 +253,30 @@ function ConversationCard(props) {
setIsReady(true)
}
- const closeChatsListener = (message) => {
+ const closeChatsMessageListener = (message) => {
if (message.type === 'CLOSE_CHATS') {
port.disconnect()
+ Browser.runtime.onMessage.removeListener(closeChatsMessageListener)
+ window.removeEventListener('keydown', closeChatsEscListener)
if (props.onClose) props.onClose()
}
}
+ const closeChatsEscListener = async (e) => {
+ if (e.key === 'Escape' && (await getUserConfig()).allowEscToCloseAll) {
+ closeChatsMessageListener({ type: 'CLOSE_CHATS' })
+ }
+ }
- if (props.closeable) Browser.runtime.onMessage.addListener(closeChatsListener)
+ if (props.closeable) {
+ Browser.runtime.onMessage.addListener(closeChatsMessageListener)
+ window.addEventListener('keydown', closeChatsEscListener)
+ }
port.onDisconnect.addListener(portListener)
return () => {
- if (props.closeable) Browser.runtime.onMessage.removeListener(closeChatsListener)
+ if (props.closeable) {
+ Browser.runtime.onMessage.removeListener(closeChatsMessageListener)
+ window.removeEventListener('keydown', closeChatsEscListener)
+ }
port.onDisconnect.removeListener(portListener)
}
}, [port])
diff --git a/src/config/index.mjs b/src/config/index.mjs
index 02d0081..d0fa1b8 100644
--- a/src/config/index.mjs
+++ b/src/config/index.mjs
@@ -220,6 +220,7 @@ export const defaultConfig = {
clickIconAction: 'popup',
insertAtTop: isMobile(),
alwaysFloatingSidebar: false,
+ allowEscToCloseAll: false,
lockWhenAnswer: true,
answerScrollMargin: 200,
autoRegenAfterSwitchModel: false,
diff --git a/src/popup/sections/GeneralPart.jsx b/src/popup/sections/GeneralPart.jsx
index 2cf8b3a..8be45b5 100644
--- a/src/popup/sections/GeneralPart.jsx
+++ b/src/popup/sections/GeneralPart.jsx
@@ -484,6 +484,17 @@ export function GeneralPart({ config, updateConfig }) {
/>
{t('Always display floating window, disable sidebar for all site adapters')}
+