App.jsx 876 B

1234567891011121314151617181920212223242526272829
  1. import { LoginForm } from './components/loginForm/LoginForm';
  2. import { ChatPage } from './components/chatPage/ChatPage';
  3. import { useSelector } from 'react-redux';
  4. import {io} from 'socket.io-client';
  5. import { useDispatch } from 'react-redux';
  6. import { getSocket } from './reducers/socketReducer';
  7. import { useEffect } from 'react';
  8. export default function App() {
  9. const token = useSelector(state => localStorage.getItem('token') || state.userDataReducer.token);
  10. const SOCKET_URL = process.env.REACT_APP_SERVER_URL;
  11. const dispatch = useDispatch();
  12. useEffect(() => {
  13. if(token){
  14. const socket = io.connect(
  15. SOCKET_URL,
  16. {auth: {token}})
  17. if(socket){
  18. dispatch(getSocket(socket))
  19. }
  20. }
  21. },[token])
  22. return token ? <ChatPage /> : <LoginForm/>
  23. };