Files
pawol.nu/components/awtis/awtis-kat.js
T

115 lines
2.8 KiB
JavaScript
Raw Normal View History

2020-12-11 01:41:37 +01:00
import {useState} from 'react'
import PropTypes from 'prop-types'
import clsx from 'clsx'
import {
CardActionArea,
Grid,
Card,
CardContent,
CardMedia,
CardActions,
Collapse,
IconButton,
Typography
} from '@material-ui/core'
import ExpandMoreIcon from '@material-ui/icons/ExpandMore'
import {makeStyles} from '@material-ui/core/styles'
import MizikLis from './mizik-lis'
2020-12-18 19:37:28 +01:00
import AwtisBiyografi from './awtis-biyografi'
2020-12-11 01:41:37 +01:00
const useStyles = makeStyles(theme => ({
root: {
maxWidth: 345
},
media: {
height: 240,
objectFit: 'contain'
},
expand: {
transform: 'rotate(0deg)',
marginLeft: 'auto',
transition: theme.transitions.create('transform', {
duration: theme.transitions.duration.shortest
})
},
expandOpen: {
transform: 'rotate(180deg)'
}
}))
export default function AwtisKat({anAwtis}) {
const [isBioOpen, setIsBioOpen] = useState(false)
2020-12-18 19:37:28 +01:00
const {alias, biyografi, miziks, foto} = anAwtis
2020-12-11 01:41:37 +01:00
const classes = useStyles()
const [expanded, setExpanded] = useState(false)
const handleExpandClick = () => {
setExpanded(!expanded)
}
const handleClick = () => {
setIsBioOpen(true)
}
return (
<>
2020-12-12 21:48:44 +01:00
<Grid item xs={12} sm={6} lg={4}>
2020-12-11 01:41:37 +01:00
<Card className={classes.root}>
<CardActionArea onClick={handleClick}>
<CardMedia
className={classes.media}
component='img'
alt={alias}
2020-12-18 19:37:28 +01:00
image={`${foto.length > 0 ? `${process.env.NEXT_PUBLIC_API_URL}${foto[0].url}` : null}`}
2020-12-11 01:41:37 +01:00
title={alias}
/>
<CardContent>
<Typography gutterBottom align='center' variant='h5' component='h2'>
{alias}
</Typography>
<Typography align='center' variant='body2' color='textSecondary' component='h5'>
{anAwtis.miziks.length} tèks
</Typography>
</CardContent>
</CardActionArea>
<CardActions disableSpacing>
<IconButton
className={clsx(classes.expand, {
[classes.expandOpen]: expanded
})}
aria-expanded={expanded}
aria-label='show more'
onClick={handleExpandClick}
>
<ExpandMoreIcon />
</IconButton>
</CardActions>
<Collapse unmountOnExit in={expanded} timeout='auto'>
<CardContent>
<MizikLis miziks={miziks} />
</CardContent>
</Collapse>
</Card>
</Grid>
{isBioOpen && (
2020-12-18 19:37:28 +01:00
<AwtisBiyografi
2020-12-11 01:41:37 +01:00
alias={alias}
miziks={miziks}
2020-12-18 19:37:28 +01:00
biyografi={biyografi}
2020-12-11 01:41:37 +01:00
isBioOpen={isBioOpen}
setIsBioOpen={setIsBioOpen}
/>
)}
</>
)
}
AwtisKat.propTypes = {
anAwtis: PropTypes.object.isRequired
}