# All files / src/components/ui/sidebar-menu SidebarMenuSkeleton.tsx

0% Statements 0/41
0% Branches 0/1
0% Functions 0/1
0% Lines 0/41

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42

     "use client"

    import { CSSProperties, ComponentProps } from "react"
    import { cn } from "@/lib/utils"
    import { Skeleton } from "@/components/ui/skeleton"

    export function SidebarMenuSkeleton({
      className,
      showIcon = false,
      ...props
    }: ComponentProps<"div"> & {
      showIcon?: boolean
    }) {
      // Use a stable width so skeletons don't change across renders.
      const width = "70%"

      return (
        <div
          data-slot="sidebar-menu-skeleton"
          data-sidebar="menu-skeleton"
          className={cn("flex h-8 items-center gap-2 rounded-md px-2", className)}
          {...props}
        >
          {showIcon && (
            <Skeleton
              className="size-4 rounded-md"
              data-sidebar="menu-skeleton-icon"
            />
          )}
          <Skeleton
            className="h-4 max-w-(--skeleton-width) flex-1"
            data-sidebar="menu-skeleton-text"
            style={
              {
                "--skeleton-width": width,
              } as CSSProperties
            }
          />
        </div>
      )
    }