These changes belong in a separate PR:
- postcss.config.js: Windows tailwindcss resolve workaround
- src/tailwind.css: @source path change
- config/md-raw-loader.cjs: trailing newline fix
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add ErrorBoundary to catch render errors (including chunk load failures from
React.lazy), replacing the previous white-screen crash with a friendly Result
page. Add a network status model (useModel('network')) and OfflineBanner that
shows when the user goes offline. Make request error messages offline-aware.
Clean up dead PWA/ServiceWorker code in global.tsx that never fired.
- ErrorBoundary: catches all render errors, distinguishes chunk load failures
(offline vs online messages), uses antd Result with retry/home buttons
- OfflineBanner: Alert banner in ProLayout content area when offline
- network model: navigator.onLine + online/offline event listeners
- requestErrorConfig: offline-aware error messages in errorHandler
- global.tsx: remove dead sw.offline/sw.updated event listeners
- defaultSettings.ts: remove unused pwa flag
- locales: replace dead PWA i18n keys with network/error keys (8 locales)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* fix: resolve CF Worker Date.now() returning 0 at module level
In Cloudflare Workers, module-level Date.now() evaluates to 0 during
initialization, causing all time-dependent data (visitData dates,
offlineChartData times, activities updatedAt) to render as epoch-zero
values (1970-01-01, 0:00). This broke the analysis dashboard charts
on the preview site.
Convert static module-level data exports to functions that generate
data at request time, ensuring Date.now() returns the current time.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* feat: add Google Analytics (GA4) configuration
Add ga_v2 tracking ID G-59NF1VHHPF via Umi Max analytics plugin.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* fix: fix Tailwind CSS not being applied due to Less import issue
Tailwind CSS v4 was not generating styles because it was imported via
Less's @import in global.less. Less could not process the modern CSS syntax
(@import "tailwindcss"), causing the PostCSS plugin to never process it.
Fixed by importing tailwind.css directly in app.tsx, which allows Vite to
process it through PostCSS correctly.
Closes#11661
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: remove font smoothing CSS properties
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: 重新设计 Welcome 页面,使用 Tailwind CSS 实现现代简洁风格
- 采用左侧介绍 + 右侧卡片布局
- 使用 Tailwind 类名替代内联样式
- 卡片增加 hover 效果和圆角
- 支持亮色/暗色主题
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: configure Tailwind CSS v3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: 修复 Welcome 页面主题兼容性问题
- 移除 Tailwind dark: 类,改用 Ant Design token 驱动颜色
- 修复 flex 布局使用 flex-none 替代 flex-1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: 重新设计 Welcome 页面 - 渐变标题 + 毛玻璃卡片
- 标题使用渐变色
- 卡片使用毛玻璃效果 (backdrop-blur)
- 添加悬停光效动画
- 三列网格布局
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Uncaught Error: Absolute route path "/*" nested under path "/user" is not valid. An absolute child route path must start with the combined path of all its parent routes.
Fixed error: Absolute route path "/*" nested under path "/user" is not valid. An absolute child route path must start with the combined path of all its parent routes.