{title}
{text}
+ {children}
)
+BannerTopBar.propTypes = {
+ children: PropTypes.node,
+ backgroundUrl: PropTypes.string,
+ size: PropTypes.string,
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),
+ text: PropTypes.oneOfType([PropTypes.string, PropTypes.array])
+}
+
export default BannerTopBar
diff --git a/client/src/views/common/index.js b/client/src/views/common/index.js
new file mode 100644
index 000000000..9af9dc8f7
--- /dev/null
+++ b/client/src/views/common/index.js
@@ -0,0 +1,3 @@
+import BannerTopBar from './components/BannerTopBar'
+
+export { BannerTopBar }
diff --git a/client/src/views/email-verification/components/SignupForm.js b/client/src/views/email-verification/components/SignupForm.js
new file mode 100644
index 000000000..408fd5c3a
--- /dev/null
+++ b/client/src/views/email-verification/components/SignupForm.js
@@ -0,0 +1,138 @@
+import React, { Component } from 'react'
+import PropTypes from 'prop-types'
+import { withStyles } from '@material-ui/core/styles'
+import withWidth from '@material-ui/core/withWidth'
+import { Mutation } from 'react-apollo'
+
+import Typography from '@material-ui/core/Typography'
+import Grid from '@material-ui/core/Grid'
+import Button from '@material-ui/core/Button'
+import InputBase from '@material-ui/core/InputBase'
+
+import styles from './styles'
+
+import NEWSLETTER_SIGNUP from '../graphql/NewsletterSignup'
+
+import { isEmpty } from '../../../utils/js-helpers'
+
+export class SignupForm extends Component {
+ constructor (props) {
+ super(props)
+
+ this.handleChange = this.handleChange.bind(this)
+ this.handleSubmit = this.handleSubmit.bind(this)
+ this.validate = this.validate.bind(this)
+
+ this.state = {
+ email: '',
+ emailError: '',
+ success: false
+ }
+ }
+
+ render () {
+ const {
+ classes,
+ width,
+ alignCenter,
+ displayTitle,
+ displayIntro
+ } = this.props
+ return (
+