Advertisement
alexward1981

Nav Component

Jun 13th, 2016
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import { Link } from 'react-router';
  3. import { connect } from 'react-redux';
  4. import { navLoad } from '../../scripts/actions';
  5.  
  6. export class Navigation extends React.Component {
  7.   componentWillMount() {
  8.     const { dispatch } = this.props;
  9.     dispatch(navLoad());
  10.   }
  11.  
  12.   render() {
  13.     const nav = this.props.nav;
  14.     const navitems = nav && nav.items ? nav.items.asMutable().map((item) => {
  15.       if(item.inNav === this.props.position || item.inNav === 'both') {
  16.         return <li key={item._id}><Link to={item.slug}>{item.name}</Link></li>
  17.       }
  18.     }) : null;
  19.     if(nav.isFetching) {
  20.       return(
  21.         <section class="loader">
  22.           <span>Content is loading...</span>
  23.         </section>
  24.       )
  25.     } else {
  26.       if (this.props.position === 'header') {
  27.         return(
  28.           <nav class="c-global-nav">
  29.             <ul>
  30.               { navitems }
  31.             </ul>
  32.           </nav>
  33.         )
  34.       } else {
  35.         return (
  36.           <nav class="c-global-footer-nav">
  37.             <ul>
  38.               { navitems }
  39.             </ul>
  40.           </nav>
  41.         )
  42.       }
  43.     }
  44.   }
  45. }
  46.  
  47. function select(state) {
  48.   const { nav } = state;
  49.   return {
  50.     nav
  51.   };
  52. }
  53.  
  54. export default connect(select)(Navigation);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement