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 [form, setForm] = useState({ quiz: [getDefaultQuestion()] })
|
||||||
const [subjects, setSubjects] = useState(undefined)
|
const [subjects, setSubjects] = useState(undefined)
|
||||||
const [isSubmitting, setIsSubmitting] = useState(false)
|
const [isSubmitting, setIsSubmitting] = useState(false)
|
||||||
|
@ -29,9 +29,15 @@ export default function AddQuestion(props) {
|
||||||
return resp.json()
|
return resp.json()
|
||||||
})
|
})
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
let res = data.map((x) => {
|
let res = data.reduce((acc, x) => {
|
||||||
return x.name
|
return [
|
||||||
})
|
...acc,
|
||||||
|
...x.subjs.map((subj) => {
|
||||||
|
return subj.name
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
}, [])
|
||||||
|
|
||||||
res = res.sort()
|
res = res.sort()
|
||||||
setSubjects(res)
|
setSubjects(res)
|
||||||
})
|
})
|
||||||
|
@ -58,8 +64,8 @@ export default function AddQuestion(props) {
|
||||||
<input
|
<input
|
||||||
placeholder="Kérdés..."
|
placeholder="Kérdés..."
|
||||||
type="text"
|
type="text"
|
||||||
onChange={(e) =>
|
onChange={(err) =>
|
||||||
onChange({ ...currData, Q: e.target.value }, index)
|
onChange({ ...currData, Q: err.target.value }, index)
|
||||||
}
|
}
|
||||||
value={Q || ''}
|
value={Q || ''}
|
||||||
className={styles.questionInput}
|
className={styles.questionInput}
|
||||||
|
@ -69,8 +75,8 @@ export default function AddQuestion(props) {
|
||||||
<input
|
<input
|
||||||
placeholder="Válasz..."
|
placeholder="Válasz..."
|
||||||
type="text"
|
type="text"
|
||||||
onChange={(e) =>
|
onChange={(err) =>
|
||||||
onChange({ ...currData, A: e.target.value }, index)
|
onChange({ ...currData, A: err.target.value }, index)
|
||||||
}
|
}
|
||||||
value={A || ''}
|
value={A || ''}
|
||||||
className={styles.questionInput}
|
className={styles.questionInput}
|
||||||
|
@ -154,17 +160,22 @@ export default function AddQuestion(props) {
|
||||||
.json()
|
.json()
|
||||||
.then((resp) => {
|
.then((resp) => {
|
||||||
if (resp.success) {
|
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)
|
setIsSubmitting(false)
|
||||||
} else {
|
} else {
|
||||||
console.log(resp)
|
|
||||||
alert('Hiba beküldés közben :/') // eslint-disable-line
|
alert('Hiba beküldés közben :/') // eslint-disable-line
|
||||||
setIsSubmitting(false)
|
setIsSubmitting(false)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((err) => {
|
||||||
alert('Hiba beküldés közben :/') // eslint-disable-line
|
alert('Hiba beküldés közben :/') // eslint-disable-line
|
||||||
console.log(e)
|
console.log(err)
|
||||||
setIsSubmitting(false)
|
setIsSubmitting(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -214,7 +225,7 @@ export default function AddQuestion(props) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const renderSubjSelector = (props) => {
|
const renderSubjSelector = () => {
|
||||||
// TODO: handle if new subject
|
// TODO: handle if new subject
|
||||||
return (
|
return (
|
||||||
<div className={styles.subjSelectorContainer}>
|
<div className={styles.subjSelectorContainer}>
|
||||||
|
@ -243,7 +254,7 @@ export default function AddQuestion(props) {
|
||||||
<option key={-1} value={-1}>
|
<option key={-1} value={-1}>
|
||||||
Válassz egy tárgyat...
|
Válassz egy tárgyat...
|
||||||
</option>
|
</option>
|
||||||
{props.subjects.map((subjName, i) => {
|
{subjects.map((subjName, i) => {
|
||||||
return (
|
return (
|
||||||
<option key={i} value={i}>
|
<option key={i} value={i}>
|
||||||
{subjName}
|
{subjName}
|
||||||
|
@ -296,7 +307,7 @@ export default function AddQuestion(props) {
|
||||||
<div>
|
<div>
|
||||||
{renderUsage()}
|
{renderUsage()}
|
||||||
<hr />
|
<hr />
|
||||||
{renderSubjSelector({ subjects })}
|
{renderSubjSelector()}
|
||||||
{renderStuff()}
|
{renderStuff()}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue