import React, { useState } from "react";
import Navbar from "./components/Navbar";
import HomePage from "./pages/HomePage"; // Import the new HomePage
import VoiceChatPage from "./pages/VoiceChatPage";
import CodingAssistantPage from "./pages/CodingAssistantPage";
import LoginPage from "./pages/LoginPage";
const Icon = ({ path, onClick, className }) => (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
className={`w-6 h-6 cursor-pointer transition-colors duration-200 ${className}`}
onClick={onClick}
>
<path d={path} />
</svg>
);
export default function App() {
const [currentPage, setCurrentPage] = useState("home");
const [isSidebarOpen, setIsSidebarOpen] = useState(false);
const toggleSidebar = () => {
setIsSidebarOpen(!isSidebarOpen);
};
const renderPage = () => {
switch (currentPage) {
case "home":
return <HomePage onNavigate={setCurrentPage} />;
case "voice-chat":
return <VoiceChatPage Icon={Icon} />;
case "coding-assistant" :
return <CodingAssistantPage onNavigate={setCurrentPage} Icon={Icon} />
case "login":
return <LoginPage />;
default:
// You can add a 404 or a default page here
return <HomePage onNavigate={setCurrentPage} />;
}
};
return (
<div className="flex min-h-screen bg-gray-100 dark:bg-gray-900 font-sans">
{currentPage !== "login" && (
<Navbar
isOpen={isSidebarOpen}
onToggle={toggleSidebar}
onNavigate={setCurrentPage}
Icon={Icon}
/>
)}
<div className="flex-grow">
{renderPage()}
</div>
</div>
);
}