|
import React from 'react';
|
|
import { Routes, Route, Navigate } from 'react-router-dom';
|
|
import { useAuth } from './hooks/useAuth';
|
|
import Login from './components/Auth/Login';
|
|
import Register from './components/Auth/Register';
|
|
import ChatContainer from './components/Chat/ChatContainer';
|
|
import LoadingSpinner from './components/Common/LoadingSpinner';
|
|
|
|
function App() {
|
|
const { user, loading } = useAuth();
|
|
|
|
if (loading) {
|
|
return <LoadingSpinner />;
|
|
}
|
|
|
|
return (
|
|
<div className="app">
|
|
<Routes>
|
|
<Route
|
|
path="/login"
|
|
element={!user ? <Login /> : <Navigate to="/" />}
|
|
/>
|
|
<Route
|
|
path="/register"
|
|
element={!user ? <Register /> : <Navigate to="/" />}
|
|
/>
|
|
<Route
|
|
path="/"
|
|
element={user ? <ChatContainer /> : <Navigate to="/login" />}
|
|
/>
|
|
<Route
|
|
path="/chat/:conversationId"
|
|
element={user ? <ChatContainer /> : <Navigate to="/login" />}
|
|
/>
|
|
</Routes>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default App; |