import { useEffect } from 'react';

import { useNavigate } from 'react-router';

import { DEFAULT_LANG, ENABLED_LANGS } from '@/i18n/langConfig';
import { getLangTarget } from '@/i18n/langMap';

/**
 * 根路径 `/` 的语言入口重定向（客户端执行）。
 *
 * 采用客户端重定向而非服务端/边缘重定向：nginx 无需任何语言逻辑，对 CF 加速零影响。
 * SSG 端此组件仅渲染出空 HTML（root 的 SPA fallback 承载），hydrate 后读取 navigator.language，
 * 归一化为受支持的语言并 replace 到 /<lang>；不支持时回退默认语言。
 */
export default function RootRedirect() {
    const navigate = useNavigate();

    useEffect(() => {
        const detected = getLangTarget(navigator.language || DEFAULT_LANG);
        const lang = (ENABLED_LANGS as readonly string[]).includes(detected)
            ? detected
            : DEFAULT_LANG;
        // 用短码作为 URL 段（/en 而非 /en-US），与 prerender 列表保持一致
        const seg = lang.split('-')[0];
        navigate(`/${seg}/home`, { replace: true });
    }, [navigate]);

    return null;
}
