Files
pure-note/web/src/features/site.ts
T
wangairnan 51f528f516 feat(web): 重构 9 页面界面并统一设计令牌与响应式布局
- index.css 以 Tailwind 4 @theme 落地设计令牌,全部页面按新设计稿重写
  样式:首页/笔记详情/标签页/登录/后台列表/编辑/回收站/设置/404
- Layout 重构导航与主题切换;新增 Toast 轻提示组件
- 移除 vite 手动 codeSplitting:分组 chunk 会被提升进入口静态依赖并对
  HTML 发出 modulepreload,lazy 路由的 CodeMirror 在所有页面被预加载
  (Lighthouse unused-javascript 549KiB 的根因)
- vite dev 代理补 changeOrigin:false,保留浏览器原始 Host,避免后端
  Origin 校验误判跨源 403
2026-09-08 21:41:05 +08:00

27 lines
855 B
TypeScript

import { useEffect } from 'react'
import { useQuery } from '@tanstack/react-query'
import { api } from '../lib/api'
import type { SiteSettings } from '../lib/api'
export function useSiteTitle() {
return useQuery({
queryKey: ['site'],
queryFn: () => api<SiteSettings>('/api/site'),
staleTime: 5 * 60_000,
})
}
/**
* 设置浏览器标签页标题。
* - 生产环境首帧由服务端注入首页标题;SPA 路由切换后由此 hook 接管。
* - dev 环境 index.html 占位符 `{{.Title}}` 也依赖此 hook 替换。
* pageTitle 缺省时仅显示站点名。
*/
export function useDocumentTitle(pageTitle?: string) {
const { data } = useSiteTitle()
const siteName = data?.site_title ?? 'Pure Note'
useEffect(() => {
document.title = pageTitle ? `${pageTitle} · ${siteName}` : siteName
}, [pageTitle, siteName])
}