Reblogs fixed
This commit is contained in:
		
							parent
							
								
									595c8dda60
								
							
						
					
					
						commit
						c249ceb10c
					
				
							
								
								
									
										3
									
								
								.babelrc
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								.babelrc
									
									
									
									
									
								
							@ -1,3 +1,4 @@
 | 
			
		||||
{
 | 
			
		||||
  "presets": ["es2015", "react"]
 | 
			
		||||
  "presets": ["es2015", "react"],
 | 
			
		||||
  "plugins": ["transform-object-rest-spread"]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,6 +5,8 @@
 | 
			
		||||
    "es6": true
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  "parser": "babel-eslint",
 | 
			
		||||
 | 
			
		||||
  "plugins": [
 | 
			
		||||
    "react"
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,9 @@ export function reblog(status) {
 | 
			
		||||
    dispatch(reblogRequest(status));
 | 
			
		||||
 | 
			
		||||
    api(getState).post(`/api/statuses/${status.get('id')}/reblog`).then(function (response) {
 | 
			
		||||
      dispatch(reblogSuccess(status, response.data));
 | 
			
		||||
      // The reblog API method returns a new status wrapped around the original. In this case we are only
 | 
			
		||||
      // interested in how the original is modified, hence passing it skipping the wrapper
 | 
			
		||||
      dispatch(reblogSuccess(status, response.data.reblog));
 | 
			
		||||
    }).catch(function (error) {
 | 
			
		||||
      dispatch(reblogFail(status, error));
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,19 @@
 | 
			
		||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
			
		||||
 | 
			
		||||
const DisplayName = React.createClass({
 | 
			
		||||
 | 
			
		||||
  propTypes: {
 | 
			
		||||
    account: ImmutablePropTypes.map.isRequired
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    return (
 | 
			
		||||
      <span style={{ display: 'block', maxWidth: '100%', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }}>
 | 
			
		||||
        <strong style={{ fontWeight: 'bold' }}>{this.props.account.get('display_name')}</strong> <span style={{ fontSize: '14px' }}>@{this.props.account.get('acct')}</span>
 | 
			
		||||
      </span>
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export default DisplayName;
 | 
			
		||||
@ -2,6 +2,7 @@ import PureRenderMixin    from 'react-addons-pure-render-mixin';
 | 
			
		||||
import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
			
		||||
import Avatar             from './avatar';
 | 
			
		||||
import IconButton         from './icon_button';
 | 
			
		||||
import DisplayName        from './display_name';
 | 
			
		||||
 | 
			
		||||
const ReplyIndicator = React.createClass({
 | 
			
		||||
 | 
			
		||||
@ -26,7 +27,7 @@ const ReplyIndicator = React.createClass({
 | 
			
		||||
 | 
			
		||||
          <a href={this.props.status.getIn(['account', 'url'])} className='reply-indicator__display-name' style={{ display: 'block', maxWidth: '100%', paddingRight: '25px', color: '#282c37', textDecoration: 'none', overflow: 'hidden', lineHeight: '24px' }}>
 | 
			
		||||
            <div style={{ float: 'left', marginRight: '5px' }}><Avatar size={24} src={this.props.status.getIn(['account', 'avatar'])} /></div>
 | 
			
		||||
            <strong style={{ fontWeight: '500' }}>{this.props.status.getIn(['account', 'display_name'])}</strong> <span>@{this.props.status.getIn(['account', 'acct'])}</span>
 | 
			
		||||
            <DisplayName account={this.props.status.get('account')} />
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@ import Avatar             from './avatar';
 | 
			
		||||
import RelativeTimestamp  from './relative_timestamp';
 | 
			
		||||
import PureRenderMixin    from 'react-addons-pure-render-mixin';
 | 
			
		||||
import IconButton         from './icon_button';
 | 
			
		||||
import DisplayName        from './display_name';
 | 
			
		||||
 | 
			
		||||
const Status = React.createClass({
 | 
			
		||||
 | 
			
		||||
@ -29,7 +30,20 @@ const Status = React.createClass({
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    var content = { __html: this.props.status.get('content') };
 | 
			
		||||
    var status  = this.props.status;
 | 
			
		||||
    var { status, ...other } = this.props;
 | 
			
		||||
 | 
			
		||||
    if (status.get('reblog') !== null) {
 | 
			
		||||
      return (
 | 
			
		||||
        <div>
 | 
			
		||||
          <div style={{ marginLeft: '68px', color: '#616b86', padding: '8px 0', paddingBottom: '2px', fontSize: '14px', position: 'relative' }}>
 | 
			
		||||
            <div style={{ position: 'absolute', 'left': '-26px'}}><i className='fa fa-fw fa-retweet'></i></div>
 | 
			
		||||
            <a href={status.getIn(['account', 'url'])} style={{ color: '#616b86' }}>{status.getIn(['account', 'display_name'])}</a> reblogged
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <Status {...other} status={status.get('reblog')} />
 | 
			
		||||
        </div>
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
      <div style={{ padding: '8px 10px', paddingLeft: '68px', position: 'relative', minHeight: '48px', borderBottom: '1px solid #363c4b', cursor: 'pointer' }}>
 | 
			
		||||
@ -43,9 +57,7 @@ const Status = React.createClass({
 | 
			
		||||
              <Avatar src={status.getIn(['account', 'avatar'])} size={48} />
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <span style={{ display: 'block', maxWidth: '100%', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis' }}>
 | 
			
		||||
              <strong style={{ fontWeight: 'bold', color: '#fff' }}>{status.getIn(['account', 'display_name'])}</strong> <span style={{ fontSize: '14px' }}>@{status.getIn(['account', 'acct'])}</span>
 | 
			
		||||
            </span>
 | 
			
		||||
            <DisplayName account={status.get('account')} />
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -76,6 +76,12 @@
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.status__display-name {
 | 
			
		||||
  strong {
 | 
			
		||||
    color: #fff;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.status__display-name, .reply-indicator__display-name {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    strong {
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,7 @@
 | 
			
		||||
  "name": "mastodon",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "babel-plugin-react-transform": "^2.0.2",
 | 
			
		||||
    "babel-plugin-transform-object-rest-spread": "^6.8.0",
 | 
			
		||||
    "babel-preset-es2015": "^6.13.2",
 | 
			
		||||
    "babel-preset-react": "^6.11.1",
 | 
			
		||||
    "babelify": "^7.3.0",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user