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> |               </a> | ||||||
|             </div> |             </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} |             {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} /> |             <StatusActionBar status={status} account={account} {...other} /> | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|  |  | ||||||
|  | @ -20,6 +20,7 @@ export default class StatusContent extends React.PureComponent { | ||||||
|   static propTypes = { |   static propTypes = { | ||||||
|     status: ImmutablePropTypes.map.isRequired, |     status: ImmutablePropTypes.map.isRequired, | ||||||
|     expanded: PropTypes.bool, |     expanded: PropTypes.bool, | ||||||
|  |     showThread: PropTypes.bool, | ||||||
|     onExpandedToggle: PropTypes.func, |     onExpandedToggle: PropTypes.func, | ||||||
|     onClick: PropTypes.func, |     onClick: PropTypes.func, | ||||||
|     collapsable: PropTypes.bool, |     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 hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; | ||||||
|     const renderReadMore = this.props.onClick && status.get('collapsed'); |     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 content = { __html: status.get('contentHtml') }; | ||||||
|     const spoilerContent = { __html: status.get('spoilerHtml') }; |     const spoilerContent = { __html: status.get('spoilerHtml') }; | ||||||
|  | @ -195,6 +197,12 @@ export default class StatusContent extends React.PureComponent { | ||||||
|       directionStyle.direction = 'rtl'; |       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 = ( |     const readMoreButton = ( | ||||||
|       <button className='status__content__read-more-button' onClick={this.props.onClick} key='read-more'> |       <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 /> |         <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} /> |           <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')} />} |           {!hidden && !!status.get('poll') && <PollContainer pollId={status.get('poll')} />} | ||||||
|  | 
 | ||||||
|  |           {renderViewThread && showThreadButton} | ||||||
|         </div> |         </div> | ||||||
|       ); |       ); | ||||||
|     } else if (this.props.onClick) { |     } 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} /> |           <div className='status__content__text status__content__text--visible' style={directionStyle} dangerouslySetInnerHTML={content} /> | ||||||
| 
 | 
 | ||||||
|           {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />} |           {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />} | ||||||
|  | 
 | ||||||
|  |           {renderViewThread && showThreadButton} | ||||||
|         </div>, |         </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} /> |           <div className='status__content__text status__content__text--visible' style={directionStyle} dangerouslySetInnerHTML={content} /> | ||||||
| 
 | 
 | ||||||
|           {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />} |           {!!status.get('poll') && <PollContainer pollId={status.get('poll')} />} | ||||||
|  | 
 | ||||||
|  |           {renderViewThread && showThreadButton} | ||||||
|         </div> |         </div> | ||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -160,7 +160,7 @@ class Conversation extends ImmutablePureComponent { | ||||||
|     return ( |     return ( | ||||||
|       <HotKeys handlers={handlers}> |       <HotKeys handlers={handlers}> | ||||||
|         <div className={classNames('conversation focusable muted', { 'conversation--unread': unread })} tabIndex='0'> |         <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} /> |             <AvatarComposite accounts={accounts} size={48} /> | ||||||
|           </div> |           </div> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1331,7 +1331,6 @@ | ||||||
|     border-radius: 50%; |     border-radius: 50%; | ||||||
|     overflow: hidden; |     overflow: hidden; | ||||||
|     position: relative; |     position: relative; | ||||||
|     cursor: default; |  | ||||||
| 
 | 
 | ||||||
|     & > div { |     & > div { | ||||||
|       float: left; |       float: left; | ||||||
|  | @ -6568,6 +6567,7 @@ noscript { | ||||||
|     padding: 10px; |     padding: 10px; | ||||||
|     padding-top: 12px; |     padding-top: 12px; | ||||||
|     position: relative; |     position: relative; | ||||||
|  |     cursor: pointer; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &__unread { |   &__unread { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue