- ESLint(flat config,vue essential + ts recommended)接入并清零: webauthn.ts 标注为刻意的动态类型边界(文件级豁免),theme-init.js 修掉未用的 catch 变量 - vitest + jsdom 接入,build 前置跑测试;覆盖 format 工具、auth store (token 只存内存、bootstrap 恢复、遗留键清理)、client.ts 401 拦截器 single-flight(自定义 axios adapter 模拟 401→refresh→重放) - TrendChart:hover 命中区盖满槽位(窄条也可悬停),读数显示在头部行, 标签行联动高亮 - auth store bootstrap 顺手清理旧版 localStorage 遗留的 access token 键
12 lines
532 B
JavaScript
12 lines
532 B
JavaScript
// 防止主题闪烁:CSS 加载前按 localStorage/系统偏好设置 data-theme。
|
|
// 独立外部文件而非内联脚本:CSP script-src 'self' 下内联会被拦掉。
|
|
;(function () {
|
|
try {
|
|
var m = localStorage.getItem('ot_theme') || 'system'
|
|
var dark = m === 'dark' || (m === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
|
document.documentElement.setAttribute('data-theme', dark ? 'dark' : 'light')
|
|
} catch {
|
|
document.documentElement.setAttribute('data-theme', 'dark')
|
|
}
|
|
})()
|