43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
/* eslint-disable react/prop-types */
|
|
|
|
import React, {useState} from 'react'
|
|
|
|
import Card from '@material-ui/core/Card'
|
|
import CardContent from '@material-ui/core/CardContent'
|
|
import CardHeader from '@material-ui/core/CardHeader'
|
|
import CardMedia from '@material-ui/core/CardMedia'
|
|
|
|
import ComponentFactory from '../ComponentFactory'
|
|
import {useStyles} from '../index'
|
|
|
|
|
|
|
|
export default function MCF_MediaCard (props) {
|
|
const [params, setParams] = useState(props.params)
|
|
const classes = useStyles()
|
|
|
|
const renderContents = () => {
|
|
return params.contents.map(contentConfig => {
|
|
contentConfig.params.parentKey = params.key
|
|
return ComponentFactory.createComponent(contentConfig)
|
|
})
|
|
}
|
|
|
|
return (
|
|
<Card className={classes.card}>
|
|
<CardHeader
|
|
title={params.mainText} // string
|
|
subheader={params.secondaryText} // string
|
|
/>
|
|
<CardMedia
|
|
className={classes.media}
|
|
image={params.imageURL} // string: URL
|
|
title={params.imageTitle} // string
|
|
alt={params.imageAlt} // string
|
|
/>
|
|
<CardContent>
|
|
{renderContents()}
|
|
</CardContent>
|
|
</Card>
|
|
)
|
|
}
|