diff --git a/src/components/common/MessageText.tsx b/src/components/common/MessageText.tsx index c26bff737..13e5d112b 100644 --- a/src/components/common/MessageText.tsx +++ b/src/components/common/MessageText.tsx @@ -74,7 +74,8 @@ function MessageText({ const entitiesWithFocusedQuote = useMemo(() => { if (!text || !focusedQuote) return entities; - const index = text.indexOf(focusedQuote, focusedQuoteOffset); + const offsetIndex = text.indexOf(focusedQuote, focusedQuoteOffset); + const index = offsetIndex >= 0 ? offsetIndex : text.indexOf(focusedQuote); // Fallback to first occurrence const lendth = focusedQuote.length; if (index >= 0) { return insertTextEntity(entities || [], { diff --git a/src/components/common/helpers/renderTextWithEntities.tsx b/src/components/common/helpers/renderTextWithEntities.tsx index 74c24e2d1..893ce8b77 100644 --- a/src/components/common/helpers/renderTextWithEntities.tsx +++ b/src/components/common/helpers/renderTextWithEntities.tsx @@ -314,7 +314,8 @@ export function insertTextEntity(entities: ApiMessageEntity[], newEntity: ApiMes if (existingEntityEnd <= newEntityStart || existingEntityStart > newEntityEnd || (existingEntityStart > newEntityStart - && existingEntityEnd < newEntityEnd)) { + && existingEntityEnd < newEntityEnd) + || (existingEntityStart === newEntityStart && existingEntityEnd === newEntityEnd)) { resultEntities.push(existingEntity); continue; }