"use client"; import { useState } from "react"; import { Loader2, X } from "lucide-react"; import Resource from "@/components/Knowledge/Resource"; import ResourceIcon from "./ResourceIcon"; import { formatSize } from "@/utils/file"; import { cn } from "@/utils/style"; import { isFunction } from "radash"; type Props = { className?: string; resources: Resource[]; onRemove?: (id: string) => void; }; function ResourceList({ className, resources, onRemove }: Props) { const [openResource, setOpenResource] = useState(false); const [resourceId, setResourceId] = useState(""); function handleOpenResource(id: string) { setResourceId(id); setOpenResource(true); } return (
{resources.map((resource) => { return (
handleOpenResource(resource.id)} >
{resource.status === "processing" ? ( ) : null}

{resource.name}

{formatSize(resource.size)}

{isFunction(onRemove) ? ( { ev.stopPropagation(); onRemove(resource.id); }} /> ) : null}
); })} {resourceId ? ( setOpenResource(false)} > ) : null}
); } export default ResourceList;