Multiple db handling in addQuestion

This commit is contained in:
mrfry 2020-11-26 09:51:20 +01:00
parent 309436b227
commit 587c304317

View file

@ -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>
)