aki-008
feat: fixed frontend for Interview page
b86abde
import React, { useState } from "react";
import { Link, useLocation } from "react-router-dom";
import {
Home,
FileText,
Brain,
BookOpen,
Settings,
User,
LogOut,
ChevronLeft,
ChevronRight,
} from "lucide-react";
import { useAuth } from "../context/AuthContext";
const Sidebar: React.FC = () => {
const location = useLocation();
const { username, logout } = useAuth();
const [collapsed, setCollapsed] = useState(false);
const navItems = [
{ path: "/dashboard", label: "Dashboard", icon: <Home size={20} /> },
{ path: "/notes", label: "Notes", icon: <BookOpen size={20} /> },
{ path: "/AIInterview", label: "AI Interview", icon: <Brain size={20} /> },
{ path: "/quize", label: "Resume Quiz", icon: <FileText size={20} /> },
];
return (
<aside
// 1. MAIN BACKGROUND: #434E78
className={`flex flex-col justify-between h-screen bg-[#434E78] text-white transition-all duration-300 shadow-xl border-r border-[#607B8F]/50 ${
collapsed ? "w-20" : "w-64"
}`}
>
{/* Top Section */}
<div>
<div className="flex items-center justify-between font-bold py-6 px-6 border-b border-[#607B8F]/50">
{!collapsed && (
<span className="text-xl tracking-wide font-handwriting text-[#F7E396]">
Prep AI
</span>
)}
<button
onClick={() => setCollapsed(!collapsed)}
className="p-1 hover:bg-[#E97F4A] rounded-full transition text-white"
>
{collapsed ? <ChevronRight size={20} /> : <ChevronLeft size={20} />}
</button>
</div>
<nav className="p-4 space-y-3">
{navItems.map((item) => (
<Link
key={item.path}
to={item.path}
// 2. BUTTON LOGIC:
// - Default: bg-[#607B8F]
// - Hover: bg-[#E97F4A]
// - Active: Border #F7E396 (Highlight)
className={`flex items-center space-x-3 p-3 rounded-xl transition-all duration-200 border-2
${
location.pathname === item.path
? "bg-[#607B8F] border-[#F7E396] shadow-lg translate-x-1"
: "bg-[#607B8F] border-transparent hover:bg-[#E97F4A] text-gray-100 hover:text-white"
}`}
>
<span className="text-white">{item.icon}</span>
{!collapsed && (
<span className="font-medium text-white">{item.label}</span>
)}
</Link>
))}
</nav>
</div>
{/* Bottom Section */}
<div className="p-4 border-t border-[#607B8F]/50 space-y-3">
<button className="flex items-center space-x-3 p-3 rounded-xl bg-[#607B8F] border-2 border-transparent hover:bg-[#E97F4A] transition w-full text-left text-white">
<Settings size={20} />
{!collapsed && <span>Settings</span>}
</button>
<button className="flex items-center space-x-3 p-3 rounded-xl bg-[#607B8F] border-2 border-transparent hover:bg-[#E97F4A] transition w-full text-left text-white">
<User size={20} />
{!collapsed && <span>{username}</span>}
</button>
{/* Logout */}
<button
onClick={logout}
className="flex items-center space-x-3 p-3 rounded-xl bg-red-500/80 border-2 border-transparent hover:bg-red-600 transition w-full text-left text-white"
>
<LogOut size={20} />
{!collapsed && <span>Logout</span>}
</button>
</div>
</aside>
);
};
export default Sidebar;