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 [searchTerm, setSearchTerm] = useState('')
|
||||||
const [activeSubjName, setActiveSubjName] = useState('')
|
const [activeSubjName, setActiveSubjName] = useState('')
|
||||||
const [dbs, setDbs] = useState(null)
|
const [dbs, setDbs] = useState(null)
|
||||||
const [selectedDb, setSelectedDb] = useState('')
|
const [selectedDb, setSelectedDb] = useState(-1)
|
||||||
const [data, setData] = useState(null)
|
const [data, setData] = useState(null)
|
||||||
const [fetchingData, setFetchingData] = useState(false)
|
const [fetchingData, setFetchingData] = useState(false)
|
||||||
|
|
||||||
|
@ -83,26 +83,34 @@ export default function AllQuestions({ router }) {
|
||||||
const questionCount = data ? data.reduce(countReducer, 0) : 0
|
const questionCount = data ? data.reduce(countReducer, 0) : 0
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
|
||||||
|
shallow: true,
|
||||||
|
})
|
||||||
fetchDbs().then((res) => {
|
fetchDbs().then((res) => {
|
||||||
setDbs(res)
|
setDbs(res)
|
||||||
})
|
})
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
|
const db = router.query.question ? decodeURIComponent(router.query.db) : ''
|
||||||
shallow: true,
|
|
||||||
})
|
if (db) {
|
||||||
|
setSelectedDb(db)
|
||||||
|
}
|
||||||
|
}, [router.query.db])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
const querySearch = router.query.question
|
const querySearch = router.query.question
|
||||||
? decodeURIComponent(router.query.question)
|
? decodeURIComponent(router.query.question)
|
||||||
: ''
|
: ''
|
||||||
const db = router.query.question ? decodeURIComponent(router.query.db) : ''
|
|
||||||
|
|
||||||
|
if (querySearch) {
|
||||||
setSearchTerm(querySearch)
|
setSearchTerm(querySearch)
|
||||||
setSelectedDb(db)
|
}
|
||||||
}, [router.query.question])
|
}, [router.query.question])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (dbs) {
|
if (dbs && selectedDb && (selectedDb === 'all' || dbs[selectedDb])) {
|
||||||
if (selectedDb === 'all') {
|
if (selectedDb === 'all') {
|
||||||
fetchAllData(dbs).then((res) => {
|
fetchAllData(dbs).then((res) => {
|
||||||
setData(mergeData(res))
|
setData(mergeData(res))
|
||||||
|
@ -145,26 +153,33 @@ export default function AllQuestions({ router }) {
|
||||||
</center>
|
</center>
|
||||||
<div className={'selectContainer'}>
|
<div className={'selectContainer'}>
|
||||||
<select
|
<select
|
||||||
defaultValue={-1}
|
|
||||||
value={selectedDb}
|
value={selectedDb}
|
||||||
onChange={(event) => {
|
onChange={(event) => {
|
||||||
const key = event.target.value
|
const key = event.target.value
|
||||||
setData(null)
|
setData(null)
|
||||||
setFetchingData(true)
|
setSelectedDb(key)
|
||||||
|
if (parseInt(key) === -1) {
|
||||||
router.replace(
|
router.replace(
|
||||||
`${router.pathname}${event.target.value &&
|
`${router.pathname}?question=${encodeURIComponent(
|
||||||
'?question='}${encodeURIComponent(searchTerm)}&db=${key}`,
|
searchTerm
|
||||||
|
)}`,
|
||||||
undefined,
|
undefined,
|
||||||
{ shallow: true }
|
{ shallow: true }
|
||||||
)
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setFetchingData(true)
|
||||||
|
|
||||||
setSelectedDb(key)
|
router.replace(
|
||||||
|
`${router.pathname}?question=${encodeURIComponent(
|
||||||
|
searchTerm
|
||||||
|
)}&db=${key}`,
|
||||||
|
undefined,
|
||||||
|
{ shallow: true }
|
||||||
|
)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<option disabled value={-1}>
|
<option value={-1}>{' Válassz egy adatbázist!'}</option>
|
||||||
{' Válassz egy adatbázist!'}
|
|
||||||
</option>
|
|
||||||
{dbs.map((db, i) => {
|
{dbs.map((db, i) => {
|
||||||
return (
|
return (
|
||||||
<option value={i} key={db.path}>
|
<option value={i} key={db.path}>
|
||||||
|
@ -248,8 +263,7 @@ export default function AllQuestions({ router }) {
|
||||||
onChange={(event) => {
|
onChange={(event) => {
|
||||||
setSearchTerm(event.target.value)
|
setSearchTerm(event.target.value)
|
||||||
router.replace(
|
router.replace(
|
||||||
`${router.pathname}${event.target.value &&
|
`${router.pathname}?question=${encodeURIComponent(
|
||||||
'?question='}${encodeURIComponent(
|
|
||||||
event.target.value
|
event.target.value
|
||||||
)}&db=${selectedDb}`,
|
)}&db=${selectedDb}`,
|
||||||
undefined,
|
undefined,
|
||||||
|
@ -305,7 +319,7 @@ export default function AllQuestions({ router }) {
|
||||||
window.open(`${constants.apiUrl}allqr.txt`, '_blank')
|
window.open(`${constants.apiUrl}allqr.txt`, '_blank')
|
||||||
} else {
|
} else {
|
||||||
window.open(
|
window.open(
|
||||||
`${constants.apiUrl}allqr.txt?db=${selectedDb}`,
|
`${constants.apiUrl}allqr.txt?db=${dbs[selectedDb].name}`,
|
||||||
'_blank'
|
'_blank'
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue