From f59486df754e4939cf1af5e2d2f0ff3930147dcc Mon Sep 17 00:00:00 2001 From: Isadora Soares Date: Mon, 13 Sep 2021 17:15:32 -0300 Subject: [PATCH] Add loading style --- src/components/getCharacters.tsx | 273 +++++++++++++++++-------------- 1 file changed, 151 insertions(+), 122 deletions(-) diff --git a/src/components/getCharacters.tsx b/src/components/getCharacters.tsx index 09e0d4f..5e40ba8 100644 --- a/src/components/getCharacters.tsx +++ b/src/components/getCharacters.tsx @@ -9,6 +9,7 @@ const GetCharacter: React.FC = () => { const [searchName, setSearchName] = useState(""); const [search, setSearch] = useState(false); + const [loading, setLoading] = useState(true); const onChangeSearchName = (e: ChangeEvent) => { const searchName = e.target.value; @@ -20,21 +21,31 @@ const GetCharacter: React.FC = () => { }, []); const retrieveCharacter = () => { - Service.getAll().then((response) => { - setCharacter(response.data.results); - }); + setLoading(true); + setTimeout(() => { + Service.getAll().then((response) => { + setCharacter(response.data.results); + setLoading(false); + }); + }, 400); }; useEffect(() => { retriCharacter(); + // eslint-disable-next-line }, [searchName]); const retriCharacter = () => { - Service.get(searchName).then((response) => { - setCharacter(response.data.results); - setSearch(false); - }); + Service.get(searchName) + .then((response) => { + setCharacter(response.data.results); + setSearch(false); + }) + .catch((e) => { + setLoading(false); + setSearch(true); + }); }; return ( @@ -51,134 +62,152 @@ const GetCharacter: React.FC = () => { -
- {character && - character - //eslint-disable-next-line - .filter((characte, index) => { - if (searchName === "") { - return characte; - } else if ( - characte.name.toLowerCase().includes(searchName.toLowerCase()) - ) { - return characte; - } - }) - - .map((characte, index) => ( -
-
- imag + {loading ? ( +
+

+ Loading... + + + +

+
+ ) : ( +
+ {character && + character + //eslint-disable-next-line + .filter((characte, index) => { + if (searchName === "") { + return characte; + } else if ( + characte.name.toLowerCase().includes(searchName.toLowerCase()) + ) { + return characte; + } + }) - + imag -
-
-

-
- {characte.name} -
-

-
-
- {characte.status} -
-
- {characte.species} -
-
+ + + + + + +
+
+

+
+ {characte.name} +
+

+
+
+ {characte.status} +
+
+ {characte.species} +
+
+
+ ))} + {search ? ( +
+
+ notfound
- ))} -
- {search ? ( -
-
- notfound -
-
-

Não foi encontrado

-
+
+

Não foi encontrado

+
+
+ ) : ( +
+ )}
- ) : ( -
)}
);