From 5dd399215ec59a95f13051c59b3d3da22f59d24b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicole=20Miko=C5=82ajczyk?= Date: Wed, 9 Apr 2025 14:12:31 +0200 Subject: [PATCH] pl-fe: accept mentions before greentext MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nicole Mikołajczyk --- packages/pl-fe/src/components/parsed-content.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/pl-fe/src/components/parsed-content.tsx b/packages/pl-fe/src/components/parsed-content.tsx index f4dbc348d..381a81de7 100644 --- a/packages/pl-fe/src/components/parsed-content.tsx +++ b/packages/pl-fe/src/components/parsed-content.tsx @@ -104,7 +104,12 @@ function parseContent({ replace(domNode) { if (!(domNode instanceof Element)) { // @ts-ignore - if (greentext && (domNode.data.startsWith('>') || domNode.prev?.greentext)) { + domNode.preGreentext = (!domNode.prev || domNode.prev.preGreentext) && !domNode.data.trim().length; + + // @ts-ignore + const data = domNode.prev?.preGreentext ? domNode.data.trim() : domNode.data; + // @ts-ignore + if (greentext && (data.startsWith('>') || domNode.prev?.greentext)) { // @ts-ignore domNode.greentext = true; return {domNode.data}; @@ -121,6 +126,11 @@ function parseContent({ return <>; } + if (domNode.attribs.class?.split(' ').includes('h-card')) { + // @ts-ignore + domNode.preGreentext = !domNode.prev || domNode.prev.preGreentext; + } + // @ts-ignore if (domNode.name !== 'br' && domNode.prev?.greentext) { domNode.attribs.class = `${domNode.attribs.class || ''} ${GREENTEXT_CLASS}`;