Home Reference Source Repository

src/components/navbar/Navbar.js

/**
 * @author haw
 * 导航栏标题
 */

import React, {
  PropTypes
} from 'react';
import {classNames} from '../util';
import NavBarItem from './NavbarItem';

const prefix = 'navbar';

/**
 * 导航条
 * @param {Object} props 组件所使用的属性
 * @param {PropTypes.node} [props.leftElement] 导航条左边位置的内容
 * @param {PropTypes.node} [props.centerElement] 导航条中间位置的内容
 * @param {PropTypes.node} [props.rightElement] 导航条右边位置的内容
 */
export default function NavBar(props) {
  const {
    leftElement,
    rightElement,
    centerElement,
    children,
    className,
    ...rest
  } = props;
  let clazz = classNames(prefix, {
    [className]: className
  });
  let nodes;

  if (!children) {
    nodes = [leftElement, centerElement, rightElement].map((el, i) => {
      return <NavBarItem key={i}>{el}</NavBarItem>;
    });
  }

  return (
    <div className={clazz} {...rest}>
      {children || nodes}
    </div>
  );
}

NavBar.propTypes = {
  leftElement: PropTypes.node,
  centerElement: PropTypes.node,
  rightElement: PropTypes.node,
  className: PropTypes.string,
  children: PropTypes.node
};