Disable embed modal when private status (#4773)
* Disable embed modal when private status * Remove `reblogDisabled`
This commit is contained in:
		
							parent
							
								
									1b5806b744
								
							
						
					
					
						commit
						15963a15c6
					
				
					 2 changed files with 16 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -116,9 +116,10 @@ export default class StatusActionBar extends ImmutablePureComponent {
 | 
			
		|||
 | 
			
		||||
  render () {
 | 
			
		||||
    const { status, me, intl, withDismiss } = this.props;
 | 
			
		||||
    const reblogDisabled = status.get('visibility') === 'private' || status.get('visibility') === 'direct';
 | 
			
		||||
 | 
			
		||||
    const mutingConversation = status.get('muted');
 | 
			
		||||
    const anonymousAccess = !me;
 | 
			
		||||
    const anonymousAccess    = !me;
 | 
			
		||||
    const publicStatus       = ['public', 'unlisted'].includes(status.get('visibility'));
 | 
			
		||||
 | 
			
		||||
    let menu = [];
 | 
			
		||||
    let reblogIcon = 'retweet';
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +127,11 @@ export default class StatusActionBar extends ImmutablePureComponent {
 | 
			
		|||
    let replyTitle;
 | 
			
		||||
 | 
			
		||||
    menu.push({ text: intl.formatMessage(messages.open), action: this.handleOpen });
 | 
			
		||||
    menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
 | 
			
		||||
 | 
			
		||||
    if (publicStatus) {
 | 
			
		||||
      menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    menu.push(null);
 | 
			
		||||
 | 
			
		||||
    if (withDismiss) {
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +140,7 @@ export default class StatusActionBar extends ImmutablePureComponent {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if (status.getIn(['account', 'id']) === me) {
 | 
			
		||||
      if (['public', 'unlisted'].indexOf(status.get('visibility')) !== -1) {
 | 
			
		||||
      if (publicStatus) {
 | 
			
		||||
        menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -169,7 +174,7 @@ export default class StatusActionBar extends ImmutablePureComponent {
 | 
			
		|||
    return (
 | 
			
		||||
      <div className='status__action-bar'>
 | 
			
		||||
        <IconButton className='status__action-bar-button' disabled={anonymousAccess} title={replyTitle} icon={replyIcon} onClick={this.handleReplyClick} />
 | 
			
		||||
        <IconButton className='status__action-bar-button' disabled={anonymousAccess || reblogDisabled} active={status.get('reblogged')} pressed={status.get('reblogged')} title={reblogDisabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} />
 | 
			
		||||
        <IconButton className='status__action-bar-button' disabled={anonymousAccess || !publicStatus} active={status.get('reblogged')} pressed={status.get('reblogged')} title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} />
 | 
			
		||||
        <IconButton className='status__action-bar-button star-icon' disabled={anonymousAccess} animate active={status.get('favourited')} pressed={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} />
 | 
			
		||||
        {shareButton}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,12 +82,16 @@ export default class ActionBar extends React.PureComponent {
 | 
			
		|||
  render () {
 | 
			
		||||
    const { status, me, intl } = this.props;
 | 
			
		||||
 | 
			
		||||
    const publicStatus = ['public', 'unlisted'].includes(status.get('visibility'));
 | 
			
		||||
 | 
			
		||||
    let menu = [];
 | 
			
		||||
 | 
			
		||||
    menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
 | 
			
		||||
    if (publicStatus) {
 | 
			
		||||
      menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (me === status.getIn(['account', 'id'])) {
 | 
			
		||||
      if (['public', 'unlisted'].indexOf(status.get('visibility')) !== -1) {
 | 
			
		||||
      if (publicStatus) {
 | 
			
		||||
        menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue