-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat implementando funcionalidades de busca por palavra chave na header #158
Conversation
… feat-Implementando-funcionalidades-Filter
✅ Deploy Preview for licitabsb ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
const [searchParams] = useSearchParams(); | ||
|
||
const filterTipo = searchParams.get('tipo') ? searchParams.get('tipo') : ''; | ||
const filterInput = searchParams.get('search') | ||
? searchParams.get('search') | ||
: ''; | ||
const filterValue = searchParams.get('value') | ||
? searchParams.get('value') | ||
: ''; | ||
const filterOrgaos = searchParams.get('orgao') | ||
? searchParams.get('orgao') | ||
: ''; | ||
|
||
const [filterParams, setFilterParams] = useState({ | ||
page: 1, | ||
tipo: filterTipo, | ||
status: '', | ||
search: filterInput, | ||
value: filterValue, | ||
orgao: filterOrgaos, | ||
}); | ||
|
||
const [listaLicitacoes, setListaLicitacoes] = useState([]); | ||
const [resultCount, setResultCount] = useState(0); | ||
|
||
async function loadData(filter) { | ||
const data = await getLicitacoes(filter); | ||
setResultCount(data.count); | ||
setListaLicitacoes(data.results); | ||
} | ||
|
||
const buildFilterQuery = (params) => { | ||
return Object.keys(params) | ||
.filter((key) => params[key]) | ||
.map((key) => `${key}=${params[key]}`) | ||
.join('&'); | ||
}; | ||
|
||
function handleSearch() { | ||
const querySearch = `/licitacoes?${buildFilterQuery(filterParams)}`; | ||
navigate(querySearch); | ||
navigate(0); | ||
} | ||
useEffect(() => { | ||
setFilterParams({ | ||
...filterParams, | ||
search: input, | ||
}); | ||
}, [input]); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Não tem necessidade de tudo isso. Só pega oq o usuário pesquisar e manda como parâmetro no filtro. Cria um objeto com um atributo search e nesse atributo você coloca o que o usuário escrever no input e aí você manda isso na URL pro caminho das licitações. Não precisa pegar parâmetro de URL no header.
Descrição
Descreva aqui as alterações feitas no pull request. Seja claro e conciso, e explique por que essas alterações são necessárias.
Tipo de Alteração
Checklist