fix: add word-wrap toggle to danger confirm dialog

This commit is contained in:
t8y2
2026-06-16 23:00:46 +08:00
parent f14973eaef
commit 412bb2be87
8 changed files with 16 additions and 3 deletions
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed } from "vue";
import { computed, ref } from "vue";
import { useI18n } from "vue-i18n";
import { AlertTriangle, Loader2 } from "@lucide/vue";
import { AlertTriangle, Loader2, TextWrap } from "@lucide/vue";
import { Button } from "@/components/ui/button";
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog";
import { Label } from "@/components/ui/label";
@@ -13,6 +13,7 @@ const { highlight } = useSqlHighlighter();
const open = defineModel<boolean>("open", { default: false });
const suppressFuturePrompts = defineModel<boolean>("suppressFuturePrompts", { default: false });
const wrap = ref(false);
const props = withDefaults(
defineProps<{
@@ -72,7 +73,12 @@ function onConfirm() {
<div class="py-4 min-w-0">
<p class="text-sm text-muted-foreground mb-3">{{ message || t("dangerDialog.message") }}</p>
<pre v-if="code" class="text-xs bg-muted p-3 rounded overflow-auto max-h-40 min-w-0 font-mono whitespace-pre" v-html="highlightedCode" />
<div v-if="code" class="relative">
<Button variant="ghost" size="icon-xs" class="absolute top-1 right-1 z-10 h-6 w-6" :class="wrap ? 'text-foreground bg-accent' : 'text-muted-foreground'" :title="t('dangerDialog.wrapLines')" @click="wrap = !wrap">
<TextWrap class="h-3.5 w-3.5" />
</Button>
<pre class="text-xs bg-muted px-3 pt-3 pb-3 pr-7 rounded overflow-auto max-h-40 min-w-0 font-mono" :class="wrap ? 'whitespace-pre-wrap' : 'whitespace-pre'" v-html="highlightedCode" />
</div>
<div v-if="showSuppressToggle" class="mt-3 flex items-center justify-between gap-4 rounded-md border bg-muted/20 px-3 py-2">
<Label for="danger-confirm-suppress" class="text-sm leading-5">{{ suppressToggleLabel || t("dangerDialog.suppressFuturePrompts") }}</Label>
<Switch id="danger-confirm-suppress" v-model="suppressFuturePrompts" />
+1
View File
@@ -1634,6 +1634,7 @@
title: "Dangerous Operation",
message: "This SQL statement may modify or delete data irreversibly. Are you sure you want to execute it?",
suppressFuturePrompts: "Do not ask again for dangerous SQL",
wrapLines: "Toggle word wrap",
deleteMessage: "This delete operation may be irreversible. Continue?",
deleteConfirm: "Confirm Delete",
deleteRowMessage: "This row will be marked for deletion and removed from the database after saving. Continue?",
+1
View File
@@ -1374,6 +1374,7 @@
title: "Operación peligrosa",
message: "Esta sentencia SQL puede modificar o eliminar datos de forma irreversible. ¿Estás seguro de que deseas ejecutarla?",
suppressFuturePrompts: "No volver a preguntar para SQL peligroso",
wrapLines: "Alternar ajuste de línea",
deleteMessage: "Esta operación de eliminación puede ser irreversible. ¿Continuar?",
deleteConfirm: "Confirmar eliminación",
deleteRowMessage: "Esta fila quedará marcada para eliminación y se borrará de la base de datos al guardar. ¿Continuar?",
+1
View File
@@ -1495,6 +1495,7 @@
title: "Operazione Pericolosa",
message: "Questa istruzione SQL potrebbe modificare o eliminare i dati in modo irreversibile. Sei sicuro di volerla eseguire?",
suppressFuturePrompts: "Non chiedere più per SQL pericolosi",
wrapLines: "Attiva/disattiva ritorno a capo",
deleteMessage: "Questa operazione di eliminazione potrebbe essere irreversibile. Continuare?",
deleteConfirm: "Conferma Eliminazione",
deleteRowMessage: "Questa riga verrà contrassegnata per l'eliminazione e rimossa dal database dopo il salvataggio. Continuare?",
+1
View File
@@ -1624,6 +1624,7 @@ export default {
title: "危険な操作",
message: "このSQL文はデータを不可逆的に変更または削除する可能性があります。実行してもよろしいですか?",
suppressFuturePrompts: "危険なSQLの確認を今後表示しない",
wrapLines: "折り返し表示を切り替え",
deleteMessage: "この削除操作は元に戻せない可能性があります。続行しますか?",
deleteConfirm: "削除を確認",
deleteRowMessage: "この行は削除対象としてマークされ、保存後にデータベースから削除されます。続行しますか?",
+1
View File
@@ -1506,6 +1506,7 @@
title: "Operação perigosa",
message: "Esta instrução SQL pode modificar ou excluir dados de forma irreversível. Tem certeza de que deseja executá-la?",
suppressFuturePrompts: "Não perguntar novamente para SQL perigoso",
wrapLines: "Alternar quebra de linha",
deleteMessage: "Esta operação de exclusão pode ser irreversível. Continuar?",
deleteConfirm: "Confirmar exclusão",
deleteRowMessage: "Esta linha será marcada para exclusão e removida do banco de dados após salvar. Continuar?",
+1
View File
@@ -1633,6 +1633,7 @@
title: "危险操作",
message: "此 SQL 语句可能不可逆地修改或删除数据,确认要执行吗?",
suppressFuturePrompts: "以后执行危险 SQL 不再提示",
wrapLines: "切换自动换行",
deleteMessage: "此删除操作可能不可逆,确认要继续吗?",
deleteConfirm: "确认删除",
deleteRowMessage: "此行将被标记为删除,保存后会从数据库删除,确认要继续吗?",
+1
View File
@@ -1483,6 +1483,7 @@
title: "危險操作",
message: "此 SQL 語句可能不可逆地修改或刪除資料,確認要執行嗎?",
suppressFuturePrompts: "之後執行危險 SQL 不再提示",
wrapLines: "切換自動換行",
deleteMessage: "此刪除操作可能不可逆,確認要繼續嗎?",
deleteConfirm: "確認刪除",
deleteRowMessage: "此列將被標記為刪除,儲存後會從資料庫刪除,確認要繼續嗎?",