diff --git a/packages/pl-fe/src/components/parsed-content.tsx b/packages/pl-fe/src/components/parsed-content.tsx index 668c48e49..9a573e1a8 100644 --- a/packages/pl-fe/src/components/parsed-content.tsx +++ b/packages/pl-fe/src/components/parsed-content.tsx @@ -62,12 +62,12 @@ const uniqueHashtagsWithCaseHandling = (hashtags: string[]) => { }; function parseContent(props: IParsedContent): ReturnType; -function parseContent(props: IParsedContent, extractHashtags: true): { +function parseContent(props: IParsedContent, extractHashtags: true, greentext: boolean): { hashtags: Array; content: ReturnType; }; -function parseContent({ html, mentions, hasQuote, emojis }: IParsedContent, extractHashtags = false) { +function parseContent({ html, mentions, hasQuote, emojis }: IParsedContent, extractHashtags = false, greentext = false) { if (html.length === 0) { return extractHashtags ? { content: null, hashtags: [] } : null; } @@ -85,8 +85,11 @@ function parseContent({ html, mentions, hasQuote, emojis }: IParsedContent, extr const hashtags: Array = []; const options: HTMLReactParserOptions = { - replace(domNode, index) { + replace(domNode) { if (!(domNode instanceof Element)) { + if (greentext && domNode.data.startsWith('>')) { + return {domNode.data}; + } return; } diff --git a/packages/pl-fe/src/components/status-content.tsx b/packages/pl-fe/src/components/status-content.tsx index cd306f5a6..bf6b4db11 100644 --- a/packages/pl-fe/src/components/status-content.tsx +++ b/packages/pl-fe/src/components/status-content.tsx @@ -8,6 +8,7 @@ import Stack from 'pl-fe/components/ui/stack'; import Text from 'pl-fe/components/ui/text'; import Emojify from 'pl-fe/features/emoji/emojify'; import QuotedStatus from 'pl-fe/features/status/containers/quoted-status-container'; +import { usePlFeConfig } from 'pl-fe/hooks/use-pl-fe-config'; import { useSettings } from 'pl-fe/hooks/use-settings'; import { useStatusTranslation } from 'pl-fe/queries/statuses/use-status-translation'; import { useStatusMetaStore } from 'pl-fe/stores/status-meta'; @@ -82,6 +83,7 @@ const StatusContent: React.FC = React.memo(({ withMedia, }) => { const { displaySpoilers } = useSettings(); + const { greentext } = usePlFeConfig(); const [collapsed, setCollapsed] = useState(null); const [onlyEmoji, setOnlyEmoji] = useState(false); @@ -144,7 +146,7 @@ const StatusContent: React.FC = React.memo(({ mentions: status.mentions, hasQuote: !!status.quote_id, emojis: status.emojis, - }, true), [content]); + }, true, greentext), [content]); useEffect(() => { setLineClamp(!spoilerNode.current || spoilerNode.current.clientHeight >= 96);