const GitBook = require('gitbook-core'); const { React } = GitBook; const SITES = require('../SITES'); const optionsShape = require('../shapes/options'); const SiteButton = require('./SiteButton'); const ShareButton = require('./ShareButton'); /** * Displays the group of sharing buttons */ const SharingButtons = React.createClass({ propTypes: { options: optionsShape.isRequired, page: GitBook.PropTypes.Page.isRequired }, onShare(site) { site.onShare(location.href, this.props.page.title); }, render() { const { options } = this.props; // Highlighted sites const mainButtons = SITES .ALL .filter(id => options[id]) .map(id => ); // Other sites let shareButton = undefined; if (options.all.length > 0) { shareButton = ( ); } return ( { mainButtons } { shareButton } ); } }); function mapStateToProps(state) { let options = state.config.getIn(['pluginsConfig', 'sharing']); if (options) { options = options.toJS(); } else { options = { all: [] }; } return { page: state.page, options }; } module.exports = GitBook.connect(SharingButtons, mapStateToProps);