daedalOS/components/apps/Messenger/SanitizedContent.tsx
Dustin Brett 24c17c0088
Some checks failed
Tests / tests (push) Has been cancelled
Add memo to everything
2025-07-01 09:10:22 -07:00

34 lines
781 B
TypeScript

import DOMPurify from "dompurify";
import { memo, useMemo } from "react";
import {
convertImageLinksToHtml,
convertNewLinesToBreaks,
} from "components/apps/Messenger/functions";
const SanitizedContent: FC<{ content: string; decrypted: boolean }> = ({
content,
decrypted,
}) => {
const decryptedContent = useMemo(
() =>
decrypted
? convertImageLinksToHtml(convertNewLinesToBreaks(content))
: "",
[content, decrypted]
);
return (
<div
// eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={{
__html: DOMPurify.sanitize(decryptedContent || content, {
ALLOWED_ATTR: ["src"],
ALLOWED_TAGS: ["br", "img"],
}),
}}
/>
);
};
export default memo(SanitizedContent);