mirror of
https://gitlab.com/MrFry/qmining-page
synced 2025-04-01 20:23:44 +02:00
Multiple db handling in addQuestion
This commit is contained in:
parent
309436b227
commit
587c304317
1 changed files with 26 additions and 15 deletions
|
@ -14,7 +14,7 @@ const getDefaultQuestion = () => {
|
|||
}
|
||||
}
|
||||
|
||||
export default function AddQuestion(props) {
|
||||
export default function AddQuestion() {
|
||||
const [form, setForm] = useState({ quiz: [getDefaultQuestion()] })
|
||||
const [subjects, setSubjects] = useState(undefined)
|
||||
const [isSubmitting, setIsSubmitting] = useState(false)
|
||||
|
@ -29,9 +29,15 @@ export default function AddQuestion(props) {
|
|||
return resp.json()
|
||||
})
|
||||
.then((data) => {
|
||||
let res = data.map((x) => {
|
||||
return x.name
|
||||
})
|
||||
let res = data.reduce((acc, x) => {
|
||||
return [
|
||||
...acc,
|
||||
...x.subjs.map((subj) => {
|
||||
return subj.name
|
||||
}),
|
||||
]
|
||||
}, [])
|
||||
|
||||
res = res.sort()
|
||||
setSubjects(res)
|
||||
})
|
||||
|
@ -58,8 +64,8 @@ export default function AddQuestion(props) {
|
|||
<input
|
||||
placeholder="Kérdés..."
|
||||
type="text"
|
||||
onChange={(e) =>
|
||||
onChange({ ...currData, Q: e.target.value }, index)
|
||||
onChange={(err) =>
|
||||
onChange({ ...currData, Q: err.target.value }, index)
|
||||
}
|
||||
value={Q || ''}
|
||||
className={styles.questionInput}
|
||||
|
@ -69,8 +75,8 @@ export default function AddQuestion(props) {
|
|||
<input
|
||||
placeholder="Válasz..."
|
||||
type="text"
|
||||
onChange={(e) =>
|
||||
onChange({ ...currData, A: e.target.value }, index)
|
||||
onChange={(err) =>
|
||||
onChange({ ...currData, A: err.target.value }, index)
|
||||
}
|
||||
value={A || ''}
|
||||
className={styles.questionInput}
|
||||
|
@ -154,17 +160,22 @@ export default function AddQuestion(props) {
|
|||
.json()
|
||||
.then((resp) => {
|
||||
if (resp.success) {
|
||||
alert('Sikeres beküldés, ' + resp.newQuestions + ' új kérdés') // eslint-disable-line
|
||||
alert(
|
||||
'Sikeres beküldés, ' +
|
||||
resp.newQuestions.reduce((acc, res) => {
|
||||
return acc + res.newQuestions
|
||||
}, 0) +
|
||||
' új kérdés'
|
||||
) // eslint-disable-line
|
||||
setIsSubmitting(false)
|
||||
} else {
|
||||
console.log(resp)
|
||||
alert('Hiba beküldés közben :/') // eslint-disable-line
|
||||
setIsSubmitting(false)
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
.catch((err) => {
|
||||
alert('Hiba beküldés közben :/') // eslint-disable-line
|
||||
console.log(e)
|
||||
console.log(err)
|
||||
setIsSubmitting(false)
|
||||
})
|
||||
}
|
||||
|
@ -214,7 +225,7 @@ export default function AddQuestion(props) {
|
|||
)
|
||||
}
|
||||
|
||||
const renderSubjSelector = (props) => {
|
||||
const renderSubjSelector = () => {
|
||||
// TODO: handle if new subject
|
||||
return (
|
||||
<div className={styles.subjSelectorContainer}>
|
||||
|
@ -243,7 +254,7 @@ export default function AddQuestion(props) {
|
|||
<option key={-1} value={-1}>
|
||||
Válassz egy tárgyat...
|
||||
</option>
|
||||
{props.subjects.map((subjName, i) => {
|
||||
{subjects.map((subjName, i) => {
|
||||
return (
|
||||
<option key={i} value={i}>
|
||||
{subjName}
|
||||
|
@ -296,7 +307,7 @@ export default function AddQuestion(props) {
|
|||
<div>
|
||||
{renderUsage()}
|
||||
<hr />
|
||||
{renderSubjSelector({ subjects })}
|
||||
{renderSubjSelector()}
|
||||
{renderStuff()}
|
||||
</div>
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue