This commit is contained in:
Daniel Ledda
2020-12-24 12:38:52 +01:00
parent 652092f741
commit 7a58666702
5 changed files with 164 additions and 103 deletions

View File

@@ -11,6 +11,8 @@ import {SERVER_BASE_NAME} from "./index";
interface AppState {
userContext: IUserContext;
localeContext: ILocaleContext;
loading: boolean;
majorFailure: boolean;
}
interface AppProps {}
@@ -40,6 +42,8 @@ class App extends React.Component<AppProps, AppState> {
};
this.state = {
majorFailure: false,
loading: true,
userContext: {
username: "",
loggedIn: false,
@@ -54,20 +58,35 @@ class App extends React.Component<AppProps, AppState> {
}
componentDidMount(): void {
axios.get("/api/user", {baseURL: SERVER_BASE_NAME})
.then((res) => {
const data = res.data as any;
this.updateUserContext(data.username, true);
this.changeLang(data.lang);
})
.catch(err => console.log(err));
this.loadUserData();
}
async loadUserData(): Promise<void> {
try {
const response = (await axios.get("/api/user", {baseURL: SERVER_BASE_NAME})).data;
this.updateUserContext(response.username, true);
this.changeLang(response.lang);
}
catch (e) {
this.handleNoUserData();
}
finally {
this.setState({loading: false});
}
}
handleNoUserData(): void {
this.setState({majorFailure: true});
}
render(): ReactNode {
return (
<LocaleContext.Provider value={this.state.localeContext}>
<UserContext.Provider value={this.state.userContext}>
<Game/>
<Game
loading={this.state.loading}
majorFailure={this.state.majorFailure}
/>
</UserContext.Provider>
</LocaleContext.Provider>
);