diff --git a/src/pages/allQuestions.js b/src/pages/allQuestions.js index f0811b8..24473cb 100644 --- a/src/pages/allQuestions.js +++ b/src/pages/allQuestions.js @@ -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 }) {