mirror of
https://gitlab.com/MrFry/qmining-page
synced 2025-04-01 20:23:44 +02:00
All questions fixes
This commit is contained in:
parent
867568d446
commit
730c0d4058
1 changed files with 33 additions and 19 deletions
|
@ -75,7 +75,7 @@ export default function AllQuestions({ router }) {
|
|||
const [searchTerm, setSearchTerm] = useState('')
|
||||
const [activeSubjName, setActiveSubjName] = useState('')
|
||||
const [dbs, setDbs] = useState(null)
|
||||
const [selectedDb, setSelectedDb] = useState('')
|
||||
const [selectedDb, setSelectedDb] = useState(-1)
|
||||
const [data, setData] = useState(null)
|
||||
const [fetchingData, setFetchingData] = useState(false)
|
||||
|
||||
|
@ -83,26 +83,34 @@ export default function AllQuestions({ router }) {
|
|||
const questionCount = data ? data.reduce(countReducer, 0) : 0
|
||||
|
||||
useEffect(() => {
|
||||
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
|
||||
shallow: true,
|
||||
})
|
||||
fetchDbs().then((res) => {
|
||||
setDbs(res)
|
||||
})
|
||||
}, [])
|
||||
|
||||
useEffect(() => {
|
||||
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
|
||||
shallow: true,
|
||||
})
|
||||
const db = router.query.question ? decodeURIComponent(router.query.db) : ''
|
||||
|
||||
if (db) {
|
||||
setSelectedDb(db)
|
||||
}
|
||||
}, [router.query.db])
|
||||
|
||||
useEffect(() => {
|
||||
const querySearch = router.query.question
|
||||
? decodeURIComponent(router.query.question)
|
||||
: ''
|
||||
const db = router.query.question ? decodeURIComponent(router.query.db) : ''
|
||||
|
||||
setSearchTerm(querySearch)
|
||||
setSelectedDb(db)
|
||||
if (querySearch) {
|
||||
setSearchTerm(querySearch)
|
||||
}
|
||||
}, [router.query.question])
|
||||
|
||||
useEffect(() => {
|
||||
if (dbs) {
|
||||
if (dbs && selectedDb && (selectedDb === 'all' || dbs[selectedDb])) {
|
||||
if (selectedDb === 'all') {
|
||||
fetchAllData(dbs).then((res) => {
|
||||
setData(mergeData(res))
|
||||
|
@ -145,26 +153,33 @@ export default function AllQuestions({ router }) {
|
|||
</center>
|
||||
<div className={'selectContainer'}>
|
||||
<select
|
||||
defaultValue={-1}
|
||||
value={selectedDb}
|
||||
onChange={(event) => {
|
||||
const key = event.target.value
|
||||
setData(null)
|
||||
setSelectedDb(key)
|
||||
if (parseInt(key) === -1) {
|
||||
router.replace(
|
||||
`${router.pathname}?question=${encodeURIComponent(
|
||||
searchTerm
|
||||
)}`,
|
||||
undefined,
|
||||
{ shallow: true }
|
||||
)
|
||||
return
|
||||
}
|
||||
setFetchingData(true)
|
||||
|
||||
router.replace(
|
||||
`${router.pathname}${event.target.value &&
|
||||
'?question='}${encodeURIComponent(searchTerm)}&db=${key}`,
|
||||
`${router.pathname}?question=${encodeURIComponent(
|
||||
searchTerm
|
||||
)}&db=${key}`,
|
||||
undefined,
|
||||
{ shallow: true }
|
||||
)
|
||||
|
||||
setSelectedDb(key)
|
||||
}}
|
||||
>
|
||||
<option disabled value={-1}>
|
||||
{' Válassz egy adatbázist!'}
|
||||
</option>
|
||||
<option value={-1}>{' Válassz egy adatbázist!'}</option>
|
||||
{dbs.map((db, i) => {
|
||||
return (
|
||||
<option value={i} key={db.path}>
|
||||
|
@ -248,8 +263,7 @@ export default function AllQuestions({ router }) {
|
|||
onChange={(event) => {
|
||||
setSearchTerm(event.target.value)
|
||||
router.replace(
|
||||
`${router.pathname}${event.target.value &&
|
||||
'?question='}${encodeURIComponent(
|
||||
`${router.pathname}?question=${encodeURIComponent(
|
||||
event.target.value
|
||||
)}&db=${selectedDb}`,
|
||||
undefined,
|
||||
|
@ -305,7 +319,7 @@ export default function AllQuestions({ router }) {
|
|||
window.open(`${constants.apiUrl}allqr.txt`, '_blank')
|
||||
} else {
|
||||
window.open(
|
||||
`${constants.apiUrl}allqr.txt?db=${selectedDb}`,
|
||||
`${constants.apiUrl}allqr.txt?db=${dbs[selectedDb].name}`,
|
||||
'_blank'
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue