|
@@ -1,76 +1,44 @@
|
|
|
import React, { Component } from "react";
|
|
|
-import { Link } from "react-router-dom";
|
|
|
import { connect } from 'react-redux';
|
|
|
-import { bindActionCreators } from 'redux';
|
|
|
+import { func, object } from 'prop-types';
|
|
|
+import { bindActionCreators } from 'redux'
|
|
|
|
|
|
-import { signInRequest } from './../../actions/auth/signIn'
|
|
|
-import { signUpRequest } from './../../actions/auth/signUp'
|
|
|
+import HeaderComponent from './../../components/header';
|
|
|
|
|
|
-import * as routes from './../../constants/routes'
|
|
|
+import {signOut} from './../../actions/auth/signOut'
|
|
|
|
|
|
-import { auth } from '../../firebase_config'
|
|
|
+const UserContext = React.createContext();
|
|
|
|
|
|
class Header extends Component {
|
|
|
-
|
|
|
- state = {
|
|
|
- togglerClosed: true
|
|
|
- }
|
|
|
-
|
|
|
- handleToggle = (event) => {
|
|
|
- this.setState((prevState) => ({togglerClosed: !prevState.togglerClosed}))
|
|
|
+ static propTypes = {
|
|
|
+ user: object,
|
|
|
+ signOut: func,
|
|
|
}
|
|
|
|
|
|
render() {
|
|
|
- const {togglerClosed} = this.state;
|
|
|
- const toggleStatus = togglerClosed ? "toggle-status--closed" : "toggle-status--opened"
|
|
|
+ const { user, signOut } = this.props;
|
|
|
|
|
|
return (
|
|
|
- <header className="header">
|
|
|
- <h1 className="header__logo">Test.<span className="header__logo--i-letter">i</span>o</h1>
|
|
|
- <hr className="header__logo--divider"/>
|
|
|
- <span className="header__toggle-trigger" onClick={this.handleToggle} >
|
|
|
- <span />
|
|
|
- </span>
|
|
|
- <nav className={`header__nav ${toggleStatus}`}>
|
|
|
- <ul className="header__nav nav__list" >
|
|
|
- <li>
|
|
|
- <Link className="header__nav nav__list-item" to="/favorites">
|
|
|
- Favorites
|
|
|
- </Link>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <Link className="header__nav nav__list-item" to="/passed">
|
|
|
- Passed
|
|
|
- </Link>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <Link className="header__nav nav__list-item" to="/results">
|
|
|
- Results
|
|
|
- </Link>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </nav>
|
|
|
- <div className="header__links">
|
|
|
- <Link to="/profile">
|
|
|
- {/* <img className="header__links--profile" src="https://bit.ly/2LuGzwz" /> */}
|
|
|
- </Link>
|
|
|
- <Link className="header__links--sign-in link--btn link--btn25" to={routes.SIGN_IN}>Sign in</Link>
|
|
|
- <Link className="header__links--sign-up link--btn link--btn25" to={routes.SIGN_UP}>Sign up</Link>
|
|
|
- </div>
|
|
|
- </header>
|
|
|
+ <UserContext.Provider
|
|
|
+ value={{
|
|
|
+ user,
|
|
|
+ signOut
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <HeaderComponent />
|
|
|
+ </UserContext.Provider>
|
|
|
)
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const
|
|
|
- mapStateToProps = state => ({
|
|
|
- auth: {
|
|
|
- ...state.signIn
|
|
|
- }
|
|
|
+ mapStateToProps = ({ user }) => ({
|
|
|
+ user
|
|
|
}),
|
|
|
mapDispatchToProps = dispatch => bindActionCreators({
|
|
|
- signInRequest,
|
|
|
- signUpRequest
|
|
|
+ signOut
|
|
|
}, dispatch);
|
|
|
|
|
|
-export default connect(mapStateToProps, mapDispatchToProps)(Header)
|
|
|
+export { UserContext };
|
|
|
+export default connect(mapStateToProps, mapDispatchToProps)(Header);
|