import React from 'react'
// Escape regex special characters
function escapeRegex(str: string): string {
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
}
export function highlightMatches(text: string, query: string): React.ReactNode {
if (!query) return text
const safeQuery = escapeRegex(query)
const regex = new RegExp(`(${safeQuery})`, 'gi')
const parts = text.split(regex)
return (
<>
{parts.map((part, idx) => {
const key = `${part}-${text.indexOf(part, idx)}`
return idx % 2 === 1 ? (
{part}
) : (
{part}
)
})}
>
)
}