diff --git a/ui/src/components/bulma/Toast.vue b/ui/src/components/bulma/Toast.vue index 5586739..2f60117 100644 --- a/ui/src/components/bulma/Toast.vue +++ b/ui/src/components/bulma/Toast.vue @@ -20,29 +20,27 @@ const emit = defineEmits<{ (event: "handle", handle: HBulmaToast): void; }>(); -const message = useTemplateRef("message"); +const message_div = useTemplateRef("message"); onMounted(() => emit("handle", { show(options: ToastOptions = {}): void { - if (message.value === null) return; + if (message_div.value === null) return; toast({ ...options, single: true, - message: message.value, + message: message_div.value, }); }, hide(): void { - if (message.value === null) return; + // using "toast" detaches "message" from the invisible "div" + // => toast_div is not part of this component! + const toast_div = message_div.value?.parentElement; + const delete_button = toast_div?.querySelector("button.delete"); + if (!(delete_button instanceof HTMLButtonElement)) return; - const toast_div = message.value.parentElement; - if (toast_div === null) return; - - const dbutton = toast_div.querySelector("button.delete"); - if (!(dbutton instanceof HTMLButtonElement)) return; - - dbutton.click(); + delete_button.click(); }, }), );