diff --git a/README.md b/README.md
index 1f112ce..bfd4899 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Made with [Nextjs 14](https://nextjs.org/) and [Material-UI 6](https://material-ui.com/)
+# Made with [Nextjs 16](https://nextjs.org/) and [Material-UI 9](https://material-ui.com/)
## Prérequis
-- Node >= 16
+- Node >= 20
- [API](https://codeberg.org/OKI/api.oki.re)
## Variables d'environement
@@ -26,7 +26,7 @@ yarn && yarn dev
## License
-Copyright (C) 2020 - 2024 Cédric Famibelle-Pronzola & ORGANISATION KA INTERNATIONALE (OKI)
+Copyright (C) 2020 - 2026 Cédric Famibelle-Pronzola & ORGANISATION KA INTERNATIONALE (OKI)
### FR
diff --git a/app/api/auth/[...nextauth]/route.js b/app/api/auth/[...nextauth]/route.js
index 462d455..c44b9d9 100644
--- a/app/api/auth/[...nextauth]/route.js
+++ b/app/api/auth/[...nextauth]/route.js
@@ -42,7 +42,8 @@ export const { handlers, auth } = NextAuth({
})
],
session: {
- strategy: "jwt"
+ strategy: "jwt",
+ trustHost: true
},
secret: process.env.NEXT_PUBLIC_JWT_SECRET,
callbacks: {
diff --git a/app/awtis/[slug]/page.js b/app/awtis/[slug]/page.js
index 0f743d3..7de830a 100644
--- a/app/awtis/[slug]/page.js
+++ b/app/awtis/[slug]/page.js
@@ -10,13 +10,13 @@ const apiUrl = process.env.NEXT_PUBLIC_API_URL_ROOT || 'http://localhost:1337'
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000'
async function jwennAwtis(slug) {
- const awtis = await jwennAwtisEpiSlug(slug)
+ const {data} = await jwennAwtisEpiSlug(slug)
- if (!awtis) {
+ if (!data) {
notFound()
}
- return awtis
+ return data
}
export async function generateMetadata(props) {
@@ -24,11 +24,11 @@ export async function generateMetadata(props) {
const {slug} = params
const anAwtis = await jwennAwtis(slug)
- const title = `OKI | ${anAwtis.attributes.alias} - Paroles et Traductions`
- const description = `${anAwtis.attributes.alias}${anAwtis?.attributes?.biographie ? ` : ${anAwtis?.attributes?.biographie.slice(0, 100)}...` : ''}`
+ const title = `OKI | ${anAwtis.alias} - Paroles et Traductions`
+ const description = `${anAwtis.alias}${anAwtis?.biographie ? ` : ${anAwtis?.biographie.slice(0, 100)}...` : ''}`
const url = `${siteUrl}/awtis/${slug}`
- const {photo} = anAwtis.attributes
+ const {photo} = anAwtis
const kuvetiFormat = formatKuveti(photo)
return {
@@ -57,7 +57,7 @@ export async function generateMetadata(props) {
creator: '@OrganisationKA',
images: {
url: `${apiUrl}${kuvetiFormat?.url}`,
- alt: `Photo de ${anAwtis.attributes.alias}`,
+ alt: `Photo de ${anAwtis.alias}`,
}
}
}
@@ -68,14 +68,14 @@ export default async function AwtisPajSlug(props) {
const {slug} = params
const anAwtis = await jwennAwtis(slug)
- const {photo} = anAwtis.attributes
+ const {photo} = anAwtis
const kuvetiFormat = formatKuveti(photo)
const jsonLd = {
'@context': 'http://schema.org',
'@type': 'Person',
- '@id': anAwtis.attributes.musicBrainzUrl || undefined,
- name: anAwtis.attributes.alias,
+ '@id': anAwtis.musicBrainzUrl || undefined,
+ name: anAwtis.alias,
url: `${siteUrl}/awtis/${slug}`,
image: kuvetiFormat?.url ? `${apiUrl}${kuvetiFormat.url}` : undefined
}
@@ -84,7 +84,7 @@ export default async function AwtisPajSlug(props) {
<>
-
+
diff --git a/app/awtis/page.js b/app/awtis/page.js
index 83b6fa3..4137b44 100644
--- a/app/awtis/page.js
+++ b/app/awtis/page.js
@@ -1,7 +1,7 @@
import {notFound} from 'next/navigation'
import Box from '@mui/material/Box'
import Container from '@mui/material/Container'
-import Grid from '@mui/material/Grid2'
+import Grid from '@mui/material/Grid'
import ChecheAwtis from '../../components/awtis/cheche-awtis'
import AwtisKat from '../../components/awtis/awtis-kat'
@@ -48,14 +48,14 @@ async function jwennDone(paj) {
notFound()
}
- const awtisPouChakPaj = await jwennAwtisPajinasyon(pajParsed)
- const pajTotal = Math.ceil(awtisPouChakPaj.meta.pagination.total / awtisPouChakPaj.meta.pagination.limit)
+ const {data, meta} = await jwennAwtisPajinasyon(pajParsed)
+ const pajTotal = Math.ceil(meta.pagination.total / meta.pagination.limit)
if (pajParsed > pajTotal || pajParsed < 1) {
notFound()
}
- return {pajTotal, awtisPouChakPaj, pajParsed}
+ return {pajTotal, awtisPouChakPaj: data, pajParsed}
}
export default async function AwitsPaj(props) {
@@ -69,7 +69,7 @@ export default async function AwitsPaj(props) {
- {awtisPouChakPaj.data.map(artiste => )}
+ {awtisPouChakPaj.map(artiste => )}
diff --git a/app/error.js b/app/error.js
index c0f4fe8..7d282f5 100644
--- a/app/error.js
+++ b/app/error.js
@@ -11,7 +11,8 @@ export default function Error() {
width={192}
height={192}
src='/logo-192x192.png'
- quality={20}
+ quality={[20, 75]}
+ loading='eager'
/>
500 - Erreur du serveur 😭Nous mettons tout en œuvre pour rétablir le site dans les plus brefs délais 💪🏾
diff --git a/app/layout.js b/app/layout.js
index 101f75e..906f645 100644
--- a/app/layout.js
+++ b/app/layout.js
@@ -1,4 +1,4 @@
-import NextTopLoader from 'nextjs-toploader'
+import TopLoader from '../components/top-loader'
import Navigasyon from '../components/navigasyon'
import AuthProvider from './auth-provider'
import ThemeRegistry from './theme-registy'
@@ -55,7 +55,7 @@ export default async function RootLayout({children, Session}) {
return (
-
+
diff --git a/app/not-found.js b/app/not-found.js
index b45ff7b..407ef73 100644
--- a/app/not-found.js
+++ b/app/not-found.js
@@ -11,7 +11,8 @@ export default function NotFound() {
width={192}
height={192}
src='/logo-192x192.png'
- quality={20}
+ quality={[20, 75]}
+ loading='eager'
/>
404 - La page n’existe pas 😔
diff --git a/app/paroles/[slug]/page.js b/app/paroles/[slug]/page.js
index 1a51a3e..8353fc5 100644
--- a/app/paroles/[slug]/page.js
+++ b/app/paroles/[slug]/page.js
@@ -24,14 +24,14 @@ export async function generateMetadata(props) {
const params = await props.params;
const {slug} = params
- const anTeks = await jwennAnTeks(slug)
+ const anTeks = await jwennAnTeks(slug)
- const awtis = anTeks.attributes.artistes.length === 1 ? anTeks.attributes.artistes[0].data.attributes.alias : getAlias(anTeks.attributes.artistes, anTeks.attributes.prioriteArtistes)
- const title = `OKI | ${awtis} - ${anTeks.attributes.titre} | Paroles et Traductions`
- const description = `Paroles de « ${anTeks?.attributes?.titre} » : ${anTeks?.attributes?.transcription.slice(0, 100)}...`
+ const awtis = anTeks?.artistes?.length === 1 ? anTeks?.artistes[0].alias : getAlias(anTeks.artistes, anTeks.prioriteArtistes)
+ const title = `OKI | ${awtis} - ${anTeks.titre} | Paroles et Traductions`
+ const description = `Paroles de « ${anTeks?.titre} » : ${anTeks?.transcription.slice(0, 100)}...`
const url = `${siteUrl}/paroles/${slug}`
- const {couverture} = anTeks.attributes
+ const {couverture} = anTeks
const kuvetiFormat = formatKuveti(couverture)
return {
@@ -71,30 +71,29 @@ export default async function AnPawolPaj(props) {
const {slug} = params
const anTeks = await jwennAnTeks(slug)
- const {couverture} = anTeks.attributes
- const teksKuvetiFormat = formatKuveti(couverture)
+ const {couverture} = anTeks
+ const teksKuvetiFormat = formatKuveti(couverture)
const jsonLd = {
'@context': 'http://schema.org',
'@type': 'MusicRecording',
- '@id': anTeks.attributes.musicBrainzUrl || undefined,
- name: anTeks.attributes.titre,
+ '@id': anTeks.musicBrainzUrl || undefined,
+ name: anTeks.titre,
url: `${siteUrl}/paroles/${slug}`,
image: teksKuvetiFormat?.url ? `${apiUrl}${teksKuvetiFormat?.url}` : undefined,
- thumbnailUrl: couverture?.data?.attributes?.formats?.thumbnail?.url ? `${apiUrl}${couverture.data.attributes.formats.thumbnail.url}` : undefined,
- byArtist: anTeks.attributes.artistes.data.map(({attributes}) => {
- const {photo} = attributes
+ thumbnailUrl: couverture?.formats?.thumbnail?.url ? `${apiUrl}${couverture.formats.thumbnail.url}` : undefined,
+ byArtist: anTeks.artistes.map(({photo, musicBrainzUrl, alias, slug}) => {
const kuvetiFormat = formatKuveti(photo)
return {
'@type': 'Person',
- '@id': attributes.musicBrainzUrl || undefined,
- name: attributes.alias,
- url: `${siteUrl}/awtis/${attributes.slug}`,
+ '@id': musicBrainzUrl || undefined,
+ name: alias,
+ url: `${siteUrl}/awtis/${slug}`,
image: kuvetiFormat?.url ? `${apiUrl}${kuvetiFormat?.url}` : undefined
}
}),
- datePublished: anTeks.attributes?.annee
+ datePublished: anTeks?.annee
}
return (
@@ -104,7 +103,7 @@ export default async function AnPawolPaj(props) {
component='main'
sx={{flexGrow: 1, p: 2, mt: 2}}
>
-
+
diff --git a/app/sipote/page.js b/app/sipote/page.js
index b2bdcf6..427436f 100644
--- a/app/sipote/page.js
+++ b/app/sipote/page.js
@@ -11,10 +11,10 @@ export default function Sipote() {
const [paymentMethod, setPaymentMethod] = useState(0)
return (
-
+
-
+
Soutenir ORGANISATION KA INTERNATIONALE !
diff --git a/components/akey/aso.js b/components/akey/aso.js
index f331a21..f0a6dbc 100644
--- a/components/akey/aso.js
+++ b/components/akey/aso.js
@@ -3,7 +3,7 @@ import {Container, Link, Typography} from '@mui/material'
export default function Aso() {
return (
-
+
Qui sommes-nous ?
diff --git a/components/akey/index.js b/components/akey/index.js
index 286c65c..cd5a50b 100644
--- a/components/akey/index.js
+++ b/components/akey/index.js
@@ -2,14 +2,14 @@ import PropTypes from 'prop-types'
import Container from '@mui/material/Container'
import Typography from '@mui/material/Typography'
import Box from '@mui/material/Box'
-import Grid from '@mui/material/Grid2'
+import Grid from '@mui/material/Grid'
import Button from '@mui/material/Button'
import Image from 'next/image'
import Link from 'next/link'
export default function Akey({logo}) {
return (
-
+
@@ -22,6 +22,7 @@ export default function Akey({logo}) {
height={32}
alt='OKI logo'
src={logo}
+ loading='eager'
/>
@@ -32,8 +33,8 @@ export default function Akey({logo}) {
-
-
+
+ }
- secondary={niAwtis ? getAlias(anPawol.attributes.artistes, anPawol.attributes.prioriteArtistes) : null} />
+ primary={{anPawol.titre}}
+ secondary={niAwtis ? getAlias(anPawol.artistes, anPawol.prioriteArtistes) : null} />
- {anPawol.attributes.creativeCommons && (
+ {anPawol.creativeCommons && (
)}
- {esBrandNew(anPawol.attributes.publishedAt) && (
+ {esBrandNew(anPawol.publishedAt) && (
)}
- {anPawol.attributes.explicitLyrics && (
+ {anPawol.explicitLyrics && (
)}
- {anPawol.attributes.okiMizikID && (
+ {anPawol.okiMizikID && (
)}
diff --git a/components/awtis/pajinasyon.js b/components/awtis/pajinasyon.js
index b3b9556..fc21021 100644
--- a/components/awtis/pajinasyon.js
+++ b/components/awtis/pajinasyon.js
@@ -3,7 +3,7 @@
import PropTypes from 'prop-types'
import {useRouter} from 'next/navigation'
import Pagination from '@mui/material/Pagination'
-import Grid from '@mui/material/Grid2'
+import Grid from '@mui/material/Grid'
export default function Pajinasyon({pajTotal, paj}) {
const router = useRouter()
@@ -14,7 +14,7 @@ export default function Pajinasyon({pajTotal, paj}) {
}
return (
-
+
)
diff --git a/components/cgu/index.js b/components/cgu/index.js
index df17db1..0f78a5a 100644
--- a/components/cgu/index.js
+++ b/components/cgu/index.js
@@ -21,25 +21,25 @@ export default function Cgu() {
Définitions
-
+ Prestations et Services : oki.re met à disposition :
-
+ Contenu : Ensemble des éléments constituants l’information présente sur le site, notamment textes – images – vidéos.
-
+ Informations utilisateurs : Ci après dénommé « Information (s) »
qui correspondent à l’ensemble des données personnelles susceptibles d’être détenues par
oki.re pour la gestion de votre compte, et à des fins d’analyses et de statistiques.
-
+ Utilisateur : Internaute, utilisant le site susnommé.
-
+ Utilisateur enregistré: Internaute ayant compte utilisateur, utilisant le site susnommé.
@@ -47,7 +47,7 @@ export default function Cgu() {
Informations personnelles : « Les informations qui permettent, sous quelque forme que ce soit, directement ou non,
l’identification des personnes physiques auxquelles elles s’appliquent » (article 4 de la loi n° 78-17 du 6 janvier 1978).
-
+
Les termes « données à caractère personnel », « personne concernée », « sous traitant » et « données sensibles » ont le sens défini par le Règlement
Général sur la Protection des Données (RGPD : n° 2016-679)
@@ -56,18 +56,18 @@ export default function Cgu() {
1. Présentation du site internet
-
+
En vertu de l’article 6 de la loi n° 2004-575 du 21 juin 2004 pour la confiance dans l’économie numérique, il est précisé aux utilisateurs du site internet
oki.re l’identité des différents intervenants dans le cadre de sa réalisation et de son suivi :
-
+ Propriétaire : ORGANISATION KA INTERNATIONALE (Association loi 1901)
-
+ Responsable publication : ORGANISATION KA INTERNATIONALE – kontak@o-k-i.net
-
+
Le responsable publication est une personne morale
@@ -114,7 +114,7 @@ export default function Cgu() {
Délégué à la protection des données : ORGANISATION KA INTERNATIONALE – kontak@o-k-i.net
-
+
Ces mentions légales RGPD sont issues du générateur gratuit de mentions légales pour un site internet (orson.io).
@@ -122,13 +122,13 @@ export default function Cgu() {
2. Conditions générales d’utilisation du site et des services proposés.
-
+
L’utilisation du site oki.re implique l’acceptation pleine et entière des conditions générales d’utilisation ci-après décrites.
Ces conditions d’utilisation sont susceptibles d’être modifiées ou complétées à tout moment, les utilisateurs du site oki.re
sont donc invités à les consulter de manière régulière.
-
+
Ce site internet est normalement accessible à tout moment aux utilisateurs. Une interruption pour raison de maintenance technique peut être toutefois
décidée par oki.re, qui s’efforcera alors de communiquer préalablement aux utilisateurs les dates et heures de l’intervention.
Le site web oki.re est mis à jour régulièrement par ORGANISATION KA INTERNATIONALE. De la même façon, les mentions légales peuvent être
@@ -139,13 +139,13 @@ export default function Cgu() {
3. Description des services fournis
-
+ oki.re s’efforce de fournir sur le site, des informations
aussi précises que possible. Toutefois, il ne pourra être tenu responsable des oublis, des inexactitudes et des carences dans la mise à jour, qu’elles soient de son fait ou du fait
des tiers partenaires qui lui fournissent ces informations.
-
+
Toutes les informations indiquées sur le site oki.re sont données à titre indicatif,
et sont susceptibles d’évoluer. Par ailleurs, les renseignements figurant sur le site oki.re ne sont pas exhaustifs.
Ils sont donnés sous réserve de modifications ayant été apportées depuis leur mise en ligne.
@@ -155,7 +155,7 @@ export default function Cgu() {
4. Limitations contractuelles sur les données techniques
-
+
Le site utilise la technologie JavaScript.
Le site Internet ne pourra être tenu responsable de dommages matériels liés à l’utilisation du site. De plus, l’utilisateur du site s’engage à accéder au site en utilisant un matériel récent,
ne contenant pas de virus et avec un navigateur de dernière génération mis-à-jour.
@@ -163,14 +163,14 @@ export default function Cgu() {
Règlement Général sur la Protection des Données (RGPD : n° 2016-679).
-
+
L’objectif est d’apporter une prestation qui assure le meilleur taux d’accessibilité.
L’hébergeur assure la continuité de son service 24 Heures sur 24, tous les jours de l’année. Il se réserve néanmoins la possibilité d’interrompre le service d’hébergement
pour les durées les plus courtes possibles notamment à des fins de maintenance, d’amélioration de ses infrastructures, de défaillance de ses infrastructures ou si les
Prestations et Services génèrent un trafic réputé anormal.
-
+ oki.re et l’hébergeur ne pourront être tenus responsables en cas de dysfonctionnement du réseau Internet,
des lignes téléphoniques ou du matériel informatique et de téléphonie lié notamment à l’encombrement du réseau empêchant l’accès au serveur.
@@ -179,12 +179,12 @@ export default function Cgu() {
5. Limitations de responsabilité
-
+ oki.re agit en tant qu’éditeur du site. oki.re est responsable
de la qualité et de la véracité du Contenu qu’il publie.
-
+ oki.re ne pourra être tenu responsable des dommages directs et indirects causés au matériel de l’utilisateur,
lors de l’accès au site internet oki.re, et résultant soit de l’utilisation d’un matériel
ne répondant pas aux spécifications indiquées au point 4, soit de l’apparition d’un bug ou d’une incompatibilité.
@@ -198,12 +198,12 @@ export default function Cgu() {
6.1 Responsables de la collecte des données personnelles
-
+
Pour les données personnelles collectées dans le cadre de la création du compte personnel de l’utilisateur et de sa navigation sur le site
le responsable du traitement des données personnelles est : ORGANISATION KA INTERNATIONALE. oki.re.
-
+
En tant que responsable du traitement des données qu’il collecte, oki.re s’engage à respecter le cadre des dispositions légales en vigueur.
Chaque fois que oki.re traite des Données Personnelles, oki.re prend toutes les mesures raisonnables
pour s’assurer de l’exactitude et de la pertinence des Données Personnelles au regard des finalités pour lesquelles oki.re les traite.
@@ -298,22 +298,22 @@ export default function Cgu() {
-
+
Dès que oki.re a connaissance du décès d’un Utilisateur et à défaut d’instructions de sa part, oki.re s’engage à détruire
ses données, sauf si leur conservation s’avère nécessaire à des fins probatoires ou pour répondre à une obligation légale.
-
+
Si l’Utilisateur souhaite savoir comment oki.re utilise ses Données Personnelles, demander à les rectifier ou s’oppose à leur traitement,
l’Utilisateur peut contacter oki.re par courriel à l’adresse suivante, kontak@o-k-i.net ou via XMPP à oki@xmpp.cz.
-
+
Dans ce cas, l’Utilisateur doit indiquer les Données Personnelles qu’il souhaiterait que oki.re corrige,
mette à jour ou supprime, en s’identifiant précisément avec une copie d’une pièce d’identité (carte d’identité ou passeport).
-
+
Les demandes de suppression de Données Personnelles seront soumises aux obligations qui sont imposées à oki.re par la loi,
notamment en matière de conservation ou d’archivage des documents. Enfin, les Utilisateurs de oki.re peuvent déposer une réclamation
auprès des autorités de contrôle, et notamment de la CNIL (https://www.cnil.fr/fr/plaintes).
@@ -323,14 +323,14 @@ export default function Cgu() {
6.4 Non-communication des données personnelles
-
+ oki.re s’interdit de traiter, héberger ou transférer les Informations collectées sur ses utilisateurs vers un pays situé en dehors de
l’Union européenne ou reconnu comme « non adéquat » par la Commission européenne sans en informer préalablement l’utilisateur. Pour autant, oki.re reste
libre du choix de ses sous-traitants techniques et commerciaux à la condition qu’il présentent les garanties suffisantes au regard des exigences du Règlement Général sur la Protection des
Données (RGPD : n° 2016-679).
-
+ oki.re s’engage à prendre toutes les précautions nécessaires afin de préserver la sécurité des Informations et notamment qu’elles ne soient pas communiquées
à des personnes non autorisées. Cependant, si un incident impactant l’intégrité ou la confidentialité des Informations de l’utilisateur est portée
à la connaissance de oki.re, celle-ci devra dans les meilleurs délais informer l’utilisateur
@@ -341,7 +341,7 @@ export default function Cgu() {
6.5 Inscription et connexion
-
+
Les utilisateurs peuvent s’inscrire sur oki.re en renseignant leur adresse e-mail, un nom d’utilisateur ainsi qu’un mot de passe.
À la suite de l’inscription, un lien de vérification est envoyé à l’adresse utilisée. Ce lien permet d’activer le compte. Sans cette activation, l’utilisateur n’aura pas la possibilité de se connecter au site.
Si un utilisateur n’a pas reçu le lien d’activation, il a la possibilité de demander son renvoi.
@@ -358,7 +358,7 @@ export default function Cgu() {
6.6 Proposition de paroles
-
+
Les utilisateurs connectés ont la possibilité de proposer des paroles depuis un espace dédié.
Il se trouve à l’adresse oki.re/pwopose.
Les textes soumis ne sont pas directement publiés sur le site. Ils doivent être approuvé par l’équipe de vérification.
@@ -369,7 +369,7 @@ export default function Cgu() {
7. Notification d’incident
-
+
Quels que soient les efforts fournis, aucune méthode de transmission sur Internet et aucune méthode de stockage électronique n’est complètement sûre.
Nous ne pouvons en conséquence pas garantir une sécurité absolue.
Si nous prenions connaissance d’une brèche de la sécurité, nous avertirions les utilisateurs concernés afin qu’ils puissent prendre les mesures appropriées.
@@ -378,7 +378,7 @@ export default function Cgu() {
obligations réglementaires en matière de reporting.
-
+
Aucune information personnelle de l’utilisateur du site oki.re n’est publiée à l’insu de l’utilisateur, échangée, transférée,
cédée ou vendue sur un support quelconque à des tiers. Seule l’hypothèse du rachat de oki.re et de ses droits permettrait
la transmission des dites informations à l’éventuecodel acquéreur qui serait à son tour tenu de la même obligation de conservation et de modification des données vis à vis de
@@ -389,12 +389,12 @@ export default function Cgu() {
Sécurité
-
+
Pour assurer la sécurité et la confidentialité des Données Personnelles et des Données Personnelles de Santé, oki.re utilise des réseaux protégés
par des dispositifs standards tels que par pare-feu, la pseudonymisation, l’encryption et mot de passe.
-
+
Lors du traitement des Données Personnelles, oki.re prend toutes les mesures raisonnables visant à les protéger contre toute perte,
utilisation détournée, accès non autorisé, divulgation, altération ou destruction.
@@ -403,7 +403,7 @@ export default function Cgu() {
8. Liens hypertextes « cookies » et balises (“tags”) internet
-
+
Le site oki.re contient un certain nombre de liens hypertextes vers d’autres sites,
mis en place avec l’autorisation de oki.re. Cependant, oki.re n’a pas la possibilité de vérifier
le contenu des sites ainsi visités, et n’assumera en conséquence aucune responsabilité de ce fait.
@@ -416,18 +416,18 @@ export default function Cgu() {
8.1 « COOKIES »
-
+
Un « cookie » est un petit fichier d’information envoyé sur le navigateur de l’Utilisateur et enregistré au sein du terminal de l’Utilisateur (ex : ordinateur, smartphone),
(ci-après « Cookies »). Ce fichier comprend des informations telles que le nom de domaine de l’Utilisateur, le fournisseur d’accès Internet de l’Utilisateur,
le système d’exploitation de l’Utilisateur, ainsi que la date et l’heure d’accès. Les Cookies ne risquent en aucun cas d’endommager le terminal de l’Utilisateur.
-
+ oki.re est susceptible de traiter les informations de l’Utilisateur concernant sa visite du Site, telles que les pages consultées,
les recherches effectuées. Ces informations permettent à oki.re d’améliorer le contenu du Site, de la navigation de l’Utilisateur.
-
+
Les Cookies facilitant la navigation et/ou la fourniture des services proposés par le Site, l’Utilisateur peut configurer son navigateur pour qu’il lui permette de décider s’il souhaite
ou non les accepter de manière à ce que des Cookies soient enregistrés dans le terminal ou, au contraire, qu’ils soient rejetés, soit systématiquement, soit selon leur émetteur.
L’Utilisateur peut également configurer son logiciel de navigation de manière à ce que l’acceptation ou le refus des Cookies lui soient proposés ponctuellement, avant qu’un Cookie soit
@@ -435,13 +435,13 @@ export default function Cgu() {
de navigation ne soient pas toutes disponibles.
-
+
Si l’Utilisateur refuse l’enregistrement de Cookies dans son terminal ou son navigateur, ou si l’Utilisateur supprime ceux qui y sont enregistrés,
l’Utilisateur est informé que sa navigation et son expérience sur le Site peuvent être limitées. Cela pourrait également être le cas lorsque oki.re ne peut pas reconnaître,
à des fins de compatibilité technique, le type de navigateur utilisé par le terminal, les paramètres de langue et d’affichage ou le pays depuis lequel le terminal semble connecté à Internet.
-
+
Le cas échéant, oki.re décline toute responsabilité pour les conséquences liées au fonctionnement dégradé du Site
et des services éventuellement proposés par oki.re, résultant du refus de Cookies par l’Utilisateur de l’impossibilité
pour oki.re d’enregistrer ou de consulter les Cookies nécessaires à leur fonctionnement du fait du choix de l’Utilisateur.
@@ -449,13 +449,13 @@ export default function Cgu() {
qui permettra de savoir de quelle manière l’Utilisateur peut modifier ses souhaits en matière de Cookies.
-
+
Enfin, en cliquant sur l’icône dédiée au réseau social Twitter, figurant sur le Site de oki.re ou dans son application mobile
et si l’Utilisateur a accepté le dépôt de cookies en poursuivant sa navigation sur le Site Internet ou l’application mobile de oki.re, Twitter,
peut également déposer des cookies sur vos terminaux (ordinateur, tablette, téléphone portable).
-
+
Ces types de cookies ne sont déposés sur vos terminaux qu’à condition que vous y consentiez, en continuant votre navigation sur le Site Internet ou
l’application mobile de oki.re. À tout moment, l’Utilisateur peut néanmoins revenir sur son consentement à ce
que oki.re dépose ce type de cookies.
@@ -465,7 +465,7 @@ export default function Cgu() {
9. Les dons
-
+
Le site dispose d’une page permettant de faire des dons à « ORGANISATION KA INTERNATIONALE » de manière sécurisée.
Pour se faire, il faut se rendre sur la page « soutyen ». L’utilisateur a 2 onglets disponibles :
@@ -493,11 +493,11 @@ export default function Cgu() {
9.1 LIBERAPAY / PAYPAL
-
+
La plateforme Liberapay est mise à disposition. Elle permet non seulement de personnaliser le montant, mais aussi la récurrence des dons. C’est à dire qu’avec cet outil, l’utilisateur peut effectuer des dons hebdomadaires, mensuels ou annuels.
-
+
L’utilisateur peut faire un don en passant par la plateforme PayPal. En cliquant sur le bouton prévu à cet effet, il est redirigé vers la page de don associée à ORGANISATION KA INTERNATIONALE. Il peut ensuite choisir un montant et valider le don en utilisant son compte PayPal ou une carte bancaire s’il n’est pas enregistré.
@@ -505,7 +505,7 @@ export default function Cgu() {
9.2 CARTE BANCAIRE
-
+
En cliquant sur le bouton « CARTE BANCAIRE », l’utilisateur se voit proposer plusieurs choix. Parmi ces derniers, deux options sont possibles :
@@ -527,7 +527,7 @@ export default function Cgu() {
-
+
Les dons peuvent donc être fait une seule fois ou de manière récurrente.
Quelque soit le choix, l’utilisateur est redirigé vers le sous-domaine don.o-k-i.net suivi de l’ID du montant choisit. Cette URL est gérée par la plateforme de paiement sécurisée Stripe.
@@ -538,7 +538,7 @@ export default function Cgu() {
10. Propriété intellectuelle et licence
-
+
Le site internet oki.re et les éléments qui y sont accessibles
(textes, images, graphismes, logos, vidéos, icônes, sons, etc.) sont, sauf mention contraire,
mis à disposition sous la licence GNU Affero General Public License Version 3 (AGPL-3.0). Cette licence garantit aux utilisateurs les libertés suivantes :
@@ -587,7 +587,7 @@ export default function Cgu() {
11. Droit applicable et attribution de juridiction
-
+
Tout litige en relation avec l’utilisation du site oki.re est soumis au droit français.
En dehors des cas où la loi ne le permet pas, il est fait attribution exclusive de juridiction aux tribunaux compétents.
diff --git a/components/files/files-list.js b/components/files/files-list.js
index 3c0ba78..18fc0a1 100644
--- a/components/files/files-list.js
+++ b/components/files/files-list.js
@@ -50,8 +50,8 @@ export default function FilesList({files}) {
const theme = useTheme()
const {mode} = useColorScheme()
- const musicFiles = files.filter(file => file.attributes.mime.startsWith('audio'))
- const pdfFiles = files.filter(file => file.attributes.mime === 'application/pdf')
+ const musicFiles = files.filter(file => file.mime.startsWith('audio'))
+ const pdfFiles = files.filter(file => file.mime === 'application/pdf')
const sortedMusicFiles = musicFiles.sort((a, b) => {
const extensionOrder = {
@@ -60,7 +60,7 @@ export default function FilesList({files}) {
'.aac': 2,
'.mp3': 3
}
- return extensionOrder[a.attributes.ext.toLowerCase()] - extensionOrder[b.attributes.ext.toLowerCase()]
+ return extensionOrder[a.ext.toLowerCase()] - extensionOrder[b.ext.toLowerCase()]
})
const handleClick = (e, url, fileName) => {
@@ -170,7 +170,7 @@ export default function FilesList({files}) {
{sortedMusicFiles.map(file => (
- {getQuality(file.attributes.ext.toLowerCase(), file?.attributes?.caption?.toUpperCase())}
+ {getQuality(file.ext.toLowerCase(), file?.caption?.toUpperCase())}
handleClick(e, `${apiUrl}${file.attributes.url}`, file.attributes.name)}
+ onClick={e => handleClick(e, `${apiUrl}${file.url}`, file.name)}
>
- {file.attributes.name}
+ {file.name}
- ({formatSize(file.attributes.size)})
+ ({formatSize(file.size)})
))}
@@ -217,7 +217,7 @@ export default function FilesList({files}) {
- {file.attributes.caption}
+ {file.caption}
@@ -226,11 +226,11 @@ export default function FilesList({files}) {
underline='hover'
sx={{fontWeight: 'bold'}}
aria-label='download'
- onClick={e => handleClick(e, `${apiUrl}${file.attributes.url}`, file.attributes.name)}
+ onClick={e => handleClick(e, `${apiUrl}${file.url}`, file.name)}
>
- {file.attributes.name}
+ {file.name}
- ({formatSize(file.attributes.size)})
+ ({formatSize(file.size)})
))}
diff --git a/components/komante/komante-list.js b/components/komante/komante-list.js
index c70b7dc..f1ad97a 100644
--- a/components/komante/komante-list.js
+++ b/components/komante/komante-list.js
@@ -38,20 +38,20 @@ const StyledList = styled(List)((
export default function KomanteList({commentaires}) {
return (
- {commentaires.map(({id, attributes}) => (
+ {commentaires.map(({id, user, contenu, datePublication}) => (