diff --git a/components/soumet/ekri-teks.js b/components/soumet/ekri-teks.js index ed28348..6a17a8f 100644 --- a/components/soumet/ekri-teks.js +++ b/components/soumet/ekri-teks.js @@ -1,7 +1,7 @@ -import {useCallback, useEffect, useState} from 'react' +import {useCallback, useEffect, forwardRef, useState} from 'react' import {styled} from '@mui/material/styles' -import PropTypes from 'prop-types' import axios from 'axios' +import {useSession} from 'next-auth/react' import { Box, Button, @@ -56,13 +56,14 @@ const textLabels = { } } -function Alert(props) { - return -} +const Alert = forwardRef(function Alert(props, ref) { + return +}) const RemoveTooltip = Tooltip -function EkriTeks({session}) { +function EkriTeks() { + const {data: session} = useSession() const {jwt, user} = session const [teksEkri, setTeksEkri] = useState({awtis: '', tit: '', transkripsyon: ''}) const [tradiksyon, setTradiksyon] = useState({fr: '', en: '', es: ''}) @@ -289,8 +290,4 @@ function EkriTeks({session}) { ) } -EkriTeks.propTypes = { - session: PropTypes.object.isRequired -} - export default EkriTeks diff --git a/pages/api/auth/[...nextauth].js b/pages/api/auth/[...nextauth].js index 8be5d0c..89b22b3 100644 --- a/pages/api/auth/[...nextauth].js +++ b/pages/api/auth/[...nextauth].js @@ -32,6 +32,26 @@ const options = { session: { strategy: 'jwt' }, + callbacks: { + async jwt({token, user, account}) { + if (user) { + const response = await fetch( + `${process.env.NEXT_PUBLIC_API_URL}/auth/${account.provider}/callback?access_token=${account?.accessToken}` + ) + const data = await response.json() + token.id = data.id || user.id + token.jwt = data.jwt || user.jwt + token.user = data.user || user.user + } + + return Promise.resolve(token) + }, + async session({session, token}) { + session.jwt = token.jwt + session.user = token.user + return Promise.resolve(session) + } + }, pages: { signIn: '/soumet', error: '/soumet'