Skip to content

Commit 3352a51

Browse files
Reverted to edit e75f2567-c2d3-43a1-9c32-020e99f1a8ad: "security updated"
1 parent b6536de commit 3352a51

File tree

7 files changed

+341
-264
lines changed

7 files changed

+341
-264
lines changed

package-lock.json

Lines changed: 9 additions & 117 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"input-otp": "^1.2.4",
5353
"leaflet": "^1.9.4",
5454
"lucide-react": "^0.462.0",
55-
"next-themes": "^0.4.6",
55+
"next-themes": "^0.3.0",
5656
"react": "^18.3.1",
5757
"react-day-picker": "^8.10.1",
5858
"react-dom": "^18.3.1",

src/components/Navbar.tsx

Lines changed: 60 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,70 @@
1+
import React from 'react';
2+
import { Link, useNavigate } from 'react-router-dom';
3+
import { useAuth } from '../utils/auth';
4+
import { logout } from '../utils/firebase';
5+
import { Button } from '@/components/ui/button';
6+
import {
7+
DropdownMenu,
8+
DropdownMenuContent,
9+
DropdownMenuItem,
10+
DropdownMenuLabel,
11+
DropdownMenuSeparator,
12+
DropdownMenuTrigger,
13+
} from "@/components/ui/dropdown-menu"
14+
import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar"
115

2-
import { Link } from "react-router-dom";
3-
import { Button } from "@/components/ui/button";
4-
import { ThemeToggle } from "@/components/ui/theme-toggle";
5-
import { useAuth } from "../utils/auth";
6-
import { signOut } from "firebase/auth";
7-
import { auth } from "../utils/firebase";
16+
const Navbar: React.FC = () => {
17+
const { currentUser } = useAuth();
18+
const navigate = useNavigate();
819

9-
const Navbar = () => {
10-
const { currentUser: user } = useAuth();
11-
12-
const handleSignOut = async () => {
13-
try {
14-
await signOut(auth);
15-
console.log('User signed out successfully.');
16-
} catch (error) {
17-
console.error('Sign out error:', error);
18-
}
20+
const handleLogout = async () => {
21+
await logout();
22+
navigate('/login');
1923
};
2024

2125
return (
22-
<nav className="w-full py-4 px-6 flex items-center justify-between bg-background border-b">
23-
<div className="flex items-center gap-6">
24-
<Link to="/" className="text-xl font-bold">
25-
Sober App
26+
<div className="bg-background border-b">
27+
<div className="container flex h-16 items-center justify-between py-4">
28+
<Link to="/" className="font-bold text-2xl">
29+
PurePath
2630
</Link>
27-
<Link to="/community">Community</Link>
28-
<Link to="/progress">Progress</Link>
29-
</div>
30-
<div className="flex items-center gap-2">
31-
<ThemeToggle />
32-
{user ? (
33-
<Button variant="outline" onClick={handleSignOut}>Sign Out</Button>
34-
) : (
35-
<>
36-
<Link to="/login">
37-
<Button variant="outline">Log In</Button>
38-
</Link>
39-
<Link to="/register">
40-
<Button>Register</Button>
41-
</Link>
42-
</>
43-
)}
31+
<nav>
32+
{currentUser ? (
33+
<DropdownMenu>
34+
<DropdownMenuTrigger asChild>
35+
<Button variant="ghost" className="relative h-8 w-8 rounded-full">
36+
<Avatar>
37+
<AvatarImage src="/placeholder.svg" alt="User" />
38+
<AvatarFallback>{currentUser.email?.charAt(0).toUpperCase()}</AvatarFallback>
39+
</Avatar>
40+
</Button>
41+
</DropdownMenuTrigger>
42+
<DropdownMenuContent align="end">
43+
<DropdownMenuLabel>My Account</DropdownMenuLabel>
44+
<DropdownMenuSeparator />
45+
<DropdownMenuItem asChild>
46+
<Link to="/dashboard">Dashboard</Link>
47+
</DropdownMenuItem>
48+
<DropdownMenuItem asChild>
49+
<Link to="/profile">Profile</Link>
50+
</DropdownMenuItem>
51+
<DropdownMenuSeparator />
52+
<DropdownMenuItem onClick={handleLogout}>
53+
Logout
54+
</DropdownMenuItem>
55+
</DropdownMenuContent>
56+
</DropdownMenu>
57+
) : (
58+
<div>
59+
<Link to="/login" className="mr-4">
60+
Login
61+
</Link>
62+
<Link to="/register">Register</Link>
63+
</div>
64+
)}
65+
</nav>
4466
</div>
45-
</nav>
67+
</div>
4668
);
4769
};
4870

src/components/ThemeProvider.tsx

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/components/ui/theme-toggle.tsx

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/main.tsx

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11

2-
import React from 'react'
3-
import ReactDOM from 'react-dom/client'
2+
import { createRoot } from 'react-dom/client'
43
import App from './App.tsx'
54
import './index.css'
6-
import { ThemeProvider } from './components/ThemeProvider.tsx'
7-
import { Toaster } from './components/ui/sonner.tsx'
85

9-
ReactDOM.createRoot(document.getElementById('root')!).render(
10-
<React.StrictMode>
11-
<ThemeProvider defaultTheme="system" enableSystem>
12-
<App />
13-
<Toaster />
14-
</ThemeProvider>
15-
</React.StrictMode>,
16-
)
6+
// Add more detailed logging
7+
console.log("Main component starting initialization");
8+
9+
// Check if root element exists
10+
const rootElement = document.getElementById("root");
11+
if (!rootElement) {
12+
console.error("Root element not found in the DOM");
13+
} else {
14+
console.log("Root element found, attempting to render app");
15+
16+
try {
17+
createRoot(rootElement).render(<App />);
18+
console.log("App rendered successfully");
19+
} catch (error) {
20+
console.error("Error rendering the app:", error);
21+
}
22+
}

0 commit comments

Comments
 (0)