rsnext/examples/with-lingui/components/LangSwitcher.js
Corbin Crutchley e03266008c form handler example: Update deps and fix build from dep update (#6732)
* form handler example: Update deps and fix build from dep update

* Ran lint error fixers

* Fixes errors that occur when commit occurs

* Commit linter fixes
2019-03-27 16:12:45 -04:00

44 lines
1.1 KiB
JavaScript

import Router from 'next/router'
import { I18n } from '@lingui/react'
import { t, Trans } from '@lingui/macro'
const availableLanguageNames = {
en: t`English`,
sv: t`Swedish`
}
const availableLanguages = Object.keys(availableLanguageNames)
export default () => {
function onSubmit (evt) {
evt.preventDefault()
Router.push({
pathname: window.location.pathname,
query: { lang: evt.currentTarget.lang.value }
})
}
return (
<I18n>
{({ i18n }) => (
<form onSubmit={onSubmit}>
<select
key={i18n.language}
name='lang'
defaultValue={availableLanguages.find(
lang => lang !== i18n.language
)}
>
{availableLanguages.map(lang => (
<option key={lang} value={lang} disabled={i18n.language === lang}>
{i18n._(availableLanguageNames[lang])}
</option>
))}
</select>
<button>
<Trans>Switch language</Trans>
</button>
</form>
)}
</I18n>
)
}