All questions query fix, question search highlight fix

This commit is contained in:
mrfry 2021-04-25 09:21:47 +02:00
parent 4bcbaa4cc1
commit 867568d446
2 changed files with 45 additions and 24 deletions

View file

@ -83,21 +83,40 @@ export default function AllQuestions({ router }) {
const questionCount = data ? data.reduce(countReducer, 0) : 0
useEffect(() => {
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
shallow: true,
})
// TODO: fix dis
const querySearch = router.query.question
? decodeURIComponent(router.query.question)
: ''
console.log(querySearch)
fetchDbs().then((res) => {
setDbs(res)
})
}, [])
useEffect(() => {
router.replace(`${router.asPath.replace('.html', '')}`, undefined, {
shallow: true,
})
const querySearch = router.query.question
? decodeURIComponent(router.query.question)
: ''
const db = router.query.question ? decodeURIComponent(router.query.db) : ''
setSearchTerm(querySearch)
setSelectedDb(db)
}, [router.query.question])
useEffect(() => {
if (dbs) {
if (selectedDb === 'all') {
fetchAllData(dbs).then((res) => {
setData(mergeData(res))
setFetchingData(false)
})
} else {
fetchData(dbs[selectedDb]).then((res) => {
setData(res.data)
setFetchingData(false)
})
}
}
}, [selectedDb, dbs])
const renderDbSelector = () => {
if (dbs) {
return (
@ -127,23 +146,20 @@ export default function AllQuestions({ router }) {
<div className={'selectContainer'}>
<select
defaultValue={-1}
value={selectedDb}
onChange={(event) => {
const key = event.target.value
setData(null)
setFetchingData(true)
if (key === 'all') {
setSelectedDb(key)
fetchAllData(dbs).then((res) => {
setData(mergeData(res))
setFetchingData(false)
})
} else {
setSelectedDb(dbs[key].name)
fetchData(dbs[key]).then((res) => {
setData(res.data)
setFetchingData(false)
})
}
router.replace(
`${router.pathname}${event.target.value &&
'?question='}${encodeURIComponent(searchTerm)}&db=${key}`,
undefined,
{ shallow: true }
)
setSelectedDb(key)
}}
>
<option disabled value={-1}>
@ -233,7 +249,9 @@ export default function AllQuestions({ router }) {
setSearchTerm(event.target.value)
router.replace(
`${router.pathname}${event.target.value &&
'?question='}${encodeURIComponent(event.target.value)}`,
'?question='}${encodeURIComponent(
event.target.value
)}&db=${selectedDb}`,
undefined,
{ shallow: true }
)