"use client"; import * as React from "react"; import { NavMain, type NavMainItem } from "@/src/components/nav/nav-main"; import { NavUser, type UserNavigationProps, } from "@/src/components/nav/nav-user"; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarRail, } from "@/src/components/ui/sidebar"; import { env } from "@/src/env.mjs"; import { useRouter } from "next/router"; import Link from "next/link"; import { LangfuseLogo } from "@/src/components/LangfuseLogo"; import { SidebarNotifications } from "@/src/components/nav/sidebar-notifications"; import { type RouteGroup } from "@/src/components/layouts/routes"; import { ExternalLink, Grid2X2 } from "lucide-react"; import { useLangfuseCloudRegion } from "@/src/features/organizations/hooks"; type AppSidebarProps = { navItems: { grouped: Partial> | null; ungrouped: NavMainItem[]; }; secondaryNavItems: { grouped: Partial> | null; ungrouped: NavMainItem[]; }; userNavProps: UserNavigationProps; } & React.ComponentProps; export function AppSidebar({ navItems, secondaryNavItems, userNavProps, ...props }: AppSidebarProps) { return (
); } const DemoBadge = () => { const router = useRouter(); const { isLangfuseCloud } = useLangfuseCloudRegion(); const routerProjectId = router.query.projectId as string | undefined; if ( !( env.NEXT_PUBLIC_DEMO_ORG_ID && env.NEXT_PUBLIC_DEMO_PROJECT_ID && routerProjectId === env.NEXT_PUBLIC_DEMO_PROJECT_ID && isLangfuseCloud ) ) return null; return ( Demo Project (view only) Use Demo App Your Langfuse Orgs ); };