-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.jsx
More file actions
52 lines (41 loc) · 1.54 KB
/
App.jsx
File metadata and controls
52 lines (41 loc) · 1.54 KB
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
48
49
50
51
52
import Navbar from "./components/Navbar";
import HomePage from "./pages/HomePage";
import SignUpPage from "./pages/SignUpPage";
import LogInPage from "./pages/LogInPage";
import SettingsPage from "./pages/SettingsPage";
import ProfilePage from "./pages/ProfilePage";
import { Routes, Route, Navigate } from "react-router-dom";
import { useAuthStore } from "./store/useAuthStore";
import { useThemeStore } from "./store/useThemeStore";
import { useEffect } from "react";
import { Loader } from "lucide-react";
import { Toaster } from "react-hot-toast";
const App = () => {
const { authUser, checkAuth, isCheckingAuth, onlineUsers } = useAuthStore();
const { theme } = useThemeStore();
console.log({ onlineUsers });
useEffect(() => {
checkAuth();
}, [checkAuth]);
console.log({ authUser });
if (isCheckingAuth && !authUser)
return (
<div className="flex items-center justify-center h-screen">
<Loader className="size-10 animate-spin" />
</div>
);
return (
<div data-theme={theme}>
<Navbar />
<Routes>
<Route path="/" element={authUser ? <HomePage /> : <Navigate to="/login" />} />
<Route path="/signup" element={!authUser ? <SignUpPage /> : <Navigate to="/" />} />
<Route path="/login" element={!authUser ? <LogInPage /> : <Navigate to="/" />} />
<Route path="/settings" element={<SettingsPage />} />
<Route path="/profile" element={authUser ? <ProfilePage /> : <Navigate to="/login" />} />
</Routes>
<Toaster />
</div>
);
};
export default App;