import PropTypes from 'prop-types' import {useRouter} from 'next/router' import {format} from 'date-fns' import {fr} from 'date-fns/locale' import { Card, CardActionArea, CardContent, CardMedia, Typography, Grid } from '@mui/material' import ExplicitIcon from '@mui/icons-material/Explicit' import {styled} from '@mui/material/styles' const PREFIX = 'teks-kat' const IMAGE_URL = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337' const classes = { root: `${PREFIX}-root`, media: `${PREFIX}-media` } const StyledGrid = styled(Grid)({ [`& .${classes.root}`]: { maxWidth: 345 }, [`& .${classes.media}`]: { height: 240, objectFit: 'contain' } }) const noImageUrl = 'https://place-hold.it/140x140?text=Pa%20ni%20imaj' export default function TeksKat({teks}) { const router = useRouter() const {attributes} = teks const {titre, artistes, annee, couverture, publishedAt, slug} = attributes const datPiblikasyon = format(new Date(publishedAt), 'P', {locale: fr}) const alias = artistes.data.map(({attributes}) => attributes.alias) const handleClick = slug => { router.push(`/paroles/${slug}#${slug}`).then(() => window.scrollTo(0, 0)) } return ( handleClick(slug)}> {titre} {teks.eksplisit && ( )} {teks.user && ( <> (texte soumis par {teks.user.username}) )} {teks.userAdmin && !teks.user && ( <> (texte soumis par {teks.userAdmin}) )} {new Intl.ListFormat('fr').format(alias)} {annee} PubliƩ le : {datPiblikasyon} ) } TeksKat.propTypes = { teks: PropTypes.object.isRequired }