Files
guzhujushiBlog/frontend/main.js
T

31 lines
1.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* =====================================================================
* 入口(main.js
* 挂载全局事件并完成首次渲染。
* 各业务模块:api / auth / router / article / comment / manage / friend /
* markdown / state / utils
* ===================================================================== */
import { $ } from "./utils.js";
import { refreshUser } from "./auth.js";
import { navigate, render, renderAuthArea, renderNav } from "./router.js";
// 拦截站内 SPA 链接(带 data-link 的 <a>),并收起用户下拉菜单
document.addEventListener("click", (e) => {
const link = e.target.closest("a[data-link]");
if (link) {
e.preventDefault();
navigate(link.getAttribute("href"));
return;
}
const dropdown = $("#user-dropdown");
if (dropdown && !e.target.closest(".user-menu")) dropdown.classList.add("hidden");
});
window.addEventListener("popstate", render);
(async function init() {
renderNav();
await refreshUser();
renderAuthArea();
render();
})();