diff --git a/src/components/App.js b/src/components/App.js index f320bcd..3b4bf26 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -69,30 +69,37 @@ class App extends Component { { +const PrivateRoute = ({ + component: Component, + authed, + authUser, + emailVerificationUnnecessary = true, + ...rest +}) => { return ( {({ location }) => authed === true ? ( - + emailVerificationUnnecessary || authUser.emailVerified ? ( + + ) : ( + + ) ) : ( ) diff --git a/src/components/ResendNotice.js b/src/components/ResendNotice.js new file mode 100644 index 0000000..59b9f7b --- /dev/null +++ b/src/components/ResendNotice.js @@ -0,0 +1,43 @@ +import React from "react" +import styled from "@emotion/styled" +import { withTheme } from "emotion-theming" +import { compose } from "recompose" + +import { withFirebase } from "components/firebase" +import { Button } from "components/elements" +import Logo from "components/Logo" + +const NoticeBlock = styled.footer` + margin-top: 30px; + padding: 30px 0px; + text-align: center; + color: ${props => props.theme.colors.secondary}; +` + +const ResendNotice = ({ theme, firebase }) => ( + +
+ +
+
+ Looks like you haven't verified your email, please verify before using the + app +
+
+ +
+
+) + +export default compose( + withFirebase, + withTheme +)(ResendNotice) diff --git a/src/components/firebase/fire.js b/src/components/firebase/fire.js index 737176b..7238fae 100644 --- a/src/components/firebase/fire.js +++ b/src/components/firebase/fire.js @@ -53,6 +53,9 @@ class Firebase { window.location.replace("/login") } + // send email reset to email provided + resendVerification = () => this.auth.currentUser.sendEmailVerification() + // send email reset to email provided doPasswordReset = email => this.auth.sendPasswordResetEmail(email) diff --git a/src/routes/User.js b/src/routes/User.js index 8eb1db5..e6e5643 100644 --- a/src/routes/User.js +++ b/src/routes/User.js @@ -94,9 +94,21 @@ class User extends React.Component { User: {authUser.email}
- {authUser.emailVerified - ? "Email has been verified" - : "Email not verified"} + {authUser.emailVerified ? ( + "Email has been verified" + ) : ( + + Email not verified{" "} + { + console.log("resent!") + firebase.resendVerification(authUser.email) + }} + > + Resend? + + + )}