2 Commits
Author SHA1 Message Date
cedric 7234c1408f chore: relever pageSize de 100 à 200 sur les listes paginées
Déploiement FRONT BETA / check (push) Successful in 2m3s
Déploiement FRONT PROD / check (push) Successful in 2m5s
Déploiement FRONT BETA / deploy (push) Successful in 21s
Déploiement FRONT PROD / deploy (push) Successful in 20s
2026-07-03 22:22:22 +04:00
cedric e4d31b0243 fix: icônes partage/streaming via contexte au lieu du layout 2026-07-03 22:22:11 +04:00
5 changed files with 44 additions and 13 deletions
+6 -7
View File
@@ -1,7 +1,8 @@
import {Suspense} from 'react'
import {notFound} from 'next/navigation'
import {jwennTeks, jwennTeksEpiSlug} from '../../lib/oki-api'
import {jwennTeks} from '../../lib/oki-api'
import TeksDrawer from '../../components/teks/teks-drawer'
import {CurrentTrackProvider} from '../../components/teks/current-track-context'
import Loading from './loading'
const siteName = process.env.NEXT_PUBLIC_SITE_NAME || 'PAWÒL-NU. Paroles et traductions.'
@@ -49,19 +50,17 @@ async function jwennDotDone() {
return teks
}
export default async function PawolLayout({children, params}) {
const {slug} = await params
export default async function PawolLayout({children}) {
const teks = await jwennDotDone()
const parole = slug ? await jwennTeksEpiSlug(slug) : null
return (
<>
<CurrentTrackProvider>
<Suspense fallback={<Loading />}>
<TeksDrawer paroles={teks} parole={parole} />
<TeksDrawer paroles={teks} />
</Suspense>
<section>
{children}
</section>
</>
</CurrentTrackProvider>
)
}
+24
View File
@@ -0,0 +1,24 @@
'use client'
import {createContext, useContext, useState} from 'react'
import PropTypes from 'prop-types'
const CurrentTrackContext = createContext([null, () => {}])
export function CurrentTrackProvider({children}) {
const state = useState(null)
return (
<CurrentTrackContext.Provider value={state}>
{children}
</CurrentTrackContext.Provider>
)
}
export function useCurrentTrack() {
return useContext(CurrentTrackContext)
}
CurrentTrackProvider.propTypes = {
children: PropTypes.node.isRequired
}
+3 -2
View File
@@ -18,6 +18,7 @@ import VweKouteAchte from './vwe-koute-achte'
import DrawerBar from './drawer-bar'
import Pataje from './pataje'
import KaraokeModal from './karaoke-modal'
import {useCurrentTrack} from './current-track-context'
const drawerWidth = 240
@@ -25,7 +26,8 @@ const Alert = forwardRef(function Alert(props, ref) {
return <MuiAlert ref={ref} elevation={6} variant='filled' {...props} />
})
export default function TeksDrawer({paroles, parole}) {
export default function TeksDrawer({paroles}) {
const [parole] = useCurrentTrack()
const [mobileOpen, setMobileOpen] = useState(false)
const [open, setOpen] = useState(false)
const [error, setError] = useState('')
@@ -157,5 +159,4 @@ export default function TeksDrawer({paroles, parole}) {
TeksDrawer.propTypes = {
paroles: PropTypes.array,
parole: PropTypes.object,
}
+7
View File
@@ -28,6 +28,7 @@ import {StreamButton} from '../streaming-buttons'
import EntegreMizik from './entegre-mizik'
import OkiMizik from './oki-mizik'
import DiferansDialog from './diferans-dialog'
import {useCurrentTrack} from './current-track-context'
const IMAGE_URL = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337'
@@ -116,6 +117,7 @@ export default function Teks({parole}) {
const enhancedAliases = getAlias(parole.artistes, parole.prioriteArtistes, true)
const coverFmt = formatKuveti(parole.couverture)
const [tab, setTab] = useState(0)
const [, setCurrentTrack] = useCurrentTrack()
useEffect(() => {
const isBrowser = () => typeof window !== 'undefined'
@@ -126,6 +128,11 @@ export default function Teks({parole}) {
window.scrollTo({top: 0, behavior: 'smooth'})
}, [])
useEffect(() => {
setCurrentTrack(parole)
return () => setCurrentTrack(null)
}, [parole, setCurrentTrack])
return (
<Root className={classes.container}>
<Box sx={{textAlign: 'center', marginTop: 12}}>
+4 -4
View File
@@ -133,7 +133,7 @@ export async function jwennToutAwtis() {
populate: ['photo'],
sort: ['alias:asc'],
pagination: {
pageSize: 100
pageSize: 200
}
}, {
encodeValuesOnly: true
@@ -155,7 +155,7 @@ export async function jwennTeks() {
},
sort: ['titre:asc'],
pagination: {
pageSize: 100
pageSize: 200
}
}, {
encodeValuesOnly: true
@@ -169,7 +169,7 @@ export async function jwennAwtisSlug() {
const query = qs.stringify({
sort: ['createdAt:desc'],
pagination: {
pageSize: 100
pageSize: 200
}
}, {
encodeValuesOnly: true
@@ -183,7 +183,7 @@ export async function jwennTeksSlug() {
const query = qs.stringify({
sort: ['createdAt:desc'],
pagination: {
pageSize: 100
pageSize: 200
}
}, {
encodeValuesOnly: true