From 694b627348a8386842814a7933beb7c36b581c77 Mon Sep 17 00:00:00 2001
From: Luis Felipe Risch <lfr20@inf.ufpr.br>
Date: Mon, 14 Dec 2020 09:04:29 -0300
Subject: [PATCH] Fixing requests from server

---
 src/Pages/Search.js | 74 ++++++++++++++++++++++++++++-----------------
 1 file changed, 47 insertions(+), 27 deletions(-)

diff --git a/src/Pages/Search.js b/src/Pages/Search.js
index c0ee400a..08f6f80b 100644
--- a/src/Pages/Search.js
+++ b/src/Pages/Search.js
@@ -38,6 +38,7 @@ import SearchExpansionPanel from "../Components/SearchExpansionPanel/SearchExpan
 import ResourceCardFunction from "../Components/ResourceCardFunction";
 import CollectionCardFunction from "../Components/CollectionCardFunction";
 import ContactCard from "../Components/ContactCard";
+import CircularProgress from '@material-ui/core/CircularProgress';
 
 let order = "review_average";
 let currFilter = "";
@@ -50,6 +51,8 @@ export default function Search(props) {
   const [currOrder, setCurrOrder] = useState(order);
   const [page] = useState(0);
   const [isloading, setIsLoading] = useState(false);
+  const [loadingMoreData, setLoadingMoreData] = useState(false);
+  const [isFiltering, setIsFiltering] = useState(false);
   const [resultsPerPage, setResultsPerPage] = useState(6);
   const [totalResults, setTotalResults] = useState(0);
   const [options] = React.useState([
@@ -70,15 +73,12 @@ export default function Search(props) {
     new URLSearchParams(window.location.search).get("search_class")
   );
   const [optionResult, setOptionResult] = useState(option);
-  console.log(option);
-  console.log(state);
 
   const collectStuff = (tipoBusca, filtro) => {
+    currFilter = filtro; 
     if(filtro)
-      currFilter = filtro;
-    else if (filtro = "")
-      currFilter = filtro;
-    if(!filtro)
+      setIsFiltering(true);
+    if(tipoBusca === "Collection" || tipoBusca === "User")
       setIsLoading(true);
 
     axios
@@ -93,13 +93,15 @@ export default function Search(props) {
         dispatch({
           type: "SAVE_SEARCH",
           newSearch: {
-            query: "*",
+            query: state.search.query,
             class: tipoBusca,
           },
         });
-        setOption(new URLSearchParams(window.location.search).get("search_class"))
+        console.log(res);
         setTotalResults(res.headers["x-total-count"]);
         setIsLoading(false);
+        setIsFiltering(false);
+        setLoadingMoreData(false);
       });
   };
 
@@ -260,15 +262,15 @@ export default function Search(props) {
                   <Grid container spacing={2}>
                     {resultsCollection.map((card) => (
                       <Grid item md={4} xs={6} key={card.id}>
-                          <CollectionCardFunction
-                            name={card.name}
-                            rating={card.score}
-                            id={card.id}
-                            author={card.owner.name}
-                            description={card.description}
-                            thumbnails={card.items_thumbnails}
-                            avatar={card.owner.avatar}
-                          />
+                        <CollectionCardFunction
+                          name={card.name}
+                          rating={card.score}
+                          id={card.id}
+                          author={card.owner.name}
+                          description={card.description}
+                          thumbnails={card.items_thumbnails}
+                          avatar={card.owner.avatar}
+                        />
                       </Grid>
                     ))}
                   </Grid>
@@ -290,10 +292,16 @@ export default function Search(props) {
                         borderRadius: 4,
                         border: "none",
                       }}
-                      onClick={() => setResultsPerPage(resultsPerPage + 12)}
+                      onClick={() => {
+                        setLoadingMoreData(true);
+                        setResultsPerPage(resultsPerPage + 12)
+                        // collectStuff("Collection", "");
+                      }}
                     >
-                      Carregar mais 12
-                </button>
+                      {
+                        loadingMoreData ? <CircularProgress size={24} color="inherit" /> : "Carregar mais 12"
+                      }
+                    </button>
                   </div>
                 </Grid>
               </GridBuscaCollection>
@@ -303,7 +311,7 @@ export default function Search(props) {
                 <GridBuscaResource container spacing={2}>
                   <Grid item md={3} xs={12}>
                     <Paper elevation={4} square>
-                      <SearchExpansionPanel onChange={collectStuff} />
+                      <SearchExpansionPanel onChange={collectStuff} onFiltering={isFiltering}/>
                     </Paper>
                   </Grid>
                   <Grid item md={9} xs={12}>
@@ -346,10 +354,16 @@ export default function Search(props) {
                           borderRadius: 4,
                           border: "none",
                         }}
-                        onClick={() => setResultsPerPage(resultsPerPage + 12)}
+                        onClick={() => {
+                          setLoadingMoreData(true);
+                          setResultsPerPage(resultsPerPage + 12)
+                          // collectStuff("LearningObject", "");
+                        }}
                       >
-                        Carregar mais 12
-                </button>
+                        {
+                          loadingMoreData ? <CircularProgress size={24} color="inherit" /> : "Carregar mais 12"
+                        }
+                      </button>
                     </div>
                   </Grid>
                 </GridBuscaResource>
@@ -392,10 +406,16 @@ export default function Search(props) {
                             borderRadius: 4,
                             border: "none",
                           }}
-                          onClick={() => setResultsPerPage(resultsPerPage + 6)}
+                          onClick={() => {
+                            setLoadingMoreData(true);
+                            setResultsPerPage(resultsPerPage + 12)
+                            // collectStuff("User", "");
+                          }}
                         >
-                          Carregar mais 6
-                      </button>
+                          {
+                            loadingMoreData ? <CircularProgress size={24}  /> : "Carregar mais 12"
+                          }
+                        </button>
                       </div>
                     </Grid>
                   </GridBuscaUser>
-- 
GitLab