refactor(website): 邀请/注册页语言跟随站点路由(六语变体),移除卡内 zh/EN 切换
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (pull_request) Successful in 22s
ci-pangolin / Codegen Drift — token 生成物未漂移 (pull_request) Successful in 8s
ci-pangolin / Cleartext Scan — Android 禁明文 (pull_request) Successful in 22s
ci-pangolin / DS-flow — 原型/跨端同源/代码色单源闸 (pull_request) Successful in 9s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (pull_request) Successful in 22s
ci-pangolin / Go — build + test (pull_request) Failing after 17s
ci-pangolin / E2E Smoke — L4 进程级端到端 (pull_request) Failing after 9s
ci-pangolin / Go — integration (mysql/redis testcontainers) (pull_request) Failing after 4m30s
ci-pangolin / Golden — 视觉回归 (全量:components/auth/desktop/tablet) (pull_request) Failing after 20s
ci-pangolin / Flutter — analyze + test (pull_request) Failing after 12m46s
ci-pangolin / OpenAPI Sync Check (pull_request) Failing after 12m57s
ci-pangolin / Lint — shellcheck (pull_request) Failing after 13m6s

This commit is contained in:
wangjia
2026-07-13 12:50:24 +08:00
parent b48097469e
commit ab84a3542a
25 changed files with 528 additions and 223 deletions
+6 -3
View File
@@ -1,12 +1,14 @@
/**
* Header.jsx — 交互式顶栏(React island@astrojs/react 渲染 + 水合)。
* 迁自 design/ui_kits/website/index.html 的 <header> + site.js 的菜单/滚动毛玻璃逻辑。
* 语言切换由原型的 JS 文本替换改为「路由跳转」(zh=/, en=/en/),单显不并排(铁律 6
* 语言切换由原型的 JS 文本替换改为「路由跳转」(en=/, zh=/zh/),单显不并排(铁律 6
* 拼路径统一走 lib/langPath.js`pagePath` 非空时(邀请/注册页)原地切语言而非跳回首页。
*/
import { useEffect, useRef, useState } from 'react';
import { Download, Menu } from 'lucide-react';
import { SITE } from '../config/site';
import { isLoggedIn, getStoredEmail, clearStoredSession } from '../lib/authState';
import { langPath } from '../lib/langPath';
function Mark() {
return (
@@ -27,7 +29,7 @@ function Mark() {
);
}
export default function Header({ lang = 'zh', t = {} }) {
export default function Header({ lang = 'zh', t = {}, pagePath = '' }) {
const [open, setOpen] = useState(false);
const [scrolled, setScrolled] = useState(false);
const [langOpen, setLangOpen] = useState(false);
@@ -90,7 +92,8 @@ export default function Header({ lang = 'zh', t = {} }) {
['en', 'English'], ['zh', '中文'], ['ja', '日本語'],
['ko', '한국어'], ['ru', 'Русский'], ['es', 'Español'],
];
const langHref = (l) => (l === 'en' ? '/' : `/${l}/`);
// pagePath 空串=首页;非空时(如 'i'/'register')保持在同一页面切语言,而不是跳回首页。
const langHref = (l) => langPath(l, pagePath);
return (
<header class={`hdr${scrolled ? ' scrolled' : ''}`}>