InitializeApp.tsx 746 B

1234567891011121314151617181920212223242526272829303132333435
  1. import React from "react";
  2. import { LoadingMessage } from "./LoadingMessage";
  3. import {
  4. defaultLang,
  5. Language,
  6. languages,
  7. setLanguageFirstTime,
  8. } from "../i18n";
  9. interface Props {
  10. langCode: Language["code"];
  11. }
  12. interface State {
  13. isLoading: boolean;
  14. }
  15. export class InitializeApp extends React.Component<Props, State> {
  16. public state: { isLoading: boolean } = {
  17. isLoading: true,
  18. };
  19. async componentDidMount() {
  20. const currentLang =
  21. languages.find((lang) => lang.code === this.props.langCode) ||
  22. defaultLang;
  23. await setLanguageFirstTime(currentLang);
  24. this.setState({
  25. isLoading: false,
  26. });
  27. }
  28. public render() {
  29. return this.state.isLoading ? <LoadingMessage /> : this.props.children;
  30. }
  31. }