<commit_before>import React, { PropTypes } from 'react';
import { connect } from 'react-redux';
import Player from './Player';


const PlayerList = ({ heading, players, playerFilter, onSubClick}) => (
  <div>
    <h2>{heading}</h2>
    <ul className='list-group'>
      {players.filter(playerFilter).map( p => <li className='list-group-item' key={p.id}><Player player={p} onSubClick={onSubClick} /></li> )}
    </ul>
  </div>
);

const mapStateToProps = (state, ownProps) => {
  return { players: state.players.present, currentTime: state.clock.currentTime};
};

const mapDispatchToProps = dispatch => {
  return {
    onSubClick: (playerId, currentTime) => dispatch({ type: 'SUB_PLAYER', playerId, currentTime }),
  };
};

function mergeProps(stateProps, dispatchProps, ownProps) {
  return Object.assign({}, ownProps, {
    players: stateProps.players,
    onSubClick: (playerId) => dispatchProps.onSubClick(playerId, stateProps.currentTime)
  })
}

export default connect(mapStateToProps, mapDispatchToProps, mergeProps)(PlayerList)
<commit_msg>player list headings are labels<commit_after>import React, { PropTypes } from 'react';
import { connect } from 'react-redux';
import Player from './Player';
import { Label } from 'react-bootstrap';


const PlayerList = ({ heading, players, playerFilter, onSubClick}) => (
  <div>
    <h2><Label>{heading}</Label></h2>
    <ul className='list-group'>
      {players.filter(playerFilter).map( p => <li className='list-group-item' key={p.id}><Player player={p} onSubClick={onSubClick} /></li> )}
    </ul>
  </div>
);

const mapStateToProps = (state, ownProps) => {
  return { players: state.players.present, currentTime: state.clock.currentTime};
};

const mapDispatchToProps = dispatch => {
  return {
    onSubClick: (playerId, currentTime) => dispatch({ type: 'SUB_PLAYER', playerId, currentTime }),
  };
};

function mergeProps(stateProps, dispatchProps, ownProps) {
  return Object.assign({}, ownProps, {
    players: stateProps.players,
    onSubClick: (playerId) => dispatchProps.onSubClick(playerId, stateProps.currentTime)
  })
}

export default connect(mapStateToProps, mapDispatchToProps, mergeProps)(PlayerList)

{'fraction_non_alphanumeric': 0.15714285714285714, 'fraction_numerical': 0.0018433179723502304, 'mean_word_length': 5.047353760445683, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 35, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2224504', 'n_tokens_mistral': 683, 'n_tokens_neox': 684, 'n_words': 152}