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";