Home / File/ sidebar-rsc.tsx — ui Source File

sidebar-rsc.tsx — ui Source File

Architecture documentation for sidebar-rsc.tsx, a tsx file in the ui codebase. 3 imports, 0 dependents.

File tsx DocumentationAtlas ContentSourcing 3 imports 4 functions

Entity Profile

Dependency Diagram

graph LR
  eb1fea34_4c85_6bf0_19d5_cee93da21a6d["sidebar-rsc.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  eb1fea34_4c85_6bf0_19d5_cee93da21a6d --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  ae980154_1718_a5bc_ef81_3a801fffff75["sidebar"]
  eb1fea34_4c85_6bf0_19d5_cee93da21a6d --> ae980154_1718_a5bc_ef81_3a801fffff75
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  eb1fea34_4c85_6bf0_19d5_cee93da21a6d --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  style eb1fea34_4c85_6bf0_19d5_cee93da21a6d fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import * as React from "react"
import {
  Sidebar,
  SidebarContent,
  SidebarGroup,
  SidebarGroupContent,
  SidebarGroupLabel,
  SidebarMenu,
  SidebarMenuButton,
  SidebarMenuItem,
  SidebarMenuSkeleton,
  SidebarProvider,
} from "@/examples/base/ui/sidebar"
import {
  FrameIcon,
  LifeBuoyIcon,
  MapIcon,
  PieChartIcon,
  SendIcon,
} from "lucide-react"

const projects = [
  {
    name: "Design Engineering",
    url: "#",
    icon: FrameIcon,
    badge: "24",
  },
  {
    name: "Sales & Marketing",
    url: "#",
    icon: PieChartIcon,
    badge: "12",
  },
  {
    name: "Travel",
    url: "#",
    icon: MapIcon,
    badge: "3",
  },
  {
    name: "Support",
    url: "#",
    icon: LifeBuoyIcon,
    badge: "21",
  },
  {
    name: "Feedback",
    url: "#",
    icon: SendIcon,
    badge: "8",
  },
]

// Dummy fetch function.
async function fetchProjects() {
  await new Promise((resolve) => setTimeout(resolve, 3000))
  return projects
}

export default function AppSidebar() {
  return (
    <SidebarProvider>
      <Sidebar>
        <SidebarContent>
          <SidebarGroup>
            <SidebarGroupLabel>Projects</SidebarGroupLabel>
            <SidebarGroupContent>
              <React.Suspense fallback={<NavProjectsSkeleton />}>
                <NavProjects />
              </React.Suspense>
            </SidebarGroupContent>
          </SidebarGroup>
        </SidebarContent>
      </Sidebar>
    </SidebarProvider>
  )
}

function NavProjectsSkeleton() {
  return (
    <SidebarMenu>
      {Array.from({ length: 5 }).map((_, index) => (
        <SidebarMenuItem key={index}>
          <SidebarMenuSkeleton showIcon />
        </SidebarMenuItem>
      ))}
    </SidebarMenu>
  )
}

async function NavProjects() {
  const projects = await fetchProjects()

  return (
    <SidebarMenu>
      {projects.map((project) => (
        <SidebarMenuItem key={project.name}>
          <SidebarMenuButton render={<a href={project.url} />}>
            <project.icon />
            <span>{project.name}</span>
          </SidebarMenuButton>
        </SidebarMenuItem>
      ))}
    </SidebarMenu>
  )
}

Subdomains

Dependencies

  • lucide-react
  • react
  • sidebar

Frequently Asked Questions

What does sidebar-rsc.tsx do?
sidebar-rsc.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, ContentSourcing subdomain.
What functions are defined in sidebar-rsc.tsx?
sidebar-rsc.tsx defines 4 function(s): AppSidebar, NavProjects, NavProjectsSkeleton, fetchProjects.
What does sidebar-rsc.tsx depend on?
sidebar-rsc.tsx imports 3 module(s): lucide-react, react, sidebar.
Where is sidebar-rsc.tsx in the architecture?
sidebar-rsc.tsx is located at apps/v4/examples/base/sidebar-rsc.tsx (domain: DocumentationAtlas, subdomain: ContentSourcing, directory: apps/v4/examples/base).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free