From 848957565bf8090e47976bc374576cfa7fae916a Mon Sep 17 00:00:00 2001 From: Tony <68118705+Legend-Master@users.noreply.github.com> Date: Thu, 8 Oct 2026 16:11:16 +0800 Subject: [PATCH] fix(dialog): browser `confirm` fails with command not found (#3665) --- .changes/dialog-fix-browser-confirm.md | 6 ++++++ plugins/dialog/guest-js/init.ts | 9 ++++++--- plugins/dialog/src/init-iife.js | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 .changes/dialog-fix-browser-confirm.md diff --git a/.changes/dialog-fix-browser-confirm.md b/.changes/dialog-fix-browser-confirm.md new file mode 100644 index 000000000..fd31bce00 --- /dev/null +++ b/.changes/dialog-fix-browser-confirm.md @@ -0,0 +1,6 @@ +--- +dialog: patch +dialog-js: patch +--- + +Fix browser `confirm` fails with `Uncaught dialog.confirm not allowed. Command not found` diff --git a/plugins/dialog/guest-js/init.ts b/plugins/dialog/guest-js/init.ts index f272c1bd5..49c3a82d3 100644 --- a/plugins/dialog/guest-js/init.ts +++ b/plugins/dialog/guest-js/init.ts @@ -19,7 +19,10 @@ window.alert = function (message: string) { // @ts-expect-error tauri does not have sync IPC :( window.confirm = async function (message: string) { - return await invoke('plugin:dialog|confirm', { - message: message.toString() - }) + return ( + (await invoke('plugin:dialog|message', { + message: message.toString(), + buttons: 'OkCancel' + })) === 'Ok' + ) } diff --git a/plugins/dialog/src/init-iife.js b/plugins/dialog/src/init-iife.js index bcdf3f561..dd5e7fa21 100644 --- a/plugins/dialog/src/init-iife.js +++ b/plugins/dialog/src/init-iife.js @@ -1 +1 @@ -!function(){"use strict";async function n(n,i={},o){return window.__TAURI_INTERNALS__.invoke(n,i,o)}"function"==typeof SuppressedError&&SuppressedError,window.alert=function(i){n("plugin:dialog|message",{message:i.toString()})},window.confirm=async function(i){return await n("plugin:dialog|confirm",{message:i.toString()})}}(); +!function(){"use strict";async function n(n,e={},i){return window.__TAURI_INTERNALS__.invoke(n,e,i)}"function"==typeof SuppressedError&&SuppressedError,window.alert=function(e){n("plugin:dialog|message",{message:e.toString()})},window.confirm=async function(e){return"Ok"===await n("plugin:dialog|message",{message:e.toString(),buttons:"OkCancel"})}}();