La recherche fonctionne avec les filtres et le tris dans le ui.
This commit is contained in:
parent
8a5b00624e
commit
81ff4ad4f7
@ -9,15 +9,7 @@ const ResearchBar = () => {
|
|||||||
const [value, setValue] = useState("");
|
const [value, setValue] = useState("");
|
||||||
|
|
||||||
const search = async (query) => {
|
const search = async (query) => {
|
||||||
const results = await fetchData(query, false);
|
navigate('/morceaux', { state: { query: query} });
|
||||||
console.log(results);
|
|
||||||
navigate('/morceaux', { state: { searchResults: results } });
|
|
||||||
}
|
|
||||||
|
|
||||||
const fetchData = async (query, preview) => {
|
|
||||||
const response = await fetch(`https://localhost:7292/api/Search?query=${query}&preview=${preview}&deep=true`);
|
|
||||||
const json = await response.json();
|
|
||||||
return { json };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleValueChange = async (value) => {
|
const handleValueChange = async (value) => {
|
||||||
|
@ -14,6 +14,7 @@ const Morceaux = () => {
|
|||||||
const [filterPrice, setFilterPrice] = useState("");
|
const [filterPrice, setFilterPrice] = useState("");
|
||||||
const [filterState, setFilterState] = useState("");
|
const [filterState, setFilterState] = useState("");
|
||||||
const [isSearch, setIsSearch] = useState(false);
|
const [isSearch, setIsSearch] = useState(false);
|
||||||
|
const [query, setQuery] = useState("");
|
||||||
|
|
||||||
const { state } = useLocation();
|
const { state } = useLocation();
|
||||||
|
|
||||||
@ -21,18 +22,26 @@ const Morceaux = () => {
|
|||||||
document.title = 'Morceaux';
|
document.title = 'Morceaux';
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
|
|
||||||
if (state != null) {
|
|
||||||
setProducts([...state.searchResults.json]);
|
async function fetchData(isSearch) {
|
||||||
setIsSearch(true);
|
var url = "";
|
||||||
}
|
|
||||||
else {
|
url = isSearch ? `https://localhost:7292/api/Search?query=${state.query}` : `https://localhost:7292/api/Inventory`;
|
||||||
async function fetchData() {
|
|
||||||
const response = await fetch(`https://localhost:7292/api/Inventory`);
|
const response = await fetch(url);
|
||||||
const json = await response.json();
|
const json = await response.json();
|
||||||
if (json.length > 0)
|
if (json.length > 0)
|
||||||
setProducts([...json]);
|
setProducts([...json]);
|
||||||
}
|
}
|
||||||
fetchData();
|
|
||||||
|
|
||||||
|
if (state != null) {
|
||||||
|
setQuery(state.query);
|
||||||
|
setIsSearch(true);
|
||||||
|
fetchData(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fetchData(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
@ -60,36 +69,31 @@ const Morceaux = () => {
|
|||||||
|
|
||||||
const handleOrder = async (sortBy) => {
|
const handleOrder = async (sortBy) => {
|
||||||
|
|
||||||
if (isSearch) {
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
setOrder(sortBy);
|
|
||||||
var url = `https://localhost:7292/api/Inventory?order=${sortBy}&filterPrice=${filterPrice}&filterState=${filterState}`;
|
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
|
setOrder(sortBy);
|
||||||
|
|
||||||
|
var url = isSearch ? `https://localhost:7292/api/Search?query=${query}&filterPrice=${filterPrice}&filterState=${filterState}&order=${sortBy}`
|
||||||
|
: `https://localhost:7292/api/Inventory?order=${sortBy}&filterPrice=${filterPrice}&filterState=${filterState}`;
|
||||||
|
|
||||||
const response = await fetch(url);
|
const response = await fetch(url);
|
||||||
const json = await response.json();
|
const json = await response.json();
|
||||||
if (json.length > 0)
|
|
||||||
setProducts([...json]);
|
setProducts([...json]);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const handleFilters = async (price, state) => {
|
const handleFilters = async (price, state) => {
|
||||||
|
setIsLoading(true);
|
||||||
|
|
||||||
if (isSearch) {
|
|
||||||
|
|
||||||
}
|
|
||||||
{
|
|
||||||
setFilterPrice(price);
|
setFilterPrice(price);
|
||||||
setFilterState(state);
|
setFilterState(state);
|
||||||
var url = `https://localhost:7292/api/Inventory?order=${order}&filterPrice=${price}&filterState=${state}`;
|
|
||||||
setIsLoading(true);
|
var url = isSearch ? `https://localhost:7292/api/Search?query=${query}&filterPrice=${price}&filterState=${state}&order=${order}`
|
||||||
|
: `https://localhost:7292/api/Inventory?order=${order}&filterPrice=${price}&filterState=${state}`;
|
||||||
|
|
||||||
const response = await fetch(url);
|
const response = await fetch(url);
|
||||||
const json = await response.json();
|
const json = await response.json();
|
||||||
setProducts([...json]);
|
setProducts([...json]);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user