1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/components/MarkdownBox.tsx

38 lines
1 KiB
TypeScript
Raw Normal View History

2024-03-17 04:08:53 -04:00
import Box from '@mui/material/Box/Box';
import DOMPurify from 'dompurify';
import markdownIt from 'markdown-it';
import React, { type FC } from 'react';
interface MarkdownBoxProps {
markdown?: string | null
fallback?: string
}
/** A component to render Markdown content within a MUI Box component. */
const MarkdownBox: FC<MarkdownBoxProps> = ({
markdown,
fallback
}) => (
<Box
dangerouslySetInnerHTML={
markdown ?
{ __html: DOMPurify.sanitize(markdownIt({ html: true }).render(markdown)) } :
undefined
}
sx={{
2024-07-19 11:30:57 -04:00
'> :first-child /* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */': {
marginTop: 0,
paddingTop: 0
},
'> :last-child': {
marginBottom: 0,
paddingBottom: 0
}
2024-03-17 04:08:53 -04:00
}}
>
{markdown ? undefined : fallback}
</Box>
);
export default MarkdownBox;