-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
26 changed files
with
712 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
import { configure } from 'enzyme'; | ||
import 'babel-polyfill'; | ||
import Adapter from 'enzyme-adapter-react-16'; | ||
|
||
configure({ adapter: new Adapter() }); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
@import url('https://fonts.googleapis.com/css?family=Josefin+Sans:300&display=swap'); | ||
body { | ||
font-family: 'Josefin Sans', cursive; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,77 @@ | ||
.login h2 { | ||
color: blue; | ||
font-size: 18px; | ||
.sign-in-page { | ||
h1 { | ||
text-align: center; | ||
margin-top: 2%; | ||
} | ||
|
||
.hidden { | ||
display: none; | ||
} | ||
|
||
.show { | ||
display: block; | ||
} | ||
@media (min-width: 992px) { | ||
.signin-form { | ||
display: inline-block; | ||
-moz-box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5); | ||
-webkit-box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5); | ||
box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5); | ||
padding: 70px 90px 40px 90px; | ||
width: 40%; | ||
height: 75%; | ||
margin: auto; | ||
display: flex; | ||
justify-content: space-between; | ||
flex-direction: column; | ||
margin-top: 2%; | ||
border-radius: 5px; | ||
} | ||
} | ||
|
||
.separator { | ||
display: flex; | ||
align-items: center; | ||
&-line { | ||
height: 2px; | ||
background: #cecece; | ||
width: 48%; | ||
} | ||
&-text { | ||
background: transparent; | ||
border-radius: 50%; | ||
margin: 0 5px 0 5px; | ||
border: 2px solid #cecece; | ||
padding: 1%; | ||
} | ||
margin-bottom: 4%; | ||
margin-top: 4%; | ||
} | ||
|
||
.social { | ||
display: flex; | ||
justify-content: center; | ||
&-facebook { | ||
color: white; | ||
background-color: #3b5998; | ||
margin-right: 10%; | ||
} | ||
&-google { | ||
color: white; | ||
background-color: #db4437; | ||
} | ||
} | ||
|
||
.submit-btn { | ||
background: #3472d6; | ||
} | ||
|
||
.login { | ||
display: flex; | ||
align-items: center; | ||
margin-top: 10%; | ||
&-text { | ||
margin: -14px 5px 0 5px; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
import React, { Component } from 'react'; | ||
import '../../assets/styles/login.scss'; | ||
import { Link } from 'react-router-dom'; | ||
import { Button, Form, Spinner, Alert } from 'react-bootstrap'; | ||
|
||
class LoginForm extends Component { | ||
render() { | ||
const { onSubmit, onChange, email, password, isLoading } = this.props; | ||
return ( | ||
<div className="sign-in-page"> | ||
<h1>Authors Haven</h1> | ||
<div className="signin-form " data-set="loginTestDiv"> | ||
<h1>Login</h1> | ||
<Form onSubmit={onSubmit} data-set="formTestDiv"> | ||
<Form.Group> | ||
<Form.Label>Email</Form.Label> | ||
<Form.Control | ||
placeholder="Enter email" | ||
type="email" | ||
id="email" | ||
data-test="email1" | ||
onChange={onChange} | ||
required | ||
/> | ||
</Form.Group> | ||
|
||
<Form.Group> | ||
<Form.Label>Password</Form.Label> | ||
<Form.Control | ||
placeholder="Enter password" | ||
id="password" | ||
data-test="password" | ||
className="password" | ||
onChange={onChange} | ||
type="Password" | ||
required | ||
/> | ||
</Form.Group> | ||
{!isLoading ? ( | ||
<Button | ||
className="submit-btn" | ||
type="submit" | ||
block | ||
disabled={ | ||
!email.match(/^[a-zA-z0-9_.]+@[a-zA-z0-9-]+\.[a-z]+$/) || | ||
!password.match(/^[a-zA-Z0-9]{8,}$/) | ||
} | ||
> | ||
Login | ||
</Button> | ||
) : ( | ||
<Button variant="primary" disabled block> | ||
<Spinner as="span" animation="border" size="sm" role="status" aria-hidden="true" /> | ||
Loading... | ||
</Button> | ||
)} | ||
</Form> | ||
<div> | ||
<div className="separator"> | ||
<div className="separator-line" /> | ||
<p className="separator-text">OR</p> | ||
<div className="separator-line" /> | ||
</div> | ||
<div className="social"> | ||
<p>Social login icons here</p> | ||
</div> | ||
<div className="login"> | ||
<p>No account?</p> | ||
<Link className="login-text" to="/signup"> | ||
Signup here. | ||
</Link> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
); | ||
} | ||
} | ||
|
||
export default LoginForm; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,44 @@ | ||
import React, { Component } from 'react'; | ||
import { Menu } from 'semantic-ui-react'; | ||
import { connect } from 'react-redux'; | ||
import LoggedInLinks from './LoggedInLinks'; | ||
import LoggedOutLinks from './LoggedOutLinks'; | ||
import { isLoggedIn } from '../../helpers'; | ||
import { NavLink } from 'react-router-dom'; | ||
|
||
export default class Header extends Component { | ||
class Header extends Component { | ||
render() { | ||
const { login } = this.props; | ||
const links = login.isAuthentincated || isLoggedIn() ? <LoggedInLinks /> : <LoggedOutLinks />; | ||
return ( | ||
<Menu> | ||
<NavLink to="/"> | ||
<Menu.Item header>Authors Haven</Menu.Item> | ||
<nav className="navbar navbar-expand-lg navbar-light bg-light" data-set="nav-bar-test"> | ||
<NavLink className="navbar-brand" to="/" data-set="nav-bar-brand-test"> | ||
Authors Haven | ||
</NavLink> | ||
<NavLink to="/"> | ||
<Menu.Item name="Home" /> | ||
</NavLink> | ||
<NavLink to="/login"> | ||
<Menu.Item name="login" /> | ||
</NavLink> | ||
</Menu> | ||
<button | ||
className="navbar-toggler" | ||
type="button" | ||
data-toggle="collapse" | ||
data-target="#navbarSupportedContent" | ||
aria-controls="navbarSupportedContent" | ||
aria-expanded="false" | ||
aria-label="Toggle navigation" | ||
> | ||
<span className="navbar-toggler-icon" /> | ||
</button> | ||
|
||
<div className="collapse navbar-collapse" id="navbarSupportedContent"> | ||
<ul className="navbar-nav ml-auto">{links}</ul> | ||
</div> | ||
</nav> | ||
); | ||
} | ||
} | ||
|
||
const mapStateToProps = state => ({ | ||
login: state.LoginReducer, | ||
}); | ||
|
||
export default connect( | ||
mapStateToProps, | ||
null, | ||
)(Header); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
import React from 'react'; | ||
import { NavLink, withRouter } from 'react-router-dom'; | ||
import { connect } from 'react-redux'; | ||
import { logoutUser } from '../../redux/actions/loginActions'; | ||
|
||
class LoggedInLinks extends React.Component { | ||
handleLogout = () => { | ||
localStorage.clear(); | ||
const { logoutUser } = this.props; | ||
logoutUser(); | ||
}; | ||
|
||
render() { | ||
return ( | ||
<> | ||
<NavLink className="nav-link" onClick={this.handleLogout} to="/login" data-set="nav-bar-logout-test"> | ||
Logout | ||
</NavLink> | ||
</> | ||
); | ||
} | ||
} | ||
|
||
const mapStateToProps = state => ({ | ||
login: state.loginUser, | ||
error: state.LoginReducer.error, | ||
}); | ||
|
||
const mapDispatchToProps = () => ({ | ||
logoutUser, | ||
}); | ||
|
||
export default connect( | ||
mapStateToProps, | ||
mapDispatchToProps(), | ||
)(withRouter(LoggedInLinks)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import React from 'react'; | ||
import { NavLink } from 'react-router-dom'; | ||
|
||
const LoggedOutLinks = () => ( | ||
<> | ||
<NavLink className="nav-link" to="/signup"> | ||
Sign up | ||
</NavLink> | ||
<NavLink className="nav-link" to="/login"> | ||
Login | ||
</NavLink> | ||
</> | ||
); | ||
|
||
export default LoggedOutLinks; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import { toast } from 'react-toastify'; | ||
|
||
export const successToast = message => { | ||
toast.success(message, { | ||
position: toast.POSITION.TOP_CENTER, | ||
autoClose: 3000, | ||
hideProgressBar: true, | ||
pauseOnHover: true, | ||
}); | ||
}; | ||
|
||
export const errorToast = message => { | ||
toast.error(message, { | ||
position: toast.POSITION.TOP_CENTER, | ||
autoClose: 3000, | ||
hideProgressBar: true, | ||
pauseOnHover: true, | ||
}); | ||
}; | ||
|
||
export const isLoggedIn = () => { | ||
if (localStorage.getItem('token')) { | ||
return true; | ||
} | ||
return false; | ||
}; |
Oops, something went wrong.