From 2aa9e63e14bd152aa2d7f8f2317b4f6c96a3cdf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Fri, 20 May 2022 02:15:56 +0400 Subject: [PATCH] Change teks to parole --- components/awtis/mizik-badj-meni.js | 12 +++--- components/awtis/mizik-lis.js | 22 +++++----- components/teks/denye-teks.js | 2 +- components/teks/drawer-bar.js | 26 ++++++------ components/teks/lekte.js | 20 ++++----- components/teks/oki-mizik.js | 6 +-- components/teks/pataje.js | 10 ++--- components/teks/teks-drawer.js | 35 +++++++++------- components/teks/teks-kat.js | 20 ++++----- components/teks/teks.js | 59 +++++++++++++------------- components/teks/vwe-koute-achte.js | 20 ++++----- pages/paroles/[slug].js | 65 +++++++++++++++-------------- pages/paroles/index.js | 14 +++---- 13 files changed, 158 insertions(+), 153 deletions(-) diff --git a/components/awtis/mizik-badj-meni.js b/components/awtis/mizik-badj-meni.js index e27a437..777bb07 100644 --- a/components/awtis/mizik-badj-meni.js +++ b/components/awtis/mizik-badj-meni.js @@ -37,13 +37,13 @@ const Root = styled('div')(( } })) -const sortTeks = teks => teks.sort((a, b) => b.id - a.id) +const sortTeks = paroles => paroles.sort((a, b) => b.id - a.id) -export default function MizikBadjMeni({teks}) { +export default function MizikBadjMeni({paroles}) { const [open, setOpen] = useState(false) const anchorRef = useRef(null) const router = useRouter() - const sortedTeks = sortTeks(teks) + const sortedTeks = sortTeks(paroles) const handleToggle = () => { setOpen(previousOpen_ => !previousOpen_) @@ -90,7 +90,7 @@ export default function MizikBadjMeni({teks}) { vertical: 'top', horizontal: 'right' }} - badgeContent={teks.length} + badgeContent={paroles.length} color='primary' > @@ -105,7 +105,7 @@ export default function MizikBadjMeni({teks}) { handleListKeyDown()}> - {sortedTeks.map(t => handleClick(t.slug)}>{t.tit})} + {sortedTeks.map(({id, attributes}) => handleClick(attributes.slug)}>{attributes.titre})} @@ -117,5 +117,5 @@ export default function MizikBadjMeni({teks}) { } MizikBadjMeni.propTypes = { - teks: PropTypes.array.isRequired + paroles: PropTypes.array.isRequired } diff --git a/components/awtis/mizik-lis.js b/components/awtis/mizik-lis.js index c54bfa8..5709591 100644 --- a/components/awtis/mizik-lis.js +++ b/components/awtis/mizik-lis.js @@ -27,7 +27,7 @@ const StyledList = styled(List)(( } })) -export default function MizikLis({meteEsMobilOuve, niAwtis, teks, slugTeksChwazi, meteSlugTeksChwazi}) { +export default function MizikLis({meteEsMobilOuve, niAwtis, paroles, slugTeksChwazi, meteSlugTeksChwazi}) { const router = useRouter() const handleClick = slug => { @@ -50,22 +50,22 @@ export default function MizikLis({meteEsMobilOuve, niAwtis, teks, slugTeksChwazi return ( - {teks.map(({slug, tit, awtis, published_at, okiMizikID, eksplisit}) => ( + {paroles.map(({id, attributes}) => ( handleClick(slug)} + id={attributes.slug} + selected={slugTeksChwazi === attributes.slug} + onClick={() => handleClick(attributes.slug)} > - alias)) : null} /> - {eksplisit && ( + attributes.alias)) : null} /> + {attributes.explicite && ( )} - {okiMizikID && ( + {attributes.okiMizikID && ( )} - {esBrandNew(published_at) && ( + {esBrandNew(attributes.publishedAt) && ( )} @@ -77,7 +77,7 @@ export default function MizikLis({meteEsMobilOuve, niAwtis, teks, slugTeksChwazi MizikLis.propTypes = { meteEsMobilOuve: PropTypes.func, niAwtis: PropTypes.bool, - teks: PropTypes.array.isRequired, + paroles: PropTypes.array.isRequired, slugTeksChwazi: PropTypes.string, meteSlugTeksChwazi: PropTypes.func } diff --git a/components/teks/denye-teks.js b/components/teks/denye-teks.js index 15f5290..78cef36 100644 --- a/components/teks/denye-teks.js +++ b/components/teks/denye-teks.js @@ -30,7 +30,7 @@ export default function DenyeTeks({denyeTeks}) { )} - {denyeTeks.map(t => )} + {denyeTeks.map(t => )} diff --git a/components/teks/drawer-bar.js b/components/teks/drawer-bar.js index 167885d..467378b 100644 --- a/components/teks/drawer-bar.js +++ b/components/teks/drawer-bar.js @@ -44,15 +44,15 @@ const Root = styled('div')(( } })) -const getMizikFiltered = (teks, filter) => { - if (teks) { - const filteredTitre = teks.filter(({tit}) => { - const deburredTit = deburr(tit) +const getMizikFiltered = (paroles, filter) => { + if (paroles) { + const filteredTitre = paroles.filter(({attributes}) => { + const deburredTit = deburr(attributes.titre) return deburredTit.toLowerCase().includes(deburr(filter.toLowerCase())) }) - const filteredAlias = teks.filter(({awtis}) => { - const aliasLis = awtis.map(({alias}) => deburr(alias)).join(', ') + const filteredAlias = paroles.filter(({attributes}) => { + const aliasLis = attributes.artistes.data.map(({attributes}) => deburr(attributes.alias)).join(', ') return aliasLis.toLowerCase().includes(deburr(filter.toLowerCase())) }) @@ -60,13 +60,13 @@ const getMizikFiltered = (teks, filter) => { } } -export default function DrawerBar({meteEsMobilOuve, teks, anTeks}) { - const slug = anTeks ? anTeks.slug : null +export default function DrawerBar({meteEsMobilOuve, paroles, parole}) { + const slug = parole ? parole.slug : null const [search, setSearch] = useState('') const [slugTeksChwazi, meteSlugTeksChwazi] = useState(slug) - const mizikFiltered = getMizikFiltered(teks, search) + const mizikFiltered = getMizikFiltered(paroles, search) const handleSearch = event => { event.preventDefault() @@ -94,7 +94,7 @@ export default function DrawerBar({meteEsMobilOuve, teks, anTeks}) { @@ -105,11 +105,11 @@ export default function DrawerBar({meteEsMobilOuve, teks, anTeks}) { DrawerBar.propTypes = { meteEsMobilOuve: PropTypes.func, - teks: PropTypes.array.isRequired, - anTeks: PropTypes.object + paroles: PropTypes.array.isRequired, + parole: PropTypes.object } DrawerBar.defaultProps = { meteEsMobilOuve: null, - anTeks: null + parole: null } diff --git a/components/teks/lekte.js b/components/teks/lekte.js index 17a96af..d376d51 100644 --- a/components/teks/lekte.js +++ b/components/teks/lekte.js @@ -14,7 +14,7 @@ import Image from 'next/image' import {grey} from '@mui/material/colors' import {Link} from '@mui/material' -const apiUrl = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:1337' +const IMAGE_URL = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337' const Widget = styled('div')(({theme}) => ({ padding: 16, @@ -49,7 +49,7 @@ const TinyText = styled(Typography)({ letterSpacing: 0.2, }) -export default function Lekte({audio, url, teks}) { +export default function Lekte({audio, url, parole}) { const audioRef = useRef(new Audio(audio)) const intervalRef = useRef() const isReady = useRef(false) @@ -58,7 +58,7 @@ export default function Lekte({audio, url, teks}) { const [position, setPosition] = useState(0) const [volume, setVolume] = useState(100) const [isPlaying, setIsPlaying] = useState(false) - const awtis = teks.awtis.map(({alias}) => alias) + const awtis = parole.artistes.data.map(({attributes}) => attributes.alias) function formatDuration(value) { const minute = Math.floor(value / 60) @@ -139,10 +139,10 @@ export default function Lekte({audio, url, teks}) { {teks.tit} @@ -151,11 +151,11 @@ export default function Lekte({audio, url, teks}) { - {teks.tit} + {parole.titre} - {teks.lanne} + {parole.annee} @@ -263,5 +263,5 @@ export default function Lekte({audio, url, teks}) { Lekte.propTypes = { audio: PropTypes.string.isRequired, url: PropTypes.string.isRequired, - teks: PropTypes.object.isRequired + parole: PropTypes.object.isRequired } diff --git a/components/teks/oki-mizik.js b/components/teks/oki-mizik.js index aa21a9e..e3715d9 100644 --- a/components/teks/oki-mizik.js +++ b/components/teks/oki-mizik.js @@ -11,18 +11,18 @@ const DinamikLekte = dynamic( {ssr: false, loading: () => } ) -export default function OkiMizik({id, teks}) { +export default function OkiMizik({id, parole}) { const mizikStreamUrl = `${MIZIK_URL}/rest/stream?u=${MIZIK_API_USER}&p=${MIZIK_API_PASSWORD}&id=${id}` const detailsUrl = `${MIZIK_URL}/library/tracks/${id}` return ( - + ) } OkiMizik.propTypes = { id: PropTypes.number.isRequired, - teks: PropTypes.object.isRequired + parole: PropTypes.object.isRequired } diff --git a/components/teks/pataje.js b/components/teks/pataje.js index 52bfb66..428b414 100644 --- a/components/teks/pataje.js +++ b/components/teks/pataje.js @@ -43,15 +43,15 @@ const actions = [ {icon: , name: 'Copier le lien', code: 'copy'} ] -export default function Pataje({teks, setError, setSuccess}) { - const {tit, awtis, slug} = teks +export default function Pataje({parole, setError, setSuccess}) { + const {titre, artistes, slug} = parole const [open, setOpen] = useState(false) const patajeUrl = `${SITE_URL}/paroles/${slug}` - const alias = awtis.map(({alias}) => alias) + const alias = artistes.data.map(({attributes}) => attributes.alias) const renderAwtis = new Intl.ListFormat('fr').format(alias) - const text = teks.user || teks.userAdmin ? `${renderAwtis} - ${tit} (Paroles et Traductions) - (texte soumis par ${teks?.user?.username || teks.userAdmin})` : `${renderAwtis} - ${tit} (Paroles et Traductions)` + const text = parole.user || parole.userAdmin ? `${renderAwtis} - ${titre} (Paroles et Traductions) - (texte soumis par ${parole?.user?.username || parole.userAdmin})` : `${renderAwtis} - ${parole} (Paroles et Traductions)` const handleClose = () => { setOpen(false) @@ -123,7 +123,7 @@ export default function Pataje({teks, setError, setSuccess}) { } Pataje.propTypes = { - teks: PropTypes.object.isRequired, + parole: PropTypes.object.isRequired, setError: PropTypes.func.isRequired, setSuccess: PropTypes.func.isRequired } diff --git a/components/teks/teks-drawer.js b/components/teks/teks-drawer.js index c2c3d48..95bd24f 100644 --- a/components/teks/teks-drawer.js +++ b/components/teks/teks-drawer.js @@ -117,7 +117,7 @@ const Root = styled('div')(( const drawerWidth = 240 -export default function TeksDrawer({teks, anTeks, komante, denyeTeks}) { +export default function TeksDrawer({paroles, parole, paroleId, commentaires, denyeTeks}) { const theme = useTheme() const [esMobilOuve, meteEsMobilOuve] = useState(false) const [open, setOpen] = useState(false) @@ -161,21 +161,21 @@ export default function TeksDrawer({teks, anTeks, komante, denyeTeks}) { > - {anTeks ? ( + {parole ? ( <> - {anTeks.lyen && anTeks.lyen.length > 0 && ( + {parole.streamVideo && parole.streamVideo.length > 0 && (
- +
)} - {anTeks.kouteyAchtey && anTeks.kouteyAchtey.length > 0 && ( + {parole.streamVideo && parole.streamVideo.length > 0 && (
- +
)} @@ -201,7 +201,7 @@ export default function TeksDrawer({teks, anTeks, komante, denyeTeks}) { }} onClose={handleDrawerToggle} > - + @@ -212,15 +212,16 @@ export default function TeksDrawer({teks, anTeks, komante, denyeTeks}) { }} variant='permanent' > - +
- {anTeks ? ( + {parole ? ( {titre} - {teks.eksplisit && ( + {parole.eksplisit && ( )} - {teks.user && ( + {parole.user && ( <> - (texte soumis par {teks.user.username}) + (texte soumis par {parole.user.username}) )} - {teks.userAdmin && !teks.user && ( + {parole.userAdmin && !parole.user && ( <> - (texte soumis par {teks.userAdmin}) + (texte soumis par {parole.userAdmin}) )} @@ -92,5 +92,5 @@ export default function TeksKat({teks}) { } TeksKat.propTypes = { - teks: PropTypes.object.isRequired + parole: PropTypes.object.isRequired } diff --git a/components/teks/teks.js b/components/teks/teks.js index de5aaa1..cb5a4ef 100644 --- a/components/teks/teks.js +++ b/components/teks/teks.js @@ -66,30 +66,30 @@ const Root = styled('div')(( } })) -const langToArray = anTeks => { +const langToArray = parole => { const langArray = [] - if (anTeks && anTeks.tradiksyon) { - const {francais, english, espagnol, deutsch, italiano} = anTeks.tradiksyon + if (parole && parole.traductions) { + const {francais, anglais, espagnol, allemand, italien} = parole.traductions if (francais) { langArray.push({title: 'Traduction', flag: 'fr', lang: francais}) } - if (english) { - langArray.push({title: 'Translation', flag: 'en', lang: english}) + if (anglais) { + langArray.push({title: 'Translation', flag: 'en', lang: anglais}) } if (espagnol) { langArray.push({title: 'Traducción', flag: 'es', lang: espagnol}) } - if (deutsch) { - langArray.push({title: 'Übersetzung', flag: 'de', lang: deutsch}) + if (allemand) { + langArray.push({title: 'Übersetzung', flag: 'de', lang: allemand}) } - if (italiano) { - langArray.push({title: 'Traduzione', flag: 'it', lang: italiano}) + if (italien) { + langArray.push({title: 'Traduzione', flag: 'it', lang: italien}) } } @@ -120,15 +120,15 @@ const Alert = forwardRef(function Alert(props, ref) { const ExplicitTooltip = Tooltip -export default function Teks({anTeks, komante, open, success, error, setSuccess, setError, handleClose}) { +export default function Teks({parole, paroleId, commentaires, open, success, error, setSuccess, setError, handleClose}) { const isMobile = useMediaQuery('(max-width:800px)') - const langArray = langToArray(anTeks) - const awtis = anTeks.awtis.map(({alias}) => alias) + const langArray = langToArray(parole) + const awtis = parole.artistes.data.map(({attributes}) => attributes.alias) return (
- +
@@ -136,8 +136,8 @@ export default function Teks({anTeks, komante, open, success, error, setSuccess, {new Intl.ListFormat('fr').format(awtis)} - {anTeks.tit} ({anTeks?.lanne}) - {anTeks.eksplisit && ( + {parole.titre} ({parole?.annee}) + {parole.explicite && ( - {komante && ( - + {commentaires && ( + )} - {anTeks.user && ( + {parole?.user?.data && ( - texte soumis par {anTeks.user.username} + texte soumis par {parole.user.data.attributes.username} )} - {anTeks.userAdmin && !anTeks.user && ( + {parole.userAdmin && !parole.user && ( - texte soumis par {anTeks.userAdmin} + texte soumis par {parole.userAdmin} )} - {(anTeks.okiMizikID || anTeks.kouteyAchtey.length > 0) && ( + {(parole.okiMizikID || parole.streamAudio.length > 0) && ( - + )} - {anTeks.okiMizikID && ( - + {parole.okiMizikID && ( + )} 0 ? 6 : null}> @@ -182,7 +182,7 @@ export default function Teks({anTeks, komante, open, success, error, setSuccess, Transcription - {formatJsonString(anTeks.transkripsyon)} + {formatJsonString(parole.transcription)} @@ -242,8 +242,9 @@ export default function Teks({anTeks, komante, open, success, error, setSuccess, } Teks.propTypes = { - anTeks: PropTypes.object.isRequired, - komante: PropTypes.array, + parole: PropTypes.object.isRequired, + paroleId: PropTypes.number.isRequired, + commentaires: PropTypes.array, open: PropTypes.bool.isRequired, success: PropTypes.string, error: PropTypes.string, @@ -253,7 +254,7 @@ Teks.propTypes = { } Teks.defaultProps = { - komante: null, + commentaires: null, success: '', error: '' } diff --git a/components/teks/vwe-koute-achte.js b/components/teks/vwe-koute-achte.js index 690b325..b9a89b7 100644 --- a/components/teks/vwe-koute-achte.js +++ b/components/teks/vwe-koute-achte.js @@ -49,22 +49,22 @@ const vweyIcons = { Dailymotion: , Lbry: , Rumble: , - Peertube: + Gadé: } -export default function VweKouteAchte({anTeks, niVideyo, niOdyo}) { +export default function VweKouteAchte({parole, niVideyo, niOdyo}) { const [ouve, meteOuve] = useState(false) - const {kouteyAchtey, lyen} = anTeks + const {streamAudio, streamVideo} = parole - const kouteyAchteyActions = kouteyAchtey.map(({boutik, url}) => ({ - icon: kouteyAchteyIcons[boutik], - name: boutik, + const kouteyAchteyActions = streamAudio.map(({plateforme, url}) => ({ + icon: kouteyAchteyIcons[plateforme], + name: plateforme, link: url })) - const vweyActions = lyen.map(({url, sit}) => ({ - icon: vweyIcons[sit], - name: sit, + const vweyActions = streamVideo.map(({plateforme, url}) => ({ + icon: vweyIcons[plateforme], + name: plateforme, link: url })) @@ -115,7 +115,7 @@ export default function VweKouteAchte({anTeks, niVideyo, niOdyo}) { } VweKouteAchte.propTypes = { - anTeks: PropTypes.object.isRequired, + parole: PropTypes.object.isRequired, niVideyo: PropTypes.bool, niOdyo: PropTypes.bool } diff --git a/pages/paroles/[slug].js b/pages/paroles/[slug].js index 8486fa9..d3f595f 100644 --- a/pages/paroles/[slug].js +++ b/pages/paroles/[slug].js @@ -1,6 +1,6 @@ import PropTypes from 'prop-types' -import {jwennTeksEpiSlug, jwennTeks, jwennKomanteEpiTeksId} from '../../lib/oki-api' +import {jwennTeks, jwennKomanteEpiTeksId} from '../../lib/oki-api' import TeksDrawer from '../../components/teks/teks-drawer' import HeadLayout from '../../components/head-layout' @@ -8,41 +8,41 @@ import HeadLayout from '../../components/head-layout' import Custom500 from '../500' import Custom404 from '../404' -const jwennAwtis = awtis => { - const alias = awtis.map(({alias}) => alias) +const jwennAwtis = artiste => { + const alias = artiste.data.map(({attributes}) => attributes.alias) return new Intl.ListFormat('fr').format(alias) } -export default function SlugTeks({hasError, errorMessage, teks, anTeks, slug, komante}) { +export default function SlugTeks({hasError, errorMessage, paroles, parole, slug, commentaires}) { if (hasError) { console.log('⚠️ error :', errorMessage) return } - if (!anTeks) { + if (!parole) { return } - const awtis = anTeks.awtis.length === 1 ? anTeks.awtis[0].alias : jwennAwtis(anTeks.awtis) - const {kouveti} = anTeks + const artistes = parole.attributes.artistes.length === 1 ? parole.attributes.artistes[0].data.attributes.alias : jwennAwtis(parole.attributes.artistes) + const {couverture} = parole.attributes const formatKouveti = () => { - if (!kouveti) { + if (!couverture) { return null } - if (kouveti && kouveti.formats && kouveti.formats.large) { - return kouveti.formats.large + if (couverture && couverture.formats && couverture.formats.large) { + return couverture.formats.large } - if (kouveti && kouveti.formats && kouveti.formats.medium) { - return kouveti.formats.medium + if (couverture && couverture.formats && couverture.formats.medium) { + return couverture.formats.medium } - if (kouveti && kouveti.formats && kouveti.formats.small) { - return kouveti.formats.small + if (couverture && couverture.formats && couverture.formats.small) { + return couverture.formats.small } - return kouveti + return couverture } return ( @@ -51,25 +51,26 @@ export default function SlugTeks({hasError, errorMessage, teks, anTeks, slug, ko imageWidth={formatKouveti() ? formatKouveti().width : null} imageHeight={formatKouveti() ? formatKouveti().height : null} imageMime={formatKouveti() ? formatKouveti().mime : null} - title={`${awtis} - ${anTeks.tit} | Paroles et Traductions`} tab={1} slug={`paroles/${slug}`} + title={`${artistes} - ${parole.attributes.titre} | Paroles et Traductions`} tab={1} slug={`paroles/${slug}`} > - + ) } export async function getServerSideProps({query}) { const {slug} = query - let teks - let anTeks + let paroles + let parole let hasError let errorMessage - let komante + let commentaires try { - teks = await jwennTeks() - anTeks = await jwennTeksEpiSlug(slug) - komante = await jwennKomanteEpiTeksId(anTeks?.id) + paroles = await jwennTeks() + parole = paroles.find(({attributes}) => attributes.slug === slug) + commentaires = paroles.map(({attributes}) => attributes.commentaires) + commentaires = await jwennKomanteEpiTeksId(parole?.id) } catch (error) { errorMessage = error hasError = true @@ -79,10 +80,10 @@ export async function getServerSideProps({query}) { props: { hasError: hasError || null, errorMessage: errorMessage ? errorMessage.message : null, - teks: teks || null, - anTeks: anTeks || null, + paroles: paroles || null, + parole: parole || null, slug, - komante: komante || null + commentaires: commentaires || null } } } @@ -90,16 +91,16 @@ export async function getServerSideProps({query}) { SlugTeks.defaultProps = { hasError: null, errorMessage: null, - teks: null, - anTeks: null, - komante: null + paroles: null, + parole: null, + commentaires: null } SlugTeks.propTypes = { hasError: PropTypes.bool, errorMessage: PropTypes.string, - teks: PropTypes.array, - anTeks: PropTypes.object, + paroles: PropTypes.array, + parole: PropTypes.object, slug: PropTypes.string.isRequired, - komante: PropTypes.array + commentaires: PropTypes.array } diff --git a/pages/paroles/index.js b/pages/paroles/index.js index c5e7037..ac56a58 100644 --- a/pages/paroles/index.js +++ b/pages/paroles/index.js @@ -7,7 +7,7 @@ import HeadLayout from '../../components/head-layout' import Custom500 from '../500' -export default function Teks({errorCode, errorMessage, teks, denyeTeks}) { +export default function Teks({errorCode, errorMessage, paroles, denyeTeks}) { if (errorCode) { console.log('⚠️ error', errorMessage) return @@ -15,19 +15,19 @@ export default function Teks({errorCode, errorMessage, teks, denyeTeks}) { return ( - + ) } export async function getServerSideProps() { - let teks + let paroles let denyeTeks let hasError let errorMessage try { - teks = await jwennTeks() + paroles = await jwennTeks() denyeTeks = await jwennDenyeTeks() } catch (error) { errorMessage = error.message @@ -38,7 +38,7 @@ export async function getServerSideProps() { props: { errorCode: hasError || null, errorMessage: errorMessage || null, - teks: teks || null, + paroles: paroles || null, denyeTeks: denyeTeks || null } } @@ -47,13 +47,13 @@ export async function getServerSideProps() { Teks.defaultProps = { errorCode: null, errorMessage: null, - teks: null, + paroles: null, denyeTeks: null } Teks.propTypes = { errorCode: PropTypes.bool, errorMessage: PropTypes.string, - teks: PropTypes.array, + paroles: PropTypes.array, denyeTeks: PropTypes.array }