diff --git a/src/components/Form.js b/src/components/Form.js
index 78ef1628..084a28c1 100644
--- a/src/components/Form.js
+++ b/src/components/Form.js
@@ -1,11 +1,18 @@
-import React, { useState } from "react";
+import React, { useContext, useState } from "react";
+import { PhotoContext } from "../context/PhotoContext";
+import Spinner from "./Spinner";
const Form = ({ handleSubmit, history }) => {
+ const{loading}=useContext(PhotoContext)
const [searchEntry, setSearchEntry] = useState("");
// update search text state
const updateSearchInput = e => {
setSearchEntry(e.target.value);
};
+
+
+
+
return (
);
diff --git a/src/components/Spinner.js b/src/components/Spinner.js
new file mode 100644
index 00000000..22b39ce0
--- /dev/null
+++ b/src/components/Spinner.js
@@ -0,0 +1,10 @@
+import React from 'react';
+
+const Spinner = () => {
+ return (
+
+
+ );
+}
+
+export default Spinner;
diff --git a/src/context/PhotoContext.js b/src/context/PhotoContext.js
index 406b6f0a..608f9a70 100644
--- a/src/context/PhotoContext.js
+++ b/src/context/PhotoContext.js
@@ -7,6 +7,7 @@ const PhotoContextProvider = props => {
const [images, setImages] = useState([]);
const [loading, setLoading] = useState(true);
const runSearch = query => {
+ setLoading(true)
axios
.get(
`https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=${apiKey}&tags=${query}&per_page=24&format=json&nojsoncallback=1`
@@ -16,6 +17,7 @@ const PhotoContextProvider = props => {
setLoading(false);
})
.catch(error => {
+ setLoading(false)
console.log(
"Encountered an error with fetching and parsing data",
error
diff --git a/src/index.css b/src/index.css
index 3067afe8..879d1beb 100644
--- a/src/index.css
+++ b/src/index.css
@@ -162,6 +162,18 @@ input {
margin-left: auto;
margin-right: auto;
}
+.spinner {
+ border: 6px solid #f3f3f3;
+ /* Light grey */
+ border-top: 6px solid black;
+ /* Blue */
+ border-radius: 50%;
+ width: 15px;
+ height: 15px;
+ animation: spin 2s linear infinite;
+ margin-left: auto;
+ margin-right: auto;
+}
@keyframes spin {
0% {