"use client" import { Fragment, useState } from "react" import Link from "next/link" import { ChevronRight } from "lucide-react" import { BreadcrumbFolderMenu } from "@/components/drive/breadcrumb-folder-menu" import type { DriveView } from "@/lib/drive/drive-url" import { buildDriveFolderHref, folderPathFromSegments } from "@/lib/drive/drive-url" import { displayFileName } from "@/lib/drive/display-file-name" import { cn } from "@/lib/utils" /** xs/sm: single line, intermediate crumbs clamp + ellipsis. */ const MOBILE_INTERMEDIATE_CRUMB_CLASS = "max-md:line-clamp-1 max-md:min-w-0 max-md:shrink max-md:overflow-hidden max-md:break-all max-md:[overflow-wrap:anywhere]" /** Shared line box so mixed font sizes stay vertically centered in the chrome row. */ const CRUMB_LINE_CLASS = "leading-6 md:leading-7" export function BreadcrumbNav({ view, segments, writable = true, }: { view: Extract segments: string[] /** When false, double-click rename is disabled (e.g. read-only share). */ writable?: boolean }) { const [renameOpen, setRenameOpen] = useState(false) const rootLabel = view === "shared" ? "Partagés avec moi" : "Mon Drive" const rootHref = view === "shared" ? "/drive/shared" : "/drive" const folderPath = folderPathFromSegments(segments) const canRenameCurrent = writable && segments.length > 0 const crumbs = [{ label: rootLabel, href: rootHref, segments: [] as string[] }] for (let i = 0; i < segments.length; i++) { const slice = segments.slice(0, i + 1) crumbs.push({ label: displayFileName(segments[i]), href: buildDriveFolderHref(view, slice), segments: slice, }) } return ( <> ) }