Allow ESC to close all floating windows (#750)

This commit is contained in:
josc146
2024-08-04 23:44:34 +08:00
parent c7ee67a884
commit 4e7410f8cf
16 changed files with 53 additions and 15 deletions
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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キーですべてのフローティングウィンドウを閉じる"
}
+2 -1
View File
@@ -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를 눌러 모든 떠다니는 창을 닫도록 허용"
}
+2 -1
View File
@@ -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"
}
+2 -1
View File
@@ -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 для закрытия всех плавающих окон"
}
+2 -1
View File
@@ -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"
}
+1
View File
@@ -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分钟",
+2 -1
View File
@@ -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 關閉所有浮動視窗"
}
+16 -3
View File
@@ -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])
+1
View File
@@ -220,6 +220,7 @@ export const defaultConfig = {
clickIconAction: 'popup',
insertAtTop: isMobile(),
alwaysFloatingSidebar: false,
allowEscToCloseAll: false,
lockWhenAnswer: true,
answerScrollMargin: 200,
autoRegenAfterSwitchModel: false,
+11
View File
@@ -484,6 +484,17 @@ export function GeneralPart({ config, updateConfig }) {
/>
{t('Always display floating window, disable sidebar for all site adapters')}
</label>
<label>
<input
type="checkbox"
checked={config.allowEscToCloseAll}
onChange={(e) => {
const checked = e.target.checked
updateConfig({ allowEscToCloseAll: checked })
}}
/>
{t('Allow ESC to close all floating windows')}
</label>
<label>
<input
type="checkbox"