import {genUUID} from "../util/genID"; import {Constants} from "../constants"; export const initMessage = () => { const messageElement = document.getElementById("message"); messageElement.innerHTML = `
`; messageElement.addEventListener("click", (event) => { let target = event.target as HTMLElement; while (target && !target.isEqualNode(messageElement)) { if (target.classList.contains("b3-snackbar__close")) { hideMessage(target.parentElement.getAttribute("data-id")); event.preventDefault(); break; } else if (target.isSameNode(messageElement.lastElementChild)) { target.parentElement.classList.remove("b3-snackbars--show"); setTimeout(() => { target.parentElement.firstElementChild.innerHTML = ""; }, Constants.TIMEOUT_INPUT); event.preventDefault(); break; } target = target.parentElement; } }); }; // type: info/error; timeout: 0 手动关闭;-1 用不关闭 export const showMessage = (message: string, timeout = 6000, type = "info", messageId?: string) => { const id = messageId || genUUID(); const messagesElement = document.getElementById("message").firstElementChild; const existElement = messagesElement.querySelector(`.b3-snackbar[data-id="${id}"]`); if (existElement) { window.clearTimeout(parseInt(existElement.getAttribute("data-timeoutid"))); existElement.innerHTML = `${timeout === 0 ? '' : ""}`; if (type === "error") { existElement.classList.add("b3-snackbar--error"); } else { existElement.classList.remove("b3-snackbar--error"); } if (timeout > 0) { const timeoutId = window.setTimeout(() => { hideMessage(id); }, timeout); existElement.setAttribute("data-timeoutid", timeoutId.toString()); } return; } let messageHTML = `