import { Fragment, useState, useEffect } from 'react'; import HeadTag from '../components/HeadTag'; import FunctionCard from '../components/FunctionCard/FunctionCard'; import '../public/css/pages/functions.css'; import { API_URL } from '../config/config'; import api from '../config/api'; const Functions = () => { // State de recherche et de catégories const [categories, setCategories] = useState([]); const [inputSearch, setInputSearch] = useState({ search: "", selectedCategory: "0" }); // State pour afficher les fonctions const [functions, setFunctions] = useState([]); const [isLoadingFunctions, setLoadingFunctions] = useState(true); const [pageFunctions, setPageFunctions] = useState(1); const [hasMoreFunctions, sethasMoreFunctions] = useState(false); // Récupère les catégories useEffect(() => { api.get('/categories') .then((result) => { setCategories(result.data); }) .catch((error) => console.error(error)); }, []); // Récupère les fonctions si la page change useEffect(() => { api.get(`/functions?page=${pageFunctions}&limit=10&categoryId=${inputSearch.selectedCategory}&search=${inputSearch.search}`) .then((result) => { setLoadingFunctions(false); sethasMoreFunctions(result.data.hasMore); setFunctions([...functions, ...result.data.rows]); }) .catch((error) => console.error(error)); }, [pageFunctions]); // Récupère les fonctions si la catégorie/recherche change useEffect(() => { api.get(`/functions?page=${pageFunctions}&limit=10&categoryId=${inputSearch.selectedCategory}&search=${inputSearch.search}`) .then((result) => { setLoadingFunctions(false); sethasMoreFunctions(result.data.hasMore); setFunctions(result.data.rows); }) .catch((error) => console.error(error)); }, [inputSearch.selectedCategory, inputSearch.search]); const loadMore = () => { setLoadingFunctions(true); setPageFunctions(pageFunctions + 1); } const handleChange = (event) => { setLoadingFunctions(true); const inputSearchNew = { ...inputSearch }; inputSearchNew[event.target.name] = event.target.value; setInputSearch(inputSearchNew); } return (

Fonctions

{functions.map((f) => ( ))}
{ !isLoadingFunctions && hasMoreFunctions ? : !hasMoreFunctions ? null :

Chargement...

}
); } export default Functions;