import clsx from "clsx"; import { X } from "lucide-react"; import type * as React from "react"; import { Button } from "react-aria-components"; import { Link } from "react-router"; import { SendouButton } from "~/components/elements/Button"; import type { Tables } from "~/db/tables"; import { Avatar } from "./Avatar"; import styles from "./SideNav.module.css"; export function SideNav({ children, className, footer, top, topCentered, collapsed, }: { children: React.ReactNode; className?: string; footer?: React.ReactNode; top?: React.ReactNode; topCentered?: boolean; collapsed?: boolean; }) { return ( ); } export function SideNavHeader({ children, icon, showClose, action, }: { children: React.ReactNode; icon?: React.ReactNode; showClose?: boolean; action?: React.ReactNode; }) { return (
{icon ?
{icon}
: null}

{children}

{action ? ( {action} ) : null} {showClose ? ( } variant="minimal" slot="close" className={styles.sideNavHeaderClose} /> ) : null}
); } function ListItemContent({ children, user, imageUrl, overlayIconUrl, subtitle, badge, badgeVariant, suppressSubtitleHydrationWarning, }: { children: React.ReactNode; user?: Pick; imageUrl?: string; overlayIconUrl?: string; subtitle?: React.ReactNode; badge?: React.ReactNode; badgeVariant?: "default" | "warning"; suppressSubtitleHydrationWarning?: boolean; }) { return ( <> {user ? ( ) : imageUrl ? (
{overlayIconUrl ? ( ) : null}
) : null}
{children} {subtitle || badge ? (
{subtitle ? ( {subtitle} ) : null} {typeof badge === "string" ? ( {badge} ) : ( badge )}
) : null}
); } export function ListLink({ children, to, onClick, isActive, imageUrl, overlayIconUrl, user, subtitle, badge, badgeVariant, }: { children: React.ReactNode; to: string; onClick?: (event: React.MouseEvent) => void; isActive?: boolean; imageUrl?: string; overlayIconUrl?: string; user?: Pick; subtitle?: React.ReactNode; badge?: React.ReactNode; badgeVariant?: "default" | "warning"; }) { return ( {children} ); } export function ListButton({ children, user, subtitle, badge, badgeVariant, }: { children: React.ReactNode; user?: Pick; subtitle?: string | null; badge?: string | null; badgeVariant?: "default" | "warning"; }) { return ( ); } export function SideNavFooter({ children }: { children: React.ReactNode }) { return
{children}
; }