UNPKG

@redocly/theme

Version:

Shared UI components lib

32 lines 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLanguagePicker = useLanguagePicker; const react_router_dom_1 = require("react-router-dom"); const use_theme_hooks_1 = require("./use-theme-hooks"); const urls_1 = require("../utils/urls"); function useLanguagePicker() { const { useL10nConfig, useLoadAndNavigate } = (0, use_theme_hooks_1.useThemeHooks)(); const navigate = (0, react_router_dom_1.useNavigate)(); const loadAndNavigate = useLoadAndNavigate(); const { currentLocale, locales, defaultLocale } = useL10nConfig(); const location = (0, react_router_dom_1.useLocation)(); const locale = locales.find((l) => l.code === currentLocale); function getLocaleUrl(value) { let newLangPathname = (0, urls_1.getPathnameForLocale)((0, urls_1.withoutPathPrefix)(location.pathname), defaultLocale, value, locales); if (location.search) { newLangPathname += location.search; } return (0, urls_1.addLeadingSlash)(newLangPathname); } function setLocale(value) { const newUrlWithLanguage = (0, urls_1.withPathPrefix)(getLocaleUrl(value)); loadAndNavigate({ navigate, to: newUrlWithLanguage }); } return { currentLocale: locale, locales, getLocaleUrl, setLocale, }; } //# sourceMappingURL=use-language-picker.js.map