fix /abort toast and loop break in /times

This commit is contained in:
LenAnderson 2024-05-19 06:25:19 -04:00
parent 1f18694aa6
commit dfe482b37b
1 changed files with 6 additions and 2 deletions

View File

@ -393,11 +393,15 @@ async function timesCallback(args, value) {
if (command instanceof SlashCommandClosure) { if (command instanceof SlashCommandClosure) {
command.scope.setMacro('timesIndex', i); command.scope.setMacro('timesIndex', i);
result = await command.execute(); result = await command.execute();
// don't suppress potentially loud /abort (need to bubble up to executeSlashCommandsWithOptions for toast)
if (result.isAborted) break;
} }
else { else {
result = await executeSubCommands(command.replace(/\{\{timesIndex\}\}/g, i.toString()), args._scope, args._parserFlags); result = await executeSubCommands(command.replace(/\{\{timesIndex\}\}/g, i.toString()), args._scope, args._parserFlags, args._abortController);
if (result.isAborted) { if (result.isAborted) {
args._abortController.abort(result.abortReason, true); // abort toast (if loud) is already shown in subcommand execution,
// overwrite signal to quiet to prevent second toast from ancestor executions
args._abortController.signal.isQuiet = true;
break; break;
} }
} }