Improve toot clicking areas (#13327)
* Make the area to the left “Show Thread” also expand the toot in Web UI * Clicking the left part of a conversation with the avatars now opens it in Web UI
This commit is contained in:
		
					parent
					
						
							
								9241cbf861
							
						
					
				
			
			
				commit
				
					
						1fb92037e4
					
				
			
		
					 4 changed files with 17 additions and 9 deletions
				
			
		|  | @ -432,16 +432,10 @@ class Status extends ImmutablePureComponent { | |||
|               </a> | ||||
|             </div> | ||||
| 
 | ||||
|             <StatusContent status={status} onClick={this.handleClick} expanded={!status.get('hidden')} onExpandedToggle={this.handleExpandedToggle} collapsable onCollapsedToggle={this.handleCollapsedToggle} /> | ||||
|             <StatusContent status={status} onClick={this.handleClick} expanded={!status.get('hidden')} showThread={showThread} onExpandedToggle={this.handleExpandedToggle} collapsable onCollapsedToggle={this.handleCollapsedToggle} /> | ||||
| 
 | ||||
|             {media} | ||||
| 
 | ||||
|             {showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) && ( | ||||
|               <button className='status__content__read-more-button' onClick={this.handleClick}> | ||||
|                 <FormattedMessage id='status.show_thread' defaultMessage='Show thread' /> | ||||
|               </button> | ||||
|             )} | ||||
| 
 | ||||
|             <StatusActionBar status={status} account={account} {...other} /> | ||||
|           </div> | ||||
|         </div> | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ export default class StatusContent extends React.PureComponent { | |||
|   static propTypes = { | ||||
|     status: ImmutablePropTypes.map.isRequired, | ||||
|     expanded: PropTypes.bool, | ||||
|     showThread: PropTypes.bool, | ||||
|     onExpandedToggle: PropTypes.func, | ||||
|     onClick: PropTypes.func, | ||||
|     collapsable: PropTypes.bool, | ||||
|  | @ -181,6 +182,7 @@ export default class StatusContent extends React.PureComponent { | |||
| 
 | ||||
|     const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; | ||||
|     const renderReadMore = this.props.onClick && status.get('collapsed'); | ||||
|     const renderViewThread = this.props.showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id']); | ||||
| 
 | ||||
|     const content = { __html: status.get('contentHtml') }; | ||||
|     const spoilerContent = { __html: status.get('spoilerHtml') }; | ||||
|  | @ -195,6 +197,12 @@ export default class StatusContent extends React.PureComponent { | |||
|       directionStyle.direction = 'rtl'; | ||||
|     } | ||||
| 
 | ||||
|     const showThreadButton = ( | ||||
|       <button className='status__content__read-more-button' onClick={this.props.onClick}> | ||||
|         <FormattedMessage id='status.show_thread' defaultMessage='Show thread' /> | ||||
|       </button> | ||||
|     ); | ||||
| 
 | ||||
|     const readMoreButton = ( | ||||
|       <button className='status__content__read-more-button' onClick={this.props.onClick} key='read-more'> | ||||
|         <FormattedMessage id='status.read_more' defaultMessage='Read more' /><Icon id='angle-right' fixedWidth /> | ||||
|  | @ -229,6 +237,8 @@ export default class StatusContent extends React.PureComponent { | |||
|           <div tabIndex={!hidden ? 0 : null} className={`status__content__text ${!hidden ? 'status__content__text--visible' : ''}`} style={directionStyle} dangerouslySetInnerHTML={content} /> | ||||
| 
 | ||||
|           {!hidden && !!status.get('poll') && <PollContainer pollId={status.get('poll')} />} | ||||
| 
 | ||||
|           {renderViewThread && showThreadButton} | ||||
|         </div> | ||||
|       ); | ||||
|     } else if (this.props.onClick) { | ||||
|  | @ -237,6 +247,8 @@ export default class StatusContent extends React.PureComponent { | |||
|           <div className='status__content__text status__content__text--visible' style={directionStyle} dangerouslySetInnerHTML={content} /> | ||||
| 
 | ||||
|           {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />} | ||||
| 
 | ||||
|           {renderViewThread && showThreadButton} | ||||
|         </div>, | ||||
|       ]; | ||||
| 
 | ||||
|  | @ -251,6 +263,8 @@ export default class StatusContent extends React.PureComponent { | |||
|           <div className='status__content__text status__content__text--visible' style={directionStyle} dangerouslySetInnerHTML={content} /> | ||||
| 
 | ||||
|           {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />} | ||||
| 
 | ||||
|           {renderViewThread && showThreadButton} | ||||
|         </div> | ||||
|       ); | ||||
|     } | ||||
|  |  | |||
|  | @ -160,7 +160,7 @@ class Conversation extends ImmutablePureComponent { | |||
|     return ( | ||||
|       <HotKeys handlers={handlers}> | ||||
|         <div className={classNames('conversation focusable muted', { 'conversation--unread': unread })} tabIndex='0'> | ||||
|           <div className='conversation__avatar'> | ||||
|           <div className='conversation__avatar' onClick={this.handleClick} role='presentation'> | ||||
|             <AvatarComposite accounts={accounts} size={48} /> | ||||
|           </div> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1331,7 +1331,6 @@ | |||
|     border-radius: 50%; | ||||
|     overflow: hidden; | ||||
|     position: relative; | ||||
|     cursor: default; | ||||
| 
 | ||||
|     & > div { | ||||
|       float: left; | ||||
|  | @ -6568,6 +6567,7 @@ noscript { | |||
|     padding: 10px; | ||||
|     padding-top: 12px; | ||||
|     position: relative; | ||||
|     cursor: pointer; | ||||
|   } | ||||
| 
 | ||||
|   &__unread { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue