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