mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
66 lines
1.5 KiB
JavaScript
66 lines
1.5 KiB
JavaScript
import React from 'react'
|
|
import classnames from 'classnames'
|
|
import styles from './index.less'
|
|
|
|
export default class MediaPlayer extends React.PureComponent {
|
|
player() {
|
|
const { file } = this.props
|
|
let type
|
|
|
|
const ImageExtensions = ['.png', '.jpg', '.jpeg', '.gif']
|
|
const VideoExtensions = ['.mp4', '.mov', '.avi']
|
|
const AudioExtensions = ['.mp3', '.ogg', '.wav']
|
|
|
|
const FilesAllowed = ImageExtensions.concat(
|
|
VideoExtensions,
|
|
AudioExtensions
|
|
)
|
|
|
|
for (const prop in FilesAllowed) {
|
|
if (file.includes(`${ImageExtensions[prop]}`)) {
|
|
type = 'image'
|
|
}
|
|
if (file.includes(`${VideoExtensions[prop]}`)) {
|
|
type = 'video'
|
|
}
|
|
if (file.includes(`${AudioExtensions[prop]}`)) {
|
|
type = 'audio'
|
|
}
|
|
}
|
|
|
|
if (type == 'video') {
|
|
// const payload = {type: 'video', sources: [{src: file,}]}
|
|
// return (
|
|
// <PlyrComponent styles={{ width: '100%' }} sources={payload} />
|
|
// )
|
|
return (
|
|
<video id="player" playsInline controls>
|
|
<source src={file} />
|
|
</video>
|
|
)
|
|
}
|
|
if (type == 'audio') {
|
|
return (
|
|
<audio id="player" controls>
|
|
<source src={file} />
|
|
</audio>
|
|
)
|
|
}
|
|
if (type == 'image') {
|
|
return <img src={file} />
|
|
}
|
|
}
|
|
render() {
|
|
return (
|
|
<div
|
|
className={classnames(styles.PlayerContainer, {
|
|
[styles.mobile]: this.props.isMobile,
|
|
[styles.entire]: this.props.entire,
|
|
})}
|
|
>
|
|
{this.player()}
|
|
</div>
|
|
)
|
|
}
|
|
}
|