Add icons to column headers, click them to scroll to top
This commit is contained in:
		@@ -5,15 +5,21 @@ import PureRenderMixin     from 'react-addons-pure-render-mixin';
 | 
			
		||||
const Column = React.createClass({
 | 
			
		||||
 | 
			
		||||
  propTypes: {
 | 
			
		||||
    type: React.PropTypes.string
 | 
			
		||||
    type: React.PropTypes.string,
 | 
			
		||||
    icon: React.PropTypes.string
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  mixins: [PureRenderMixin],
 | 
			
		||||
 | 
			
		||||
  handleHeaderClick () {
 | 
			
		||||
    let node = ReactDOM.findDOMNode(this);
 | 
			
		||||
    node.querySelector('.scrollable').scrollTo(0, 0);
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    return (
 | 
			
		||||
      <div style={{ width: '380px', flex: '0 0 auto', background: '#282c37', margin: '10px', marginRight: '0', display: 'flex', flexDirection: 'column' }}>
 | 
			
		||||
        <ColumnHeader type={this.props.type} />
 | 
			
		||||
        <ColumnHeader icon={this.props.icon} type={this.props.type} onClick={this.handleHeaderClick} />
 | 
			
		||||
        <StatusListContainer type={this.props.type} />
 | 
			
		||||
      </div>
 | 
			
		||||
    );
 | 
			
		||||
 
 | 
			
		||||
@@ -3,14 +3,27 @@ import PureRenderMixin from 'react-addons-pure-render-mixin';
 | 
			
		||||
const ColumnHeader = React.createClass({
 | 
			
		||||
 | 
			
		||||
  propTypes: {
 | 
			
		||||
    type: React.PropTypes.string
 | 
			
		||||
    icon: React.PropTypes.string,
 | 
			
		||||
    type: React.PropTypes.string,
 | 
			
		||||
    onClick: React.PropTypes.func
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  mixins: [PureRenderMixin],
 | 
			
		||||
 | 
			
		||||
  handleClick () {
 | 
			
		||||
    this.props.onClick();
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    let icon = '';
 | 
			
		||||
 | 
			
		||||
    if (this.props.icon) {
 | 
			
		||||
      icon = <i className={`fa fa-fw fa-${this.props.icon}`} style={{ display: 'inline-block', marginRight: '5px' }} />;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
      <div style={{ padding: '15px', fontSize: '16px', background: '#2f3441', flex: '0 0 auto' }}>
 | 
			
		||||
      <div onClick={this.handleClick} style={{ padding: '15px', fontSize: '16px', background: '#2f3441', flex: '0 0 auto', cursor: 'pointer' }}>
 | 
			
		||||
        {icon}
 | 
			
		||||
        {this.props.type}
 | 
			
		||||
      </div>
 | 
			
		||||
    );
 | 
			
		||||
 
 | 
			
		||||
@@ -8,8 +8,8 @@ const ColumnsArea = React.createClass({
 | 
			
		||||
  render () {
 | 
			
		||||
    return (
 | 
			
		||||
      <div style={{ display: 'flex', flexDirection: 'row', flex: '1' }}>
 | 
			
		||||
        <Column type='home' />
 | 
			
		||||
        <Column type='mentions' />
 | 
			
		||||
        <Column icon='home' type='home' />
 | 
			
		||||
        <Column icon='at' type='mentions' />
 | 
			
		||||
      </div>
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ const StatusList = React.createClass({
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    return (
 | 
			
		||||
      <div style={{ overflowY: 'scroll', flex: '1 1 auto' }}>
 | 
			
		||||
      <div style={{ overflowY: 'scroll', flex: '1 1 auto' }} className='scrollable'>
 | 
			
		||||
        <div>
 | 
			
		||||
          {this.props.statuses.map((status) => {
 | 
			
		||||
            return <Status key={status.get('id')} status={status} onReply={this.props.onReply} onReblog={this.props.onReblog} onFavourite={this.props.onFavourite} />;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user