Karan6124's picture
style(scrollbar): universally style all scrollbars and prevent body/viewport double scrollbars in workspace view
5babf15
Raw
History Blame Contribute Delete
2.48 kB
import React, { useState } from "react";
import Navbar from "./components/Navbar";
import HeroSection from "./sections/HeroSection";
import CapabilitiesSection from "./sections/CapabilitiesSection";
import WorkspaceSection from "./sections/WorkspaceSection";
import FadingVideo from "./components/FadingVideo";
import { AuthProvider } from "./context/AuthContext";
import AuthModal from "./components/AuthModal";
function MainAppContent() {
const [isAuthModalOpen, setIsAuthModalOpen] = useState(false);
const [view, setView] = useState("landing"); // 'landing' | 'workspace'
return (
<div className={`relative w-full bg-black text-white selection:bg-white selection:text-black ${view === "workspace" ? "h-screen overflow-hidden" : "min-h-screen"}`}>
{/* Shared Background Video Layer */}
<div className="fixed inset-0 w-full h-full overflow-hidden z-0 pointer-events-none">
<FadingVideo
src="https://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260418_080021_d598092b-c4c2-4e53-8e46-94cf9064cd50.mp4"
className="absolute left-1/2 top-0 -translate-x-1/2 object-cover object-top"
style={{ width: "120%", height: "120%" }}
/>
</div>
{/* Shared Navigation Header */}
{view === "landing" && (
<Navbar
onOpenAuth={() => setIsAuthModalOpen(true)}
currentView={view}
onViewChange={(newView, hash) => {
setView(newView);
if (newView === "landing" && hash) {
setTimeout(() => {
const el = document.querySelector(hash);
if (el) el.scrollIntoView({ behavior: "smooth" });
}, 50);
}
}}
/>
)}
{/* View router */}
{view === "landing" ? (
<>
{/* Hero Section (Section 1) */}
<HeroSection
onOpenAuth={() => setIsAuthModalOpen(true)}
onViewWorkspace={() => setView("workspace")}
/>
{/* Capabilities Section (Section 2) */}
<CapabilitiesSection />
</>
) : (
/* Workspace / Chat Section */
<WorkspaceSection onBackToLanding={() => setView("landing")} />
)}
{/* Auth Modal */}
<AuthModal isOpen={isAuthModalOpen} onClose={() => setIsAuthModalOpen(false)} />
</div>
);
}
export default function App() {
return (
<AuthProvider>
<MainAppContent />
</AuthProvider>
);
}