2022-08-20 23:02:55 +02:00
|
|
|
import { TypographyStylesProvider } from "@mantine/core"
|
|
|
|
|
import { ImageWithPlaceholderWhileLoading } from "components/ImageWithPlaceholderWhileLoading"
|
2022-08-13 10:56:07 +02:00
|
|
|
|
2022-11-08 11:50:09 +01:00
|
|
|
export function Enclosure(props: { enclosureType: string; enclosureUrl: string }) {
|
2022-08-13 10:56:07 +02:00
|
|
|
const hasVideo = props.enclosureType && props.enclosureType.indexOf("video") === 0
|
|
|
|
|
const hasAudio = props.enclosureType && props.enclosureType.indexOf("audio") === 0
|
|
|
|
|
const hasImage = props.enclosureType && props.enclosureType.indexOf("image") === 0
|
2022-08-20 23:02:55 +02:00
|
|
|
|
2022-08-13 10:56:07 +02:00
|
|
|
return (
|
2022-08-20 23:02:55 +02:00
|
|
|
<TypographyStylesProvider>
|
2022-08-13 10:56:07 +02:00
|
|
|
{hasVideo && (
|
|
|
|
|
// eslint-disable-next-line jsx-a11y/media-has-caption
|
|
|
|
|
<video controls>
|
|
|
|
|
<source src={props.enclosureUrl} type={props.enclosureType} />
|
|
|
|
|
</video>
|
|
|
|
|
)}
|
|
|
|
|
{hasAudio && (
|
|
|
|
|
// eslint-disable-next-line jsx-a11y/media-has-caption
|
|
|
|
|
<audio controls>
|
|
|
|
|
<source src={props.enclosureUrl} type={props.enclosureType} />
|
|
|
|
|
</audio>
|
|
|
|
|
)}
|
2022-08-20 23:02:55 +02:00
|
|
|
{hasImage && <ImageWithPlaceholderWhileLoading src={props.enclosureUrl} alt="enclosure" />}
|
|
|
|
|
</TypographyStylesProvider>
|
2022-08-13 10:56:07 +02:00
|
|
|
)
|
|
|
|
|
}
|