import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "@/components/ui/sidebar"; import { KhojAgentLogo, KhojAutomationLogo, KhojLogo, KhojLogoType, KhojSearchLogo, } from "../logo/khojLogo"; import { Gear } from "@phosphor-icons/react/dist/ssr"; import { Plus } from "@phosphor-icons/react"; import { useEffect, useState } from "react"; import AllConversations from "../allConversations/allConversations"; import FooterMenu from "../navMenu/navMenu"; import { useSidebar } from "@/components/ui/sidebar"; import { useIsMobileWidth } from "@/app/common/utils"; import { UserPlusIcon } from "lucide-react"; import { useAuthenticatedData } from "@/app/common/auth"; import LoginPrompt from "../loginPrompt/loginPrompt"; import { url } from "inspector"; // Menu items. const items = [ { title: "New", url: "/", icon: Plus, }, { title: "Agents", url: "/agents", icon: KhojAgentLogo, }, { title: "Automations", url: "/automations", icon: KhojAutomationLogo, }, { title: "Search", url: "/search", icon: KhojSearchLogo, }, { title: "Settings", url: "/settings", icon: Gear, }, ]; const SIDEBAR_KEYBOARD_SHORTCUT = "b"; const SIDEBAR_WIDTH = "18rem"; const SIDEBAR_WIDTH_MOBILE = "20rem"; interface AppSidebarProps { conversationId: string | null; } export function AppSidebar(props: AppSidebarProps) { const isMobileWidth = useIsMobileWidth(); const { data, isLoading, error } = useAuthenticatedData(); const { state, open, setOpen, openMobile, setOpenMobile, isMobile, toggleSidebar } = useSidebar(); const [showLoginPrompt, setShowLoginPrompt] = useState(false); useEffect(() => { if (!isLoading && !data) { setShowLoginPrompt(true); } }, [isLoading, data]); return ( {open ? ( ) : ( )} {showLoginPrompt && ( setShowLoginPrompt(isOpen)} isMobileWidth={isMobileWidth} /> )} {!isLoading && !data && ( setShowLoginPrompt(true)} >
Sign up to get started
)} {items.map((item) => ( {item.title} ))}
); }