diff --git a/components/teks/denye-teks.js b/components/teks/denye-teks.js
index 04a4f2e..73d551a 100644
--- a/components/teks/denye-teks.js
+++ b/components/teks/denye-teks.js
@@ -1,41 +1,15 @@
-import {useState, useEffect, forwardRef} from 'react'
-import {useRouter} from 'next/router'
-import PropTypes from 'prop-types'
-
-import Container from '@mui/material/Container'
-import Grid from '@mui/material/Grid'
-import Skeleton from '@mui/material/Skeleton'
-import Card from '@mui/material/Card'
-import CardActionArea from '@mui/material/CardActionArea'
-import CardContent from '@mui/material/CardContent'
-import Typography from '@mui/material/Typography'
-import MuiAlert from '@mui/material/Alert'
-import Snackbar from '@mui/material/Snackbar'
-
-import ExplicitIcon from '@mui/icons-material/Explicit'
+import {Container, Grid} from '@mui/material'
import {styled} from '@mui/material/styles'
-import {format} from 'date-fns'
-import {fr} from 'date-fns/locale'
-
-import Image from 'next/image'
-import {useMediaQuery} from '@mui/material'
-import {jwennDenyeTeks} from '../../lib/oki-api'
+import TeksKat from './teks-kat'
const PREFIX = 'denye-teks'
-const TEKS_PREFIX = 'teks-kat'
-const KAT_ARRAY = Array.from({length: 6})
const classes = {
container: `${PREFIX}-container`
}
-const teksClasses = {
- root: `${TEKS_PREFIX}-root`,
- media: `${TEKS_PREFIX}-media`
-}
-
const Root = styled('div')(() => ({
[`&.${classes.container}`]: {
marginTop: '1em',
@@ -43,136 +17,14 @@ const Root = styled('div')(() => ({
}
}))
-const StyledGrid = styled(Grid)({
- [`& .${teksClasses.root}`]: {
- maxWidth: 345
- },
- [`& .${teksClasses.media}`]: {
- height: 240,
- objectFit: 'contain'
- }
-})
-
-const Alert = forwardRef(function Alert(props, ref) {
- return
-})
-
-export default function DenyeTeks({error, setError}) {
- const router = useRouter()
- const [teks, setTeks] = useState([])
- const [isLoading, setIsLoading] = useState(true)
- const isMobile = useMediaQuery('(max-width:527px)')
- const [isOpen, setIsOpen] = useState(false)
-
- const handleClick = slug => {
- router.push(`/paroles/${slug}#${slug}`).then(() => window.scrollTo(0, 0))
- }
-
- const noImageUrl = 'https://place-hold.it/140x140?text=Image%20indisponible'
- const formatDate = date => format(new Date(date), 'P', {locale: fr})
-
- useEffect(() => {
- const getTeks = async () => {
- try {
- const denyeTeks = await jwennDenyeTeks()
- setTeks(denyeTeks)
- } catch (error_) {
- setIsOpen(true)
- setError(error_)
- setIsLoading(false)
- }
- }
-
- getTeks()
-
- setIsLoading(false)
- }, [setError])
-
- const handleClose = (event, reason) => {
- if (reason === 'clickaway') {
- return
- }
-
- setIsOpen(false)
- }
-
+export default function DenyeTeks(denyeTeks) {
return (
- {error && (
-
-
- Les éléments ne peuvent pas s’afficher : {error.message}
-
-
- )}
- {!error && KAT_ARRAY.map((kat, index) => (
- {/* eslint-disable-line react/no-array-index-key */}
-
- {isLoading || teks.length === 0 ? (
-
-
-
-
-
-
-
- ) : (
- handleClick(teks[index].slug)}>
-
-
-
- {teks[index].tit}
-
- {teks[index].eksplisit && (
-
- )}
-
- {teks[index].user && (
- <>
- (texte soumis par {teks[index].user.username})
- >
- )}
- {teks[index].userAdmin && !teks[index].user && (
- <>
- (texte soumis par {teks[index].userAdmin})
- >
- )}
-
-
- {new Intl.ListFormat('fr').format(teks[index].awtis.map(({alias}) => alias))}
-
-
- {teks[index].lanne}
-
-
- Publié le : {formatDate(teks[index].published_at)}
-
-
-
- )}
-
-
- ))}
+ {Object.values(denyeTeks).map(t => )}
)
}
-
-DenyeTeks.defaultProps = {
- error: null
-}
-
-DenyeTeks.propTypes = {
- error: PropTypes.object,
- setError: PropTypes.func.isRequired
-}
diff --git a/components/teks/teks-drawer.js b/components/teks/teks-drawer.js
index be87d44..70fc5d6 100644
--- a/components/teks/teks-drawer.js
+++ b/components/teks/teks-drawer.js
@@ -117,11 +117,11 @@ const Root = styled('div')((
const drawerWidth = 240
-export default function TeksDrawer({teks, anTeks, komante}) {
+export default function TeksDrawer({teks, anTeks, komante, denyeTeks}) {
const theme = useTheme()
const [esMobilOuve, meteEsMobilOuve] = useState(false)
const [open, setOpen] = useState(false)
- const [error, setError] = useState(null)
+ const [error, setError] = useState('')
const [success, setSuccess] = useState('')
const handleClose = (event, reason) => {
@@ -230,7 +230,7 @@ export default function TeksDrawer({teks, anTeks, komante}) {
/>
) : (
-
+
)}
@@ -241,10 +241,12 @@ export default function TeksDrawer({teks, anTeks, komante}) {
TeksDrawer.propTypes = {
teks: PropTypes.array.isRequired,
anTeks: PropTypes.object,
- komante: PropTypes.array
+ komante: PropTypes.array,
+ denyeTeks: PropTypes.array
}
TeksDrawer.defaultProps = {
anTeks: null,
- komante: null
+ komante: null,
+ denyeTeks: null
}
diff --git a/pages/index.js b/pages/index.js
index 0c85ac9..f313f61 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,4 +1,4 @@
-import {useState} from 'react'
+import PropTypes from 'prop-types'
import {Container, Typography, Box, Divider, Chip} from '@mui/material'
import ArrowCircleDownIcon from '@mui/icons-material/ArrowCircleDown'
@@ -6,10 +6,9 @@ import HeadLayout from '../components/head-layout'
import Footer from '../components/footer'
import RezoDialog from '../components/rezo/rezo-dialog'
import DenyeTeks from '../components/teks/denye-teks'
+import {jwennDenyeTeks} from '../lib/oki-api'
-export default function Home() {
- const [error, setError] = useState(null)
-
+export default function Home({teks}) {
return (
@@ -29,13 +28,11 @@ export default function Home() {
-
- {!error && (
-
- } label='Derniers textes publiés ' variant='outlined' />
-
- )}
-
+
+
+ } label='Derniers textes publiés ' variant='outlined' />
+
+
@@ -43,3 +40,16 @@ export default function Home() {
)
}
+export async function getServerSideProps() {
+ const denyeTeks = await jwennDenyeTeks()
+
+ return {
+ props: {
+ teks: denyeTeks
+ }
+ }
+}
+
+Home.propTypes = {
+ teks: PropTypes.array.isRequired
+}
diff --git a/pages/paroles/index.js b/pages/paroles/index.js
index 54a94ac..6fe98f6 100644
--- a/pages/paroles/index.js
+++ b/pages/paroles/index.js
@@ -1,28 +1,31 @@
import PropTypes from 'prop-types'
-import {jwennTeks} from '../../lib/oki-api'
+import {jwennDenyeTeks, jwennTeks} from '../../lib/oki-api'
import TeksDrawer from '../../components/teks/teks-drawer'
import HeadLayout from '../../components/head-layout'
-export default function Teks({teks}) {
+export default function Teks({teks, denyeTeks}) {
return (
-
+
)
}
export async function getServerSideProps() {
const teks = await jwennTeks()
+ const denyeTeks = await jwennDenyeTeks()
return {
props: {
- teks
+ teks,
+ denyeTeks
}
}
}
Teks.propTypes = {
- teks: PropTypes.array.isRequired
+ teks: PropTypes.array.isRequired,
+ denyeTeks: PropTypes.array.isRequired
}