File size: 1,220 Bytes
12621bc 9249538 12621bc 9249538 12621bc 9249538 12621bc |
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 |
import React from "react";
import { ScrollArea } from "@/components/ui/scroll-area";
import { cn } from "@/lib/utils";
import { IDocument } from "@/lib/document/types";
import { DocumentBadge } from "./DocumentBadge";
interface DocumentBadgesScrollAreaProps {
documents: IDocument[];
onPreview: (doc: IDocument) => void;
onRemove: (docId: string) => void;
removeable?: boolean;
maxHeight?: string;
className?: string;
rowReverse?: boolean;
}
export const DocumentBadgesScrollArea = React.memo(({
documents,
onPreview,
onRemove,
removeable = true,
maxHeight = "100px",
className = "",
rowReverse = true,
}: DocumentBadgesScrollAreaProps) => (
<ScrollArea className={cn("w-full", className)} style={{ maxHeight }}>
<div className={`flex ${rowReverse ? "flex-row-reverse" : "flex-row"} flex-wrap-reverse gap-1 p-1`}>
{documents.map((document) => (
<DocumentBadge
key={document.id}
document={document}
onPreview={() => onPreview(document)}
onRemove={() => onRemove(document.id)}
removeable={removeable}
/>
))}
</div>
</ScrollArea>
));
DocumentBadgesScrollArea.displayName = "DocumentBadgesScrollArea"; |