import { cn } from '@heroui/theme'; import { ReactNode } from 'react'; interface HighlightSearchTermProps { text: string; searchTerm: string; className?: string; minSearchLength?: number; } export function highlightSearchTerm({ text, searchTerm, className, minSearchLength = 2, }: HighlightSearchTermProps): ReactNode { if (!text || !searchTerm || searchTerm.length < minSearchLength) { return text || null; } const regex = new RegExp(`(${searchTerm.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi'); const parts = text.split(regex); return ( <> {parts.map((part, index) => { if (regex.test(part)) { return ( {part} ); } return part; })} ); }