"use client"; import Image from "next/image"; import {useState} from "react"; import {Card} from "@/components/ui/card"; import {ConnectionIndicator} from "@/components/common/connection-indicator"; import {formatDateLastContact} from "@/utils/date-formatting"; import {Database} from "@/db/schema/07_database"; import {ChevronRight, Activity, Fingerprint, Copy, Check} from "lucide-react"; import {cn} from "@/lib/utils"; export type DatabaseCardProps = { data: Database; withDetails?: boolean; selectable?: boolean; selected?: boolean; onToggleSelect?: (databaseId: string) => void; deleteButton?: React.ReactNode; }; export const DatabaseCard = (props: DatabaseCardProps) => { const {data: database, withDetails = true, selectable = false, selected = false, onToggleSelect, deleteButton} = props; const [isCopied, setIsCopied] = useState(false); const handleCopy = (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); navigator.clipboard.writeText(database.agentDatabaseId ?? ""); setIsCopied(true); setTimeout(() => setIsCopied(false), 2000); }; return ( {selectable && ( )}
{`${database.dbms}

{database.name}

{database.agentDatabaseId}
{formatDateLastContact(database.lastContact)}
{deleteButton ? (
e.preventDefault()}> {deleteButton}
) : withDetails ? (
Open
Details
) : null}
); };