import React from 'react'; import './style.scss'; export interface EmbeddingData { id: string; text: string; model: string; dimensions: number; timestamp: number; embedding?: number[]; } export interface EmbeddingItemProps { /** Embedding data */ embedding: EmbeddingData; /** Whether the item is selected */ selected?: boolean; /** Click handler */ onClick?: (id: string) => void; /** Delete handler */ onDelete?: (id: string) => void; /** Show delete button */ showDelete?: boolean; /** Show metadata */ showMetadata?: boolean; /** Custom className */ className?: string; } export const EmbeddingItem: React.FC = ({ embedding, selected = false, onClick, onDelete, showDelete = true, showMetadata = true, className = '' }) => { const handleClick = () => { if (onClick) { onClick(embedding.id); } }; const handleDelete = (e: React.MouseEvent) => { e.stopPropagation(); if (onDelete) { onDelete(embedding.id); } }; const formatTimestamp = (timestamp: number) => { return new Date(timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' }); }; return (
{embedding.text}
{showDelete && onDelete && ( )}
{showMetadata && (
Model: {embedding.model} Dimensions: {embedding.dimensions} Created: {formatTimestamp(embedding.timestamp)}
)}
); };