Home / File/ site-header.tsx — ui Source File

site-header.tsx — ui Source File

Architecture documentation for site-header.tsx, a tsx file in the ui codebase. 11 imports, 0 dependents.

File tsx DocumentationAtlas SearchAPI 11 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497["site-header.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  f5b0b1d9_de2f_9c31_0bcd_4adbd07581cb["navigation"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> f5b0b1d9_de2f_9c31_0bcd_4adbd07581cb
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  67800f29_74f5_e4fd_f69d_c0bb44ef1ca5["theme-selector"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 67800f29_74f5_e4fd_f69d_c0bb44ef1ca5
  23fe93ac_eac7_8273_5f2f_33f470cb0e56["search-form"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 23fe93ac_eac7_8273_5f2f_33f470cb0e56
  ae3635e3_d1ef_d848_ce80_aa7c696f0ec1["breadcrumb"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> ae3635e3_d1ef_d848_ce80_aa7c696f0ec1
  57e86e45_ac6e_7278_be08_9092724e8401["button"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 57e86e45_ac6e_7278_be08_9092724e8401
  b2c60dee_4ede_8485_a6b4_91c999cdc69f["separator"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> b2c60dee_4ede_8485_a6b4_91c999cdc69f
  12632a83_ef01_5f03_4110_ed33d49893b7["sidebar"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 12632a83_ef01_5f03_4110_ed33d49893b7
  d2396a99_c59f_0947_b814_5b0473e8456a["mode-toggle"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> d2396a99_c59f_0947_b814_5b0473e8456a
  5550df98_d33a_8859_19fd_a1c9abbbcab9["nav-user"]
  685d099e_bacd_b5a9_38ac_ebaf1ef4b497 --> 5550df98_d33a_8859_19fd_a1c9abbbcab9
  style 685d099e_bacd_b5a9_38ac_ebaf1ef4b497 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import { Fragment, useMemo } from "react"
import { usePathname } from "next/navigation"
import { SidebarIcon } from "lucide-react"

import { ThemeSelector } from "@/components/theme-selector"
import { SearchForm } from "@/registry/new-york-v4/blocks/sidebar-16/components/search-form"
import {
  Breadcrumb,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbList,
  BreadcrumbPage,
  BreadcrumbSeparator,
} from "@/registry/new-york-v4/ui/breadcrumb"
import { Button } from "@/registry/new-york-v4/ui/button"
import { Separator } from "@/registry/new-york-v4/ui/separator"
import { useSidebar } from "@/registry/new-york-v4/ui/sidebar"
import { ModeToggle } from "@/app/(examples)/dashboard-03/components/mode-toggle"
import { NavUser } from "@/app/(examples)/dashboard-03/components/nav-user"

export function SiteHeader() {
  const { toggleSidebar } = useSidebar()
  const pathname = usePathname()

  // Faux breadcrumbs for demo.
  const breadcrumbs = useMemo(() => {
    return pathname
      .split("/")
      .filter((path) => path !== "")
      .map((path, index, array) => ({
        label: path,
        href: `/${array.slice(0, index + 1).join("/")}`,
      }))
  }, [pathname])

  return (
    <header
      data-slot="site-header"
      className="bg-background sticky top-0 z-50 flex w-full items-center border-b"
    >
      <div className="flex h-(--header-height) w-full items-center gap-2 px-2 pr-4">
        <Button
          variant="ghost"
          size="sm"
          onClick={toggleSidebar}
          className="gap-2.5 has-[>svg]:px-2"
        >
          <SidebarIcon />
          <span className="truncate font-medium">Acme Inc</span>
        </Button>
        <Separator
          orientation="vertical"
          className="mr-2 data-[orientation=vertical]:h-4"
        />
        <Breadcrumb className="hidden sm:block">
          <BreadcrumbList>
            <BreadcrumbItem>
              <BreadcrumbLink href="/" className="capitalize">
                Home
              </BreadcrumbLink>
            </BreadcrumbItem>
            <BreadcrumbSeparator />
            {breadcrumbs.map((breadcrumb, index) =>
              index === breadcrumbs.length - 1 ? (
                <BreadcrumbItem key={index}>
                  <BreadcrumbPage className="capitalize">
                    {breadcrumb.label}
                  </BreadcrumbPage>
                </BreadcrumbItem>
              ) : (
                <Fragment key={index}>
                  <BreadcrumbItem>
                    <BreadcrumbLink
                      href={breadcrumb.href}
                      className="capitalize"
                    >
                      {breadcrumb.label}
                    </BreadcrumbLink>
                  </BreadcrumbItem>
                  <BreadcrumbSeparator />
                </Fragment>
              )
            )}
          </BreadcrumbList>
        </Breadcrumb>
        <div className="ml-auto flex items-center gap-2">
          <SearchForm className="w-fullsm:w-auto" />
          <ThemeSelector />
          <ModeToggle />
          <NavUser
            user={{
              name: "shadcn",
              email: "m@example.com",
              avatar: "/avatars/shadcn.jpg",
            }}
          />
        </div>
      </div>
    </header>
  )
}

Subdomains

Functions

Dependencies

  • breadcrumb
  • button
  • lucide-react
  • mode-toggle
  • nav-user
  • navigation
  • react
  • search-form
  • separator
  • sidebar
  • theme-selector

Frequently Asked Questions

What does site-header.tsx do?
site-header.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, SearchAPI subdomain.
What functions are defined in site-header.tsx?
site-header.tsx defines 1 function(s): SiteHeader.
What does site-header.tsx depend on?
site-header.tsx imports 11 module(s): breadcrumb, button, lucide-react, mode-toggle, nav-user, navigation, react, search-form, and 3 more.
Where is site-header.tsx in the architecture?
site-header.tsx is located at apps/v4/app/(examples)/dashboard-03/components/site-header.tsx (domain: DocumentationAtlas, subdomain: SearchAPI, directory: apps/v4/app/(examples)/dashboard-03/components).

Analyze Your Own Codebase

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

Try Supermodel Free