import React from 'react'; import type { SearchResult } from './types'; import { AccordionItem, AccordionItemContent, AccordionItemTrigger } from '@luxfi/ui/accordion'; import CodeEditorFileIcon from './CodeEditorFileIcon'; import CodeEditorSearchResultItem from './CodeEditorSearchResultItem'; import getFileName from './utils/getFileName'; import useThemeColors from './utils/useThemeColors'; interface Props { data: SearchResult; onItemClick: (filePath: string, lineNumber: number) => void; } const CodeEditorSearchSection = ({ data, onItemClick }: Props) => { const fileName = getFileName(data.file_path); const handleFileLineClick = React.useCallback((event: React.MouseEvent) => { const lineNumber = Number((event.currentTarget as HTMLDivElement).getAttribute('data-line-number')); if (!Object.is(lineNumber, NaN)) { onItemClick(data.file_path, Number(lineNumber)); } }, [ data.file_path, onItemClick ]); const themeColors = useThemeColors(); return (
{ fileName }
{ data.matches.length }
{ data.matches.map((match) => ( ), ) } ); }; export default React.memo(CodeEditorSearchSection);