From 1faaa9706a019eacf9039aaab358423966ee22f0 Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 2 Dec 2025 11:35:29 +0100 Subject: [PATCH] [Glitch] Add UJS to buttons Port 100b20f290a17f5a1616b982a903dfda4ae6e9c8 to glitch-soc Signed-off-by: Claire --- app/javascript/flavours/glitch/utils/links.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/javascript/flavours/glitch/utils/links.ts b/app/javascript/flavours/glitch/utils/links.ts index 02b74bde4d..00821fa8d1 100644 --- a/app/javascript/flavours/glitch/utils/links.ts +++ b/app/javascript/flavours/glitch/utils/links.ts @@ -5,20 +5,26 @@ export function setupLinkListeners() { // We don't want to target links with data-confirm here, as those are handled already. on('click', 'a[data-method]:not([data-confirm])', handleMethodLink); + + // We also want to target buttons with data-confirm that are not inside forms. + on('click', ':not(form) button[data-confirm]:not([form])', handleConfirmLink); } function handleConfirmLink(event: MouseEvent) { - const anchor = event.currentTarget; - if (!(anchor instanceof HTMLAnchorElement)) { + const target = event.currentTarget; + if ( + !(target instanceof HTMLAnchorElement) && + !(target instanceof HTMLButtonElement) + ) { return; } - const message = anchor.dataset.confirm; + const message = target.dataset.confirm; if (!message || !window.confirm(message)) { event.preventDefault(); return; } - if (anchor.dataset.method) { + if (target.dataset.method) { handleMethodLink(event); } }