import { Bucket } from "@/lib/server/buckets"; import React from "react"; type BucketCardProps = { bucket: Bucket; icon?: string | null; isExpanded: boolean; toggleExpanded: (bucketId: number) => void; isMenuOpen: boolean; setMenuOpenId: React.Dispatch>; setConfirmDeleteId: (bucketId: number) => void; openEdit: (bucketId: number) => void; limit: number; usageLabel: string; renderUsageBar: (bucket: Bucket) => React.ReactNode; }; export function BucketCard({ bucket, icon, isExpanded, toggleExpanded, isMenuOpen, setMenuOpenId, setConfirmDeleteId, openEdit, limit, usageLabel, renderUsageBar, }: BucketCardProps) { return (
toggleExpanded(bucket.id)} >
{icon || "🚫"}
{bucket.name}
{bucket.description ? (
{bucket.description}
) : null}
{isMenuOpen ? (
) : null}
{limit > 0 ? ( <> {renderUsageBar(bucket)} {isExpanded ? (
{usageLabel}
{bucket.tags?.length ? ( bucket.tags.map((tag) => ( #{tag} )) ) : ( No tags )}
) : null} ) : isExpanded ? (
{bucket.tags?.length ? ( bucket.tags.map((tag) => ( #{tag} )) ) : ( No tags )}
) : null}
); } export default React.memo(BucketCard, (prev, next) => ( prev.bucket === next.bucket && prev.icon === next.icon && prev.isExpanded === next.isExpanded && prev.isMenuOpen === next.isMenuOpen && prev.limit === next.limit && prev.usageLabel === next.usageLabel ));