import PropTypes from 'prop-types' import {jwennTeksEpiSlug, jwennTeks, jwennKomanteEpiTeksId} from '../../lib/oki-api' import TeksDrawer from '../../components/teks/teks-drawer' import HeadLayout from '../../components/head-layout' import Custom500 from '../500' import Custom404 from '../404' const jwennAwtis = awtis => { const alias = awtis.map(({alias}) => alias) return new Intl.ListFormat('fr').format(alias) } export default function SlugTeks({hasError, errorMessage, teks, anTeks, slug, komante}) { if (hasError) { console.log('⚠️ error :', errorMessage) return } if (!anTeks) { return } const awtis = anTeks.awtis.length === 1 ? anTeks.awtis[0].alias : jwennAwtis(anTeks.awtis) const {kouveti} = anTeks const formatKouveti = () => { if (!kouveti) { return null } if (kouveti && kouveti.formats && kouveti.formats.large) { return kouveti.formats.large } if (kouveti && kouveti.formats && kouveti.formats.medium) { return kouveti.formats.medium } if (kouveti && kouveti.formats && kouveti.formats.small) { return kouveti.formats.small } return kouveti } return ( ) } export async function getServerSideProps({query}) { const {slug} = query let teks let anTeks let hasError let errorMessage let komante try { teks = await jwennTeks() anTeks = await jwennTeksEpiSlug(slug) komante = await jwennKomanteEpiTeksId(anTeks?.id) } catch (error) { errorMessage = error hasError = true } return { props: { hasError: hasError || null, errorMessage: errorMessage ? errorMessage.message : null, teks: teks || null, anTeks: anTeks || null, slug, komante: komante || null } } } SlugTeks.defaultProps = { hasError: null, errorMessage: null, teks: null, anTeks: null, komante: null } SlugTeks.propTypes = { hasError: PropTypes.bool, errorMessage: PropTypes.string, teks: PropTypes.array, anTeks: PropTypes.object, slug: PropTypes.string.isRequired, komante: PropTypes.array }