import React from "react"; import { CommandEmpty, CommandGroup, CommandItem, CommandList, } from "@/src/components/ui/command"; import { SpanItem } from "@/src/components/trace/SpanItem"; import { ItemBadge } from "@/src/components/ItemBadge"; import { type APIScoreV2 } from "@langfuse/shared"; import type Decimal from "decimal.js"; import { type TreeNode } from "./lib/types"; export interface TraceSearchListItem { node: TreeNode; parentTotalCost?: Decimal; parentTotalDuration?: number; observationId?: string; // The actual observation ID to use for navigation (undefined for TRACE nodes) } export interface TraceSearchListProps { items: TraceSearchListItem[]; scores: APIScoreV2[]; onSelect: (observationId: string | undefined) => void; comments?: Map; showMetrics: boolean; showScores: boolean; colorCodeMetrics: boolean; showComments?: boolean; onClearSearch?: () => void; } export const TraceSearchList: React.FC = ({ items, scores, onSelect, comments, showMetrics, showScores, colorCodeMetrics, showComments = true, onClearSearch, }) => { return (
{items.map( ({ node, parentTotalCost, parentTotalDuration, observationId }) => ( onSelect(observationId)} >
), )}
No results found Try searching by type, title, or id.
{onClearSearch && items.length > 0 ? ( ) : null}
); };