]> git.localhorst.tv Git - alttp.git/blob - resources/js/app/LanguageSwitcher.js
improved user context
[alttp.git] / resources / js / app / LanguageSwitcher.js
1 import axios from 'axios';
2 import React from 'react';
3 import { Button } from 'react-bootstrap';
4 import { withTranslation } from 'react-i18next';
5
6 import Icon from '../components/common/Icon';
7 import { useUser } from '../hooks/user';
8 import i18n from '../i18n';
9
10 const setLanguage = (user, language) => {
11         i18n.changeLanguage(language);
12         if (user) {
13                 axios.post('/api/users/set-language', { language });
14         }
15 };
16
17 const LanguageSwitcher = () => {
18         const { user } = useUser();
19
20         return <Button
21                 className="text-reset"
22                 href={`?lng=${i18n.language === 'de' ? 'en' : 'de'}`}
23                 onClick={e => {
24                         setLanguage(user, i18n.language === 'de' ? 'en' : 'de');
25                         e.preventDefault();
26                 }}
27                 title={i18n.language === 'de' ? 'Switch to english' : 'Auf deutsch wechseln'}
28                 variant="outline-secondary"
29         >
30                 <Icon.LANGUAGE />
31                 {' '}
32                 {i18n.language === 'de' ? 'Deutsch' : 'English'}
33         </Button>;
34 };
35
36 export default withTranslation()(LanguageSwitcher);