@redocly/theme
Version:
Shared UI components lib
32 lines • 1.38 kB
JavaScript
;
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