- Rebrand hero section with OasisRelay title, gradient text, and uptime counter
- Add transparent-to-frosted-glass nav bar effect on home page scroll
- Add grid square background pattern on home page
- Simplify nav items to: 首页, 控制台, 定价, 文档
- Change 分组监控 to Activity icon button opening external status page
- Switch font family to PingFang SC with cross-platform fallbacks
- Fix username visibility in light mode nav bar
- Restyle login/register forms and home page sections
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extracted the User Agreement and Privacy Policy presentation into a
reusable DocumentRenderer component (web/src/components/common/DocumentRenderer).
Unified rendering logic and i18n source for these documents, removed the
legacy contentDetector utility, and updated the related pages to use the
new component. Adjusted controller/backend (controller/misc.go) and locale
files to support the new rendering approach.
This improves reuse, maintainability, and future extensibility.
- Ran: bun run eslint:fix && bun run lint:fix
- Inserted AGPL license header via eslint-plugin-header
- Enforced no-multiple-empty-lines and other lint rules
- Formatted code using Prettier v3 (@so1ve/prettier-config)
- No functional changes; formatting-only baseline across JS/JSX files
- Rename React components/pages/utilities that contain JSX to `.jsx` across `web/src`
- Update import paths and re-exports to match new `.jsx` extensions
- Fix Vite entry by switching `web/index.html` from `/src/index.js` to `/src/index.jsx`
- Verified remaining `.js` files are plain JS (hooks/helpers/constants) and do not require JSX
- No runtime behavior changes; extension and reference alignment only
Context: Resolves the Vite pre-transform error caused by the stale `/src/index.js` entry after migrating to `.jsx`.