diff --git a/src/App.js b/src/App.js
index 1072efb..2a76779 100644
--- a/src/App.js
+++ b/src/App.js
@@ -2,16 +2,47 @@ import FeedPage from "./pages/Feed.js";
import { Routes, Route } from "react-router-dom";
import { React, useState } from "react";
import MainNavigation from "./components/layout/MainNavigation";
+import LoginPage from "./pages/Login.js";
function App() {
const [refreshPost, setRefreshPost] = useState(false);
+ const [showError, setShowError] = useState(false);
+ const [errorText, setErrorText] = useState("");
+ const [idToken, setIdToken] = useState();
+ const [userIdToken, setUserIdToken] = useState();
+
+ if (!idToken) {
+ return (
+
+ );
+ }
+
return (
<>
-
+
+ }
+ />
+ {
+ if (response.status === 200) {
+ fireResp = true;
+ } else {
+ fireResp = false;
+ }
+ return response.json();
+ })
+ .then((data) => {
+ if (fireResp === true) {
+ setIdToken(data.idToken);
+ navigate("/feed");
+ } else {
+ setEmailError(data.error.message);
+ }
+ });
+ }
+ return (
+
+ );
+}
+
+export default CreateLoginForm;
diff --git a/src/components/login/CreateLogin.module.css b/src/components/login/CreateLogin.module.css
new file mode 100644
index 0000000..1f20946
--- /dev/null
+++ b/src/components/login/CreateLogin.module.css
@@ -0,0 +1,44 @@
+.form {
+ position: absolute;
+ z-index: 10;
+ right: 30%;
+ left: 30%
+}
+
+.form h3{
+ padding-top: 6%;
+ margin: 0;
+ padding-bottom: 0px;
+ text-align: center;
+}
+
+.content {
+ display: flex;
+ flex-direction: column;
+ padding-left: 10%;
+ padding-right:10%;
+ width: 100%;
+
+
+}
+.content input{
+ margin: 3px;
+ display: inline-block;
+ font: inherit;
+ border-radius: 4px;
+ border: 1px solid #ccc;
+ padding: 0.25rem;
+ width: 100%;
+}
+
+.actions{
+ text-align: center;
+ padding-top: 2%;
+ padding-bottom: 5%;
+ /* height: 50%; */
+}
+
+.error{
+ text-align: center;
+ color: red;
+}
\ No newline at end of file
diff --git a/src/components/posts/AddPostForm.js b/src/components/posts/AddPostForm.js
index b50a648..b04500d 100644
--- a/src/components/posts/AddPostForm.js
+++ b/src/components/posts/AddPostForm.js
@@ -29,7 +29,6 @@ function AddPostForm({ onCancel, onAddPost, setErrorText, setShowError }) {
};
onAddPost(postData);
- } else {
}
}
diff --git a/src/pages/Login.js b/src/pages/Login.js
new file mode 100644
index 0000000..340d00e
--- /dev/null
+++ b/src/pages/Login.js
@@ -0,0 +1,92 @@
+import Post from "../components/UI/Post";
+import classes from "./Login.module.css";
+import action from "../components/posts/buttons/Button.module.css";
+import { useNavigate } from "react-router-dom";
+import { useRef, useState } from "react";
+import CreateLoginForm from "../components/login/CreateLogin";
+import Backdrop from "../components/UI/Backdrop";
+
+function LoginPage({ setShowError, setErrorText, setIdToken }) {
+ const [showCreateLogin, setShowCreateLogin] = useState(false);
+ const [emailError, setEmailError] = useState("");
+ const navigate = useNavigate();
+ const emailRef = useRef();
+ const passRef = useRef();
+ let fireResp = false;
+
+ function onSubmit(event) {
+ event.preventDefault();
+
+ const account = {
+ email: emailRef.current.value,
+ password: passRef.current.value,
+ returnSecureToken: true,
+ };
+
+ fetch(
+ "https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=AIzaSyAaazs-kF0uByzgKnY4Di5bTGM-HOozi10",
+ {
+ method: "POST",
+ body: JSON.stringify(account),
+ headers: {
+ "Content-Type": "application/json",
+ },
+ }
+ )
+ .then((response) => {
+ if (response.status === 200) {
+ fireResp = true;
+ } else {
+ fireResp = false;
+ }
+ return response.json();
+ })
+ .then((data) => {
+ if (fireResp === true) {
+ setIdToken(data.idToken);
+ navigate("/feed");
+ } else {
+ setEmailError(data.error.message);
+ }
+ });
+ }
+
+ function createLoginHandler() {
+ setShowCreateLogin(!showCreateLogin);
+ }
+ return (
+ <>
+
+
+ {showCreateLogin && (
+ <>
+
+
+ >
+ )}
+ >
+ );
+}
+
+export default LoginPage;
diff --git a/src/pages/Login.module.css b/src/pages/Login.module.css
new file mode 100644
index 0000000..d881f59
--- /dev/null
+++ b/src/pages/Login.module.css
@@ -0,0 +1,29 @@
+.login{
+ display: flex;
+ margin: 100px 30% 1% 30%;
+ justify-content: center;
+}
+
+.content {
+ text-align: center;
+ padding: 10%;
+}
+
+.input input{
+ margin: 3px;
+ display: inline-block;
+ font: inherit;
+ border-radius: 4px;
+ border: 1px solid #ccc;
+ padding: 0.25rem;
+ width: 100%;
+}
+
+.create {
+ text-align: center;
+}
+
+.error{
+ text-align: center;
+ color: red;
+}
\ No newline at end of file