UNPKG

bulma-dashboard-theme-worona

Version:
54 lines (47 loc) 1.5 kB
import React from 'react'; import { connect } from 'react-redux'; import { Link } from 'react-router'; import cn from 'classnames'; import * as deps from '../../deps'; import Icon from '../../elements/Icon'; let Tab = ({ name, service, selectedSiteId, selectedService, icon, disabled }) => { const liClass = cn({ 'is-disabled': disabled, 'is-active': selectedService === service, }); return ( <li className={liClass}> <Link to={`/site/${selectedSiteId}/${service}`}> <Icon code={icon} /> <span className="is-hidden-mobile">{name}</span> </Link> </li> ); }; Tab.propTypes = { name: React.PropTypes.string.isRequired, selectedSiteId: React.PropTypes.string.isRequired, selectedService: React.PropTypes.string.isRequired, icon: React.PropTypes.string, service: React.PropTypes.string, disabled: React.PropTypes.bool, }; const mapStateToProps = state => ({ selectedSiteId: deps.selectors.getSelectedSiteId(state), selectedService: deps.selectors.getSelectedService(state), }); Tab = connect(mapStateToProps)(Tab); const ServiceTabs = () => ( <div className="hero-foot"> <div className="container"> <div className="tabs is-boxed"> <ul> <Tab name="Native & Web App" service="app" icon="mobile" /> <Tab name="Instant Articles" service="fbia" icon="facebook" /> <Tab name="AMP" service="amp" icon="google" /> </ul> </div> </div> </div> ); export default ServiceTabs;