File size: 1,138 Bytes
8b1e853
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
44
45
46
47
import React, { useState, useEffect } from 'react';
import { Box, VStack } from '@chakra-ui/react';
import Login from './components/Login';
import Chat from './components/Chat';

const App: React.FC = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);
  const [token, setToken] = useState('');

  useEffect(() => {
    const storedToken = localStorage.getItem('token');
    console.log('STORED', storedToken)
    if (storedToken) {
      setIsLoggedIn(true);
      setToken(storedToken);
    }
  }, []);

  const handleLogin = (newToken: string) => {
    setIsLoggedIn(true);
    setToken(newToken);
    console.log('NEW TOKEN', newToken)
    localStorage.setItem('token', newToken);
  };

  const handleLogout = () => {
    setIsLoggedIn(false);
    setToken('');
    localStorage.removeItem('token');
  };

  return (
    <>
      {!isLoggedIn ? (
        <Box minHeight="100vh" bg="gray.100">
          <VStack spacing={8} py={10}>
            <Login onLogin={handleLogin} />
          </VStack>
        </Box>
      ) : (
        <Chat token={token} onLogout={handleLogout} />
      )}
    </>
  );
};

export default App;