"use client" import { forwardRef } from "react" import { IconStar, IconStarFilled, IconUsers, IconDots } from "@tabler/icons-react" import { useRouter } from "next/navigation" import type { FileItem as FileItemType } from "@/lib/files-data" import { formatRelativeDate } from "@/lib/file-utils" import { FileIcon } from "./file-icon" import { useFiles } from "@/hooks/use-files" import { cn } from "@/lib/utils" const fileTypeColors: Record = { document: "bg-blue-50 dark:bg-blue-950/30", spreadsheet: "bg-green-50 dark:bg-green-950/30", image: "bg-purple-50 dark:bg-purple-950/30", video: "bg-red-50 dark:bg-red-950/30", pdf: "bg-red-50 dark:bg-red-950/30", code: "bg-emerald-50 dark:bg-emerald-950/30", archive: "bg-orange-50 dark:bg-orange-950/30", audio: "bg-pink-50 dark:bg-pink-950/30", unknown: "bg-muted", } export const FolderCard = forwardRef< HTMLDivElement, { file: FileItemType selected: boolean onClick: (e: React.MouseEvent) => void } >(function FolderCard({ file, selected, onClick, ...props }, ref) { const router = useRouter() const { dispatch } = useFiles() const handleDoubleClick = () => { const folderPath = [...file.path, file.name].join("/") router.push(`/dashboard/files/${folderPath}`) } return (
{file.name} {file.shared && ( )}
) }) export const FileCard = forwardRef< HTMLDivElement, { file: FileItemType selected: boolean onClick: (e: React.MouseEvent) => void } >(function FileCard({ file, selected, onClick, ...props }, ref) { const { dispatch } = useFiles() return (

{file.name}

{formatRelativeDate(file.modifiedAt)} {file.shared && " ยท Shared"}

) })