Files
openteam/web/public/theme-init.js
T
Sakurasan 854d0f5d8c feat(web): 接入 ESLint 与 vitest,TrendChart hover 读数
- 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 键
2026-10-30 02:04:02 +08:00

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')
}
})()