import { Link, Navigate, Outlet, useLocation } from "react-router-dom"; import { useAuthState } from "react-firebase-hooks/auth"; import { auth } from "../firebase"; import { krowSDK } from "@/api/krowSDK"; import { Button } from "@/components/ui/button"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { ChevronDown } from "lucide-react"; import { useState } from "react"; const navLinks = { auth: [ { path: "/auth/me", title: "Get Me" }, { path: "/auth/update-me", title: "Update Me" }, ], core: [ { path: "/core/send-email", title: "Send Email" }, { path: "/core/invoke-llm", title: "Invoke LLM" }, { path: "/core/upload-file", title: "Upload File" }, { path: "/core/upload-private-file", title: "Upload Private File" }, { path: "/core/create-signed-url", title: "Create Signed URL" }, { path: "/core/extract-data", title: "Extract Data from File" }, { path: "/core/generate-image", title: "Generate Image" }, ], entities: [ { path: "/entities", title: "Entity API Tester" } ] }; const NavSection = ({ title, links }) => { const location = useLocation(); const [isOpen, setIsOpen] = useState(true); const navLinkClasses = (path) => `flex items-center px-3 py-2 text-sm font-medium rounded-md transition-colors ${ location.pathname === path ? "bg-slate-200 text-slate-900" : "text-slate-600 hover:bg-slate-100" }`; return (

{title}

{links.map((api) => ( {api.title} ))}
); } const Layout = () => { const [user, loading] = useAuthState(auth); const location = useLocation(); if (loading) { return (
Loading...
); } if (!user) { return ; } const handleLogout = () => { krowSDK.auth.logout(); }; return (
{/* Sidebar */} {/* Main Content */}
); }; export default Layout;