import { Regex } from "@hey/data/regex";
import trimify from "@hey/helpers/trimify";
import type { PostMentionFragment } from "@hey/indexer";
import { memo } from "react";
import ReactMarkdown from "react-markdown";
import remarkBreaks from "remark-breaks";
import linkifyRegex from "remark-linkify-regex";
import stripMarkdown from "strip-markdown";
import type { PluggableList } from "unified";
import MarkupLink from "./MarkupLink";
const plugins: PluggableList = [
[stripMarkdown, { keep: ["strong", "emphasis", "list", "listItem"] }],
remarkBreaks,
linkifyRegex(Regex.url),
linkifyRegex(Regex.mention)
];
interface MarkupProps {
children: string;
className?: string;
mentions?: PostMentionFragment[];
}
const Markup = ({ children, className = "", mentions = [] }: MarkupProps) => {
if (!children) {
return null;
}
const components = {
a: (props: any) =>
};
return (
{trimify(children)}
);
};
export default memo(Markup);