diff --git a/app/src/assets/scss/component/_snackbar.scss b/app/src/assets/scss/component/_snackbar.scss index b4edf4028..cf2e75803 100644 --- a/app/src/assets/scss/component/_snackbar.scss +++ b/app/src/assets/scss/component/_snackbar.scss @@ -3,6 +3,7 @@ position: relative; transition: transform 256ms cubic-bezier(.45, .05, .55, .95) 0ms; text-align: right; + justify-self: end; font-size: var(--b3-font-size); &--hide { diff --git a/app/src/dialog/message.ts b/app/src/dialog/message.ts index c931c30ca..6d17e7dcd 100644 --- a/app/src/dialog/message.ts +++ b/app/src/dialog/message.ts @@ -32,10 +32,21 @@ export const initMessage = () => { target = target.parentElement; } }); - const tempMessageElement = document.getElementById("tempMessage"); - if (tempMessageElement) { - showMessage(tempMessageElement.innerHTML); - tempMessageElement.remove(); + + const tempMessages = document.getElementById("tempMessages"); + if (tempMessages) { + const items = tempMessages.querySelectorAll("[temp-message]"); + items.forEach((item) => { + const timeoutString = item.getAttribute("data-timeout"); + let timeout; + if (timeoutString) { + timeout = parseInt(timeoutString); + } + const type = item.getAttribute("data-type"); + const messageId = item.getAttribute("data-message-id"); + showMessage(item.innerHTML, timeout, type, messageId); + }); + tempMessages.remove(); } }; @@ -43,14 +54,25 @@ export const initMessage = () => { export const showMessage = (message: string, timeout = 6000, type = "info", messageId?: string) => { const messagesElement = document.getElementById("message").firstElementChild; if (!messagesElement) { - document.body.insertAdjacentHTML("beforeend", `
${message}
`); + let tempMessages = document.getElementById("tempMessages"); + if (!tempMessages) { + document.body.insertAdjacentHTML("beforeend", "
"); + tempMessages = document.getElementById("tempMessages"); + } + + tempMessages.insertAdjacentHTML("beforeend", `
${message}
`); return; } const id = messageId || genUUID();