Search term in query for all questions

This commit is contained in:
mrfry 2020-11-07 08:58:37 +01:00
parent 9aa0c111ce
commit 36a564498b
2 changed files with 20 additions and 15 deletions

View file

@ -1,4 +1,5 @@
import React, { useState, useEffect } from 'react'
import Link from 'next/link'
import fetch from 'unfetch'
import LoadingIndicator from '../components/LoadingIndicator.js'
@ -7,13 +8,13 @@ import QuestionSearchResult from '../components/QuestionSearchResult.js'
import styles from './allQuestions.module.css'
import constants from '../constants.json'
export default function AllQuestions (props) {
export default function AllQuestions({ router }) {
const [data, setData] = useState(null)
const [searchTerm, setSearchTerm] = useState('')
useEffect(() => {
fetch(`${constants.apiUrl}data.json`, {
credentials: 'include'
credentials: 'include',
})
.then((resp) => {
return resp.json()
@ -21,6 +22,7 @@ export default function AllQuestions (props) {
.then((data) => {
setData(data)
})
setSearchTerm(router.query.q ? decodeURIComponent(router.query.q) : '')
}, [])
if (data) {
@ -28,11 +30,19 @@ export default function AllQuestions (props) {
<div>
<div className={styles.searchContainer}>
<input
placeholder='Keresés...'
placeholder="Keresés..."
className={styles.searchBar}
type='text'
type="text"
value={searchTerm}
onChange={(e) => { setSearchTerm(e.target.value) }}
onChange={(e) => {
setSearchTerm(e.target.value)
router.replace(
`${router.pathname}${e.target.value &&
'?q='}${encodeURIComponent(e.target.value)}`,
undefined,
{ shallow: true }
)
}}
/>
<button
onClick={() => {
@ -40,21 +50,16 @@ export default function AllQuestions (props) {
}}
className={styles.clearButton}
>
X
X
</button>
</div>
<hr />
<div>
<QuestionSearchResult
data={data}
searchTerm={searchTerm}
/>
<QuestionSearchResult data={data} searchTerm={searchTerm} />
</div>
</div>
)
} else {
return (
<LoadingIndicator />
)
return <LoadingIndicator />
}
}