"use client" import { Fragment, useMemo } from "react" import { Icon } from "@iconify/react" import type { FolderTreeNode } from "@/lib/sidebar-nav-maps" import type { LabelRowItem } from "@/lib/sidebar-nav-data" import { breadcrumbItemsForVisitKey } from "@/lib/mail-folder-display" import { resolveMailNavIcon } from "@/lib/mail-nav-icons" import { cn } from "@/lib/utils" type MailFolderStackIndicatorProps = { currentKey: string folderTree: FolderTreeNode[] folderIdToLabel: Record labelRows?: readonly LabelRowItem[] className?: string onNavigate?: (visitKey: string) => void } function MailNavIconGlyph({ visitKey, folderTree, labelRows, }: { visitKey: string folderTree: FolderTreeNode[] labelRows?: readonly LabelRowItem[] }) { const resolved = useMemo( () => resolveMailNavIcon(visitKey, folderTree, labelRows), [visitKey, folderTree, labelRows] ) if (resolved.kind === "folder") { return ( ) } if (resolved.kind === "iconify") { return ( ) } const { Icon: LucideIcon } = resolved return ( ) } export function MailFolderStackIndicator({ currentKey, folderTree, folderIdToLabel, labelRows, className, onNavigate, }: MailFolderStackIndicatorProps) { const items = useMemo( () => breadcrumbItemsForVisitKey(currentKey, folderTree, folderIdToLabel), [currentKey, folderTree, folderIdToLabel] ) const ariaLabel = items.map((i) => i.label).join(" · ") return ( ) }