get locale from user if exists
This commit is contained in:
parent
e52e3943c1
commit
c6a1e854d2
@ -1,8 +1,8 @@
|
|||||||
import { MYBADGES_CONNECT, MYBADGES_DISCONNECT, USER_LOADED, USER_LOADING, AUTH_ERROR, LOGIN_SUCCESS, LOGIN_FAIL, LOGOUT_SUCCESS, LOGOUT_FAIL, REFRESH_TOKEN_SUCCESS } from '../actions/types';
|
import { MYBADGES_CONNECT, MYBADGES_DISCONNECT, USER_LOADED, USER_LOADING, AUTH_ERROR, LOGIN_SUCCESS, LOGIN_FAIL, LOGOUT_SUCCESS, LOGOUT_FAIL, REFRESH_TOKEN_SUCCESS } from '../actions/types';
|
||||||
|
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { returnErrors, returnSuccess } from './messageActions'
|
import { returnErrors, returnSuccess } from './messageActions';
|
||||||
|
import { setLanguage } from './generalActions';
|
||||||
|
|
||||||
// Check token & load user
|
// Check token & load user
|
||||||
export const loadUser = () => (dispatch) => {
|
export const loadUser = () => (dispatch) => {
|
||||||
@ -16,6 +16,7 @@ export const loadUser = () => (dispatch) => {
|
|||||||
type: USER_LOADED,
|
type: USER_LOADED,
|
||||||
payload: res.data.user
|
payload: res.data.user
|
||||||
});
|
});
|
||||||
|
dispatch(setLanguage(res.data.user.language));
|
||||||
},
|
},
|
||||||
error: err => {
|
error: err => {
|
||||||
if(err.response){
|
if(err.response){
|
||||||
@ -61,6 +62,7 @@ export const login = ({ email, password }) => (dispatch) => {
|
|||||||
type: LOGIN_SUCCESS,
|
type: LOGIN_SUCCESS,
|
||||||
payload: res.data
|
payload: res.data
|
||||||
});
|
});
|
||||||
|
dispatch(setLanguage(res.data.user.language));
|
||||||
dispatch(returnSuccess(res.data.message, res.status, 'LOGIN_SUCCESS'));
|
dispatch(returnSuccess(res.data.message, res.status, 'LOGIN_SUCCESS'));
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
@ -130,6 +132,11 @@ export const logout = () => (dispatch) => {
|
|||||||
dispatch({
|
dispatch({
|
||||||
type: LOGOUT_SUCCESS
|
type: LOGOUT_SUCCESS
|
||||||
});
|
});
|
||||||
|
var locale = 'de_DE';
|
||||||
|
if (window.localStorage.getItem('locale')) {
|
||||||
|
locale = window.localStorage.getItem('locale');
|
||||||
|
}
|
||||||
|
dispatch(setLanguage(locale));
|
||||||
dispatch(returnSuccess(res.data.message, res.status, 'LOGOUT_SUCCESS'));
|
dispatch(returnSuccess(res.data.message, res.status, 'LOGOUT_SUCCESS'));
|
||||||
clearTimeout(logoutTimerId);
|
clearTimeout(logoutTimerId);
|
||||||
},
|
},
|
||||||
|
@ -7,7 +7,10 @@ export const visitPage = () => (dispatch) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const setLanguage = (language) => (dispatch) => {
|
export const setLanguage = (language) => (dispatch, getState) => {
|
||||||
|
if(!getState().auth.isAuthenticated){
|
||||||
|
window.localStorage.setItem('locale', language);
|
||||||
|
}
|
||||||
dispatch({
|
dispatch({
|
||||||
type: LANGUAGE,
|
type: LANGUAGE,
|
||||||
payload: language
|
payload: language
|
||||||
|
@ -18,16 +18,9 @@ class BlocklyWindow extends Component {
|
|||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.simpleWorkspace = React.createRef();
|
this.simpleWorkspace = React.createRef();
|
||||||
// if (locale === null) {
|
if (this.props.language === 'de_DE') {
|
||||||
// if (navigator.language === 'de-DE') {
|
|
||||||
// locale = 'de';
|
|
||||||
// } else {
|
|
||||||
// locale = 'en';
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
if (this.props.language === 'de') {
|
|
||||||
Blockly.setLocale(De);
|
Blockly.setLocale(De);
|
||||||
} else if (this.props.language === 'en') {
|
} else if (this.props.language === 'en_US') {
|
||||||
Blockly.setLocale(En);
|
Blockly.setLocale(En);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,18 +14,18 @@ import Cookies from './Cookies';
|
|||||||
class Content extends Component {
|
class Content extends Component {
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
if (this.props.language === 'de') {
|
if (this.props.language === 'de_DE') {
|
||||||
Blockly.setLocale(De);
|
Blockly.setLocale(De);
|
||||||
} else if (this.props.language === 'en') {
|
} else if (this.props.language === 'en_US') {
|
||||||
Blockly.setLocale(En);
|
Blockly.setLocale(En);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate(props){
|
componentDidUpdate(props){
|
||||||
if(props.language !== this.props.language){
|
if(props.language !== this.props.language){
|
||||||
if (this.props.language === 'de') {
|
if (this.props.language === 'de_DE') {
|
||||||
Blockly.setLocale(De);
|
Blockly.setLocale(De);
|
||||||
} else if (this.props.language === 'en') {
|
} else if (this.props.language === 'en_US') {
|
||||||
Blockly.setLocale(En);
|
Blockly.setLocale(En);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,8 +37,8 @@ class LanguageSelector extends Component {
|
|||||||
value={this.props.language}
|
value={this.props.language}
|
||||||
onChange={this.handleChange}
|
onChange={this.handleChange}
|
||||||
>
|
>
|
||||||
<MenuItem value={'de'}>{Blockly.Msg.settings_language_de}</MenuItem>
|
<MenuItem value={'de_DE'}>{Blockly.Msg.settings_language_de}</MenuItem>
|
||||||
<MenuItem value={'en'}>{Blockly.Msg.settings_language_en}</MenuItem>
|
<MenuItem value={'en_US'}>{Blockly.Msg.settings_language_en}</MenuItem>
|
||||||
</Select>
|
</Select>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,11 +1,35 @@
|
|||||||
import { VISIT, LANGUAGE, RENDERER, STATISTICS } from '../actions/types';
|
import { VISIT, LANGUAGE, RENDERER, STATISTICS } from '../actions/types';
|
||||||
|
|
||||||
|
const initialLanguage = () => {
|
||||||
|
if (window.localStorage.getItem('locale')) {
|
||||||
|
return window.localStorage.getItem('locale');
|
||||||
|
}
|
||||||
|
if (navigator.language === 'de-DE'){
|
||||||
|
return 'de_DE';
|
||||||
|
}
|
||||||
|
return 'en_US';
|
||||||
|
};
|
||||||
|
|
||||||
|
const initialRenderer = () => {
|
||||||
|
if (window.localStorage.getItem('renderer')) {
|
||||||
|
return window.localStorage.getItem('renderer');
|
||||||
|
}
|
||||||
|
return 'geras';
|
||||||
|
};
|
||||||
|
|
||||||
|
const initialStatistics = () => {
|
||||||
|
if (window.localStorage.getItem('statistics')) {
|
||||||
|
return JSON.parse(window.localStorage.getItem('statistics'));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
pageVisits: 0, // detect if previous URL was
|
pageVisits: 0, // detect if previous URL was
|
||||||
language: 'de',
|
language: initialLanguage(),
|
||||||
renderer: window.localStorage.getItem('renderer') || 'geras',
|
renderer: initialRenderer(),
|
||||||
statistics: window.localStorage.getItem('statistics') === 'true' ? true : window.localStorage.getItem('statistics') === 'false' ? false : false
|
statistics: initialStatistics()
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function(state = initialState, action){
|
export default function(state = initialState, action){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user