diff --git a/app/pwopose/layout.js b/app/pwopose/layout.js new file mode 100644 index 0000000..4c6e2a6 --- /dev/null +++ b/app/pwopose/layout.js @@ -0,0 +1,38 @@ +export const metadata = { + title: 'OKI | Proposer une parole de chanson', + description: 'Proposez la transcription d’une parole, accompagnée d’une ou plusieurs traductions.', + openGraph: { + title: 'OKI | Proposer une parole de chanson', + description: 'Proposez la transcription d’une parole, accompagnée d’une ou plusieurs traductions.', + url: 'https://oki.re/pwopose', + siteName: 'OKI | Organisation KA Internationale. Paroles et traductions.', + images: [ + { + url: 'htts://oki.re/logo-512x512.png', + width: 512, + height: 512 + } + ], + locale: 'fr_FR', + type: 'website' + }, + twitter: { + site: '@OrganisationKA', + card: 'summary_large_image', + title: 'OKI | Proposer une parole de chanson', + description: 'Proposez la transcription d’une parole, accompagnée d’une ou plusieurs traductions.', + creator: '@OrganisationKA', + images: { + url: 'https://oki.re/logo-512x512.png', + alt: 'OKI Logo', + }, + } +} + +export default async function PwoposeLayout({children}) { + return ( +
+ {children} +
+ ) +} diff --git a/app/pwopose/page.js b/app/pwopose/page.js new file mode 100644 index 0000000..391aa9a --- /dev/null +++ b/app/pwopose/page.js @@ -0,0 +1,108 @@ +'use client' + +import {useState, useEffect, forwardRef} from 'react' +import {useSession} from 'next-auth/react' +import MuiAlert from '@mui/material/Alert' +import Snackbar from '@mui/material/Snackbar' +import Box from '@mui/material/Box' +import {useSearchParams} from 'next/navigation' +import Koneksyon from '../../components/sesyon/koneksyon' +import Dekoneksyon from '../../components/sesyon/dekoneksyon' +import EkriTeks from '../../components/soumet/ekri-teks' + +import {jwennUserEpiToken, jwennUserEpiUsername} from '../../lib/oki-api' +import NewPassword from '../../components/password/new-password' +import ChwaTeks from '../../components/soumet/chwa-teks' + +const Alert = forwardRef(function Alert(props, ref) { + return +}) + +export default function Pwopose() { + const params = useSearchParams() + const {code} = params + const {data: session} = useSession() + const [localUsername, setLocalUsername] = useState(null) + const [username, setUsername] = useState(null) + const [open, setOpen] = useState(true) + const [selectedTeks, setSelectedTeks] = useState(null) + const [canAutoTranslate, setCanAutoTranslate] = useState(false) + + const handleClose = (event, reason) => { + if (reason === 'clickaway') { + return + } + + setOpen(false) + } + + useEffect(() => { + if (session?.jwt) { + const getUser = async token => { + const user = await jwennUserEpiToken(token) + setCanAutoTranslate(user.canAutoTranslate) + } + + getUser(session.jwt) + } + }) + + useEffect(() => { + if (localStorage.getItem('username')) { + const username = localStorage.getItem('username') + setLocalUsername(username) + } + }, []) + + useEffect(() => { + if (localUsername) { + const getUser = async username => { + const user = await jwennUserEpiUsername(username) + setUsername(user?.username) + } + + getUser(localUsername) + } + }, [localUsername]) + + useEffect(() => { + if (username && localStorage.getItem('username')) { + localStorage.removeItem('username') + } + }, [username]) + + return ( + + + {!session && !code && ( + + )} + + {!session && code && ( + + )} + {session && session.user && ( + <> + + + + + )} + {session && !session.user && ( + + )} + {username && ( + + Bonjour {username}, votre compte a été activé avec succès. Vous pouvez vous connecter. + + )} + + + ) +} diff --git a/pages/soumet.js b/pages/soumet.js deleted file mode 100644 index ec85160..0000000 --- a/pages/soumet.js +++ /dev/null @@ -1,127 +0,0 @@ -import {useState, useEffect, forwardRef} from 'react' -import PropTypes from 'prop-types' -import {useSession} from 'next-auth/react' -import MuiAlert from '@mui/material/Alert' -import Snackbar from '@mui/material/Snackbar' -import Box from '@mui/material/Box' - -import HeadLayout from '../components/head-layout' -import Koneksyon from '../components/sesyon/koneksyon' -import Dekoneksyon from '../components/sesyon/dekoneksyon' -import EkriTeks from '../components/soumet/ekri-teks' -import Footer from '../components/footer' - -import {jwennUserEpiToken, jwennUserEpiUsername} from '../lib/oki-api' -import NewPassword from '../components/password/new-password' -import ChwaTeks from '../components/soumet/chwa-teks' - -const Alert = forwardRef(function Alert(props, ref) { - return -}) - -export default function Soumet({code}) { - const {data: session} = useSession() - const [localUsername, setLocalUsername] = useState(null) - const [username, setUsername] = useState(null) - const [open, setOpen] = useState(true) - const [selectedTeks, setSelectedTeks] = useState(null) - const [canAutoTranslate, setCanAutoTranslate] = useState(false) - - const handleClose = (event, reason) => { - if (reason === 'clickaway') { - return - } - - setOpen(false) - } - - useEffect(() => { - if (session?.jwt) { - const getUser = async token => { - const user = await jwennUserEpiToken(token) - setCanAutoTranslate(user.canAutoTranslate) - } - - getUser(session.jwt) - } - }) - - useEffect(() => { - if (localStorage.getItem('username')) { - const username = localStorage.getItem('username') - setLocalUsername(username) - } - }, []) - - useEffect(() => { - if (localUsername) { - const getUser = async username => { - const user = await jwennUserEpiUsername(username) - setUsername(user?.username) - } - - getUser(localUsername) - } - }, [localUsername]) - - useEffect(() => { - if (username && localStorage.getItem('username')) { - localStorage.removeItem('username') - } - }, [username]) - - return ( - - - - {!session && !code && ( - - )} - - {!session && code && ( - - )} - {session && session.user && ( - <> - - - - - )} - {session && !session.user && ( - - )} - {username && ( - - Bonjour {username}, votre compte a été activé avec succès. Vous pouvez vous connecter. - - )} - -