You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mvfront-react/components/layouts/LanguageSelector.tsx

33 lines
946 B

import { useRouter } from 'next/router';
import ReactFlagsSelect from 'react-flags-select';
import { getLocaleShort } from '@services/utils';
const LanguageSelector = (props) => {
const router = useRouter();
const localeShort = getLocaleShort(router);
const selectHandler = (e) => {
let locale = e.toLowerCase();
if (locale === 'gb') locale = 'en';
const { pathname, asPath, query } = router;
// change just the locale and maintain all other route information including href's query
router.push({ pathname, query }, asPath, { locale });
};
return (
<ReactFlagsSelect
onSelect={selectHandler}
countries={
// ["GB", "FR", "ES", "DE", "RU"]
['GB', 'FR']
}
selected={localeShort == 'en' ? 'GB' : localeShort.toUpperCase()}
customLabels={{ GB: 'English', FR: 'Francais' }}
{...props}
className="menu-flags"
/>
);
};
export default LanguageSelector;