import { useLocation, useNavigate } from 'react-router'; import { Check, ChevronRight } from '@/components/icons'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { getLanguageScopes } from '@/lib/docs-config'; import { docsSite, getScopeByPathname } from '@/lib/site-config'; /** * Language selector for multi-language sites. Each option is a language's * landing scope — its default version — so switching languages always lands * on that language's default-version first page. Hidden languages never * appear as options. */ export function LanguageSwitcher() { const { pathname } = useLocation(); const navigate = useNavigate(); const current = getScopeByPathname(pathname); const options = getLanguageScopes(docsSite); if (!current.language || (options.length < 2 && !current.hidden)) { return null; } return ( } > {current.language} {options.map(scope => ( { if (scope.language !== current.language) { navigate(scope.firstPageUrl); } }} > {scope.language} {scope.language === current.language ? : null} ))} ); }