Files
Anonyme/app/utils/highlightEntities.tsx
2025-07-26 21:39:49 +02:00

31 lines
684 B
TypeScript

export const highlightEntities = (text: string) => {
if (!text) return text;
const entityPattern = /\[([^\]]+)\]/g;
const parts = [];
let lastIndex = 0;
let match;
while ((match = entityPattern.exec(text)) !== null) {
if (match.index > lastIndex) {
parts.push(text.slice(lastIndex, match.index));
}
parts.push(
<span
key={match.index}
className="bg-[#f7ab6e] text-[#092727] px-1 py-0.5 rounded font-medium"
>
{match[0]}
</span>
);
lastIndex = match.index + match[0].length;
}
if (lastIndex < text.length) {
parts.push(text.slice(lastIndex));
}
return parts.length > 0 ? parts : text;
};