diff --git a/components/teks/denye-teks.js b/components/teks/denye-teks.js
index 73d551a..15f5290 100644
--- a/components/teks/denye-teks.js
+++ b/components/teks/denye-teks.js
@@ -1,4 +1,5 @@
-import {Container, Grid} from '@mui/material'
+import PropTypes from 'prop-types'
+import {Container, Grid, Typography} from '@mui/material'
import {styled} from '@mui/material/styles'
@@ -17,14 +18,25 @@ const Root = styled('div')(() => ({
}
}))
-export default function DenyeTeks(denyeTeks) {
+export default function DenyeTeks({denyeTeks}) {
return (
+ {denyeTeks.length === 0 && (
+
+
+ Aucun résultat
+
+
+ )}
- {Object.values(denyeTeks).map(t => )}
+ {denyeTeks.map(t => )}
)
}
+
+DenyeTeks.propTypes = {
+ denyeTeks: PropTypes.array.isRequired
+}
diff --git a/components/teks/teks-drawer.js b/components/teks/teks-drawer.js
index 70fc5d6..c2c3d48 100644
--- a/components/teks/teks-drawer.js
+++ b/components/teks/teks-drawer.js
@@ -230,7 +230,7 @@ export default function TeksDrawer({teks, anTeks, komante, denyeTeks}) {
/>
) : (
-
+
)}
diff --git a/pages/index.js b/pages/index.js
index f313f61..acba354 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -8,7 +8,14 @@ import RezoDialog from '../components/rezo/rezo-dialog'
import DenyeTeks from '../components/teks/denye-teks'
import {jwennDenyeTeks} from '../lib/oki-api'
-export default function Home({teks}) {
+import Custom500 from './500'
+
+export default function Home({errorCode, errorMessage, teks}) {
+ if (errorCode) {
+ console.log('⚠️ error', errorMessage)
+ return
+ }
+
return (
@@ -28,11 +35,11 @@ export default function Home({teks}) {
-
+
} label='Derniers textes publiés ' variant='outlined' />
-
+
@@ -41,15 +48,34 @@ export default function Home({teks}) {
}
export async function getServerSideProps() {
- const denyeTeks = await jwennDenyeTeks()
+ let denyeTeks
+ let errorCode
+ let errorMessage
+
+ try {
+ denyeTeks = await jwennDenyeTeks()
+ } catch (error) {
+ errorMessage = error.message
+ errorCode = true
+ }
return {
props: {
- teks: denyeTeks
+ errorCode: errorCode || null,
+ errorMessage: errorMessage || null,
+ teks: denyeTeks || null
}
}
}
-Home.propTypes = {
- teks: PropTypes.array.isRequired
+Home.defaultProps = {
+ errorCode: null,
+ errorMessage: null,
+ teks: null
+}
+
+Home.propTypes = {
+ errorCode: PropTypes.bool,
+ errorMessage: PropTypes.string,
+ teks: PropTypes.array
}
diff --git a/pages/paroles/[slug].js b/pages/paroles/[slug].js
index fc512a9..8486fa9 100644
--- a/pages/paroles/[slug].js
+++ b/pages/paroles/[slug].js
@@ -5,12 +5,24 @@ import {jwennTeksEpiSlug, jwennTeks, jwennKomanteEpiTeksId} from '../../lib/oki-
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({teks, anTeks, slug, komante}) {
+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 = () => {
@@ -48,29 +60,46 @@ export default function SlugTeks({teks, anTeks, slug, komante}) {
export async function getServerSideProps({query}) {
const {slug} = query
- const teks = await jwennTeks()
- const anTeks = await jwennTeksEpiSlug(slug)
+ let teks
+ let anTeks
+ let hasError
+ let errorMessage
+ let komante
- if (!anTeks) {
- throw new Error('San répons')
+ try {
+ teks = await jwennTeks()
+ anTeks = await jwennTeksEpiSlug(slug)
+ komante = await jwennKomanteEpiTeksId(anTeks?.id)
+ } catch (error) {
+ errorMessage = error
+ hasError = true
}
- const {id} = anTeks
- const komante = await jwennKomanteEpiTeksId(id)
-
return {
props: {
- teks,
- anTeks,
+ hasError: hasError || null,
+ errorMessage: errorMessage ? errorMessage.message : null,
+ teks: teks || null,
+ anTeks: anTeks || null,
slug,
- komante
+ komante: komante || null
}
}
}
-SlugTeks.propTypes = {
- teks: PropTypes.array.isRequired,
- anTeks: PropTypes.object.isRequired,
- slug: PropTypes.string.isRequired,
- komante: PropTypes.array.isRequired
+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
}
diff --git a/pages/paroles/index.js b/pages/paroles/index.js
index 6fe98f6..c5e7037 100644
--- a/pages/paroles/index.js
+++ b/pages/paroles/index.js
@@ -5,7 +5,14 @@ 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, denyeTeks}) {
+import Custom500 from '../500'
+
+export default function Teks({errorCode, errorMessage, teks, denyeTeks}) {
+ if (errorCode) {
+ console.log('⚠️ error', errorMessage)
+ return
+ }
+
return (
@@ -14,18 +21,39 @@ export default function Teks({teks, denyeTeks}) {
}
export async function getServerSideProps() {
- const teks = await jwennTeks()
- const denyeTeks = await jwennDenyeTeks()
+ let teks
+ let denyeTeks
+ let hasError
+ let errorMessage
+
+ try {
+ teks = await jwennTeks()
+ denyeTeks = await jwennDenyeTeks()
+ } catch (error) {
+ errorMessage = error.message
+ hasError = true
+ }
return {
props: {
- teks,
- denyeTeks
+ errorCode: hasError || null,
+ errorMessage: errorMessage || null,
+ teks: teks || null,
+ denyeTeks: denyeTeks || null
}
}
}
-Teks.propTypes = {
- teks: PropTypes.array.isRequired,
- denyeTeks: PropTypes.array.isRequired
+Teks.defaultProps = {
+ errorCode: null,
+ errorMessage: null,
+ teks: null,
+ denyeTeks: null
+}
+
+Teks.propTypes = {
+ errorCode: PropTypes.bool,
+ errorMessage: PropTypes.string,
+ teks: PropTypes.array,
+ denyeTeks: PropTypes.array
}