summaryrefslogtreecommitdiffstats
path: root/client/src/admin/jsx/App.jsx
blob: 3a4da841b08693badda657d5437d64775518f709 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import React, { useState, useEffect } from 'react';
import ReactDOM from 'react-dom';

import "../scss/index.scss";

import TopBar from './TopBar.jsx';
import Info from './Info.jsx';
import MainScreen from './MainScreen.jsx';
import Context from '../context';
import { defaultLanguage } from '../data/translations';
import { getUser } from '../api';

const App = () => {
  const [lang, setLang] = useState(defaultLanguage);
  const [projects, setProjects] = useState([]);
  const [info, setInfo] = useState('');
  const [hover, setHover] = useState('');
  const [view, setView] = useState('main');
  const [user, setUser] = useState(null);

  useEffect(() => {
    getUser(setUser);
    setInfo('no-saved-websites');
  }, []);

  useEffect(() => {
    user && setLang(user.language);
  }, [user]);

  return (
    <Context.Provider value={{ lang, setHover, setInfo }}>
      <div className="main">
        <TopBar lang={lang} setLang={setLang} user={user} setUser={setUser} />
        <div className="main__content">
          { view === 'main' && <MainScreen projects={projects} /> }
        </div>
        <Info info={info} hover={hover} />
      </div>
    </Context.Provider>
  )
};

ReactDOM.render(<App />, document.getElementById('app'));