import React, { useEffect, useState } from 'react'
import LoadingIndicator from '../components/LoadingIndicator'
import SearchBar from '../components/searchBar'
import TestView from '../components/testView'
import constants from '../constants.json'
import styles from './possibleAnswers.module.css'
const Infos = () => {
return (
Itt azok a tesztek találhatók, amiknek a kitöltése után nem volt
ellenőrző oldal. A script így nem tudja, hogy melyik a helyes megoldás.
De ha ti igen, akkor jelöljétek be / írjátok be, és mentsétek el. Így
mikor legközelebb találkoztok a kérdéssel a script tudni fogja a helyes
választ. Ezzel másoknak is nagyon sokat segítetek.
)
}
const fetchPossibleAnswers = () => {
return new Promise((resolve) => {
fetch(`${constants.apiUrl}possibleAnswers`, {
credentials: 'include',
})
.then((resp) => {
return resp.json()
})
.then((res) => {
resolve(res)
})
})
}
const fetchSubject = (subj, savedQuestionsFileName) => {
return new Promise((resolve) => {
fetch(
`${constants.apiUrl}savedQuestions/${subj}/${savedQuestionsFileName}`,
{
credentials: 'include',
}
)
.then((resp) => {
return resp.json()
})
.then((resp) => {
resolve(resp)
})
})
}
const fetchTest = (subj, test) => {
return new Promise((resolve) => {
fetch(`${constants.apiUrl}savedQuestions/${subj}/${test}`, {
credentials: 'include',
})
.then((resp) => {
return resp.json()
})
.then((resp) => {
resolve(resp)
})
})
}
export default function PossibleAnswers({ router, refetchDbs }) {
const [currSubjName, setCurrSubjName] = useState(null)
const [currTestName, setCurrTestName] = useState(null)
const [subjects, setSubjects] = useState([])
const [currSubj, setCurrSubj] = useState(null)
const [currTest, setCurrTest] = useState(null)
const [savedQuestionsFileName, setSavedQuestionsFileName] = useState(null)
const [searchTerm, setSearchTerm] = useState('')
useEffect(() => {
fetchPossibleAnswers().then((resp) => {
setSubjects(resp.subjects)
setSavedQuestionsFileName(resp.savedQuestionsFileName)
const subj = router.query.subj
? decodeURIComponent(router.query.subj)
: ''
const test = router.query.test
? decodeURIComponent(router.query.test)
: ''
if (subj) {
fetchSubject(subj, resp.savedQuestionsFileName).then((resp) => {
setCurrSubj(resp)
setCurrSubjName(subj)
router.push(
`${router.pathname}?v=pa&subj=${encodeURIComponent(subj)}`,
undefined,
{ shallow: true }
)
if (subj && test) {
fetchTest(subj, test).then((resp) => {
setCurrTest(resp)
setCurrTestName(test)
router.push(
`${router.pathname}?v=pa&subj=${encodeURIComponent(
subj
)}&test=${encodeURIComponent(test)}`,
undefined,
{ shallow: true }
)
})
}
})
}
})
}, [])
const renderStuff = () => {
if (subjects && currSubj && currTest) {
return (
<>
{
setCurrTest(null)
router.back()
}}
>
Vissza
{currTest && (
{
refetchDbs()
setCurrTest(null)
fetchSubject(currSubjName, savedQuestionsFileName).then(
(resp) => {
setCurrSubj(resp)
}
)
}}
/>
)}
>
)
} else if (subjects && currSubj) {
return (
<>
{
setCurrSubj(null)
router.back()
}}
>
Vissza
{currSubjName}
<>
Dátum
Felhasználó ID
Tárgy
Teszt URL
{currSubj &&
currSubj.map((test, i) => {
return (
{
setCurrTestName(test.fname)
router.push(
`${router.pathname}?v=pa&subj=${encodeURIComponent(
currSubjName
)}&test=${encodeURIComponent(test.fname)}`,
undefined,
{ shallow: true }
)
fetchTest(currSubjName, test.fname).then((resp) => {
setCurrTest(resp)
})
}}
>
{new Date(test.date).toLocaleString()}
{test.userid}
{test.subj}
{test.testUrl}
)
})}
>
>
)
} else if (subjects) {
return (
<>
setSearchTerm(e)} />
<>
Tárgy neve
{subjects.map((subj, i) => {
if (
!subj.name.toLowerCase().includes(searchTerm.toLowerCase())
) {
return null
}
return (
{
setCurrSubjName(subj.name)
router.push(
`${router.pathname}?v=pa&subj=${encodeURIComponent(
subj.name
)}`,
undefined,
{ shallow: true }
)
fetchSubject(subj.name, savedQuestionsFileName).then(
(resp) => {
setCurrSubj(resp)
}
)
}}
>
{subj.name}
)
})}
>
>
)
} else {
return
}
}
return renderStuff()
}