Files
guzhujushiBlog/frontend/main.js
T

31 lines
1.0 KiB
JavaScript
Raw Normal View History

2026-08-22 22:28:41 +08:00
/* =====================================================================
* 入口(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();
})();