Vanessa 2022-06-05 11:14:18 +08:00
parent b7b85c5650
commit 6dac034125
6 changed files with 19 additions and 7 deletions

View file

@ -1,4 +1,5 @@
{ {
"clearMessage": "Clear all messages",
"freeSub": "Free Trial Subscription", "freeSub": "Free Trial Subscription",
"sortByUpdateTimeDesc": "Descending by update time", "sortByUpdateTimeDesc": "Descending by update time",
"sortByUpdateTimeAsc": "Ascending by update time", "sortByUpdateTimeAsc": "Ascending by update time",

View file

@ -1,4 +1,5 @@
{ {
"clearMessage": "Effacer tous les messages",
"freeSub": "Abonnement d'essai gratuit", "freeSub": "Abonnement d'essai gratuit",
"sortByUpdateTimeDesc": "Descendant par heure de mise à jour", "sortByUpdateTimeDesc": "Descendant par heure de mise à jour",
"sortByUpdateTimeAsc": "Croissant par heure de mise à jour", "sortByUpdateTimeAsc": "Croissant par heure de mise à jour",

View file

@ -1,4 +1,5 @@
{ {
"clearMessage": "清空所有消息",
"freeSub": "免費試用訂閱", "freeSub": "免費試用訂閱",
"sortByUpdateTimeDesc": "更新時間降序", "sortByUpdateTimeDesc": "更新時間降序",
"sortByUpdateTimeAsc": "更新時間升序", "sortByUpdateTimeAsc": "更新時間升序",

View file

@ -1,4 +1,5 @@
{ {
"clearMessage": "清空所有消息",
"freeSub": "免费试用订阅", "freeSub": "免费试用订阅",
"sortByUpdateTimeDesc": "更新时间降序", "sortByUpdateTimeDesc": "更新时间降序",
"sortByUpdateTimeAsc": "更新时间升序", "sortByUpdateTimeAsc": "更新时间升序",

View file

@ -4,8 +4,8 @@ export const initMessage = () => {
const messageElement = document.getElementById("message"); const messageElement = document.getElementById("message");
messageElement.innerHTML = `<div class="fn__flex-1"></div> messageElement.innerHTML = `<div class="fn__flex-1"></div>
<div class="fn__hr fn__flex-shrink"></div> <div class="fn__hr fn__flex-shrink"></div>
<button class="fn__flex-center b3-button b3-button--cancel"> <button class="fn__flex-center b3-button b3-button--outline">
${window.siyuan.languages.close} <svg><use xlink:href="#iconTrashcan"></use></svg> ${window.siyuan.languages.clearMessage}
</button>`; </button>`;
messageElement.addEventListener("click", (event) => { messageElement.addEventListener("click", (event) => {
let target = event.target as HTMLElement; let target = event.target as HTMLElement;
@ -16,7 +16,7 @@ export const initMessage = () => {
break; break;
} else if (target.isSameNode(messageElement.lastElementChild)) { } else if (target.isSameNode(messageElement.lastElementChild)) {
target.parentElement.classList.add("fn__none"); target.parentElement.classList.add("fn__none");
target.parentElement.innerHTML = ""; target.parentElement.firstElementChild.innerHTML = "";
event.preventDefault(); event.preventDefault();
break; break;
} }
@ -25,8 +25,8 @@ export const initMessage = () => {
}); });
}; };
export const showMessage = (message: string, timeout = 6000, type = "info") => { export const showMessage = (message: string, timeout = 6000, type = "info", messageId?: string) => {
const id = genUUID(); const id = messageId || genUUID();
let messageHTML = `<div data-id="${id}" class="b3-snackbar${type === "error" ? " b3-snackbar--error" : ""}"><div class="b3-snackbar__content">${message}</div>`; let messageHTML = `<div data-id="${id}" class="b3-snackbar${type === "error" ? " b3-snackbar--error" : ""}"><div class="b3-snackbar__content">${message}</div>`;
if (timeout === 0) { if (timeout === 0) {
messageHTML += '<svg class="b3-snackbar__close"><use xlink:href="#iconClose"></use></svg>'; messageHTML += '<svg class="b3-snackbar__close"><use xlink:href="#iconClose"></use></svg>';
@ -40,6 +40,10 @@ export const showMessage = (message: string, timeout = 6000, type = "info") => {
messagesElement.parentElement.classList.remove("fn__none"); messagesElement.parentElement.classList.remove("fn__none");
} }
messagesElement.insertAdjacentHTML("afterbegin", messageHTML + "</div>"); messagesElement.insertAdjacentHTML("afterbegin", messageHTML + "</div>");
if (messagesElement.firstElementChild.nextElementSibling &&
messagesElement.firstElementChild.nextElementSibling.innerHTML === messagesElement.firstElementChild.innerHTML) {
messagesElement.firstElementChild.nextElementSibling.remove();
}
messagesElement.scrollTop = 0; messagesElement.scrollTop = 0;
return id; return id;
}; };

View file

@ -1,13 +1,17 @@
import {showMessage} from "../dialog/message"; import {hideMessage, showMessage} from "../dialog/message";
import {exportLayout} from "../layout/util"; import {exportLayout} from "../layout/util";
import {isMobile} from "./functions"; import {isMobile} from "./functions";
export const processMessage = (response: IWebSocketData) => { export const processMessage = (response: IWebSocketData) => {
if ("msg" === response.cmd) { if ("msg" === response.cmd) {
showMessage(response.msg, response.data.closeTimeout, response.code === 0 ? "info" : "error"); showMessage(response.msg, response.data.closeTimeout, response.code === 0 ? "info" : "error", response.data.id);
return false; return false;
} }
if ("cmsg" === response.cmd) { if ("cmsg" === response.cmd) {
hideMessage(response.data.id);
return false;
}
if ("cprogress" === response.cmd) {
const progressElement = document.getElementById("progress"); const progressElement = document.getElementById("progress");
if (progressElement) { if (progressElement) {
progressElement.remove(); progressElement.remove();