parent
							
								
									b9c3788485
								
							
						
					
					
						commit
						a791bac153
					
				
					 3 changed files with 25 additions and 8 deletions
				
			
		|  | @ -18,12 +18,12 @@ import classNames from 'classnames'; | |||
| // to use the progress bar to show download progress
 | ||||
| import Bundle from '../features/ui/components/bundle'; | ||||
| 
 | ||||
| export const textForScreenReader = (intl, status, rebloggedByText = false, expanded = false) => { | ||||
| export const textForScreenReader = (intl, status, rebloggedByText = false) => { | ||||
|   const displayName = status.getIn(['account', 'display_name']); | ||||
| 
 | ||||
|   const values = [ | ||||
|     displayName.length === 0 ? status.getIn(['account', 'acct']).split('@')[0] : displayName, | ||||
|     status.get('spoiler_text') && !expanded ? status.get('spoiler_text') : status.get('search_index').slice(status.get('spoiler_text').length), | ||||
|     status.get('spoiler_text') && status.get('hidden') ? status.get('spoiler_text') : status.get('search_index').slice(status.get('spoiler_text').length), | ||||
|     intl.formatDate(status.get('created_at'), { hour: '2-digit', minute: '2-digit', month: 'short', day: 'numeric' }), | ||||
|     status.getIn(['account', 'acct']), | ||||
|   ]; | ||||
|  |  | |||
|  | @ -3,11 +3,20 @@ import PropTypes from 'prop-types'; | |||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||
| import StatusContainer from '../../../containers/status_container'; | ||||
| import AccountContainer from '../../../containers/account_container'; | ||||
| import { FormattedMessage } from 'react-intl'; | ||||
| import { injectIntl, FormattedMessage } from 'react-intl'; | ||||
| import Permalink from '../../../components/permalink'; | ||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||
| import { HotKeys } from 'react-hotkeys'; | ||||
| 
 | ||||
| const notificationForScreenReader = (intl, message, timestamp) => { | ||||
|   const output = [message]; | ||||
| 
 | ||||
|   output.push(intl.formatDate(timestamp, { hour: '2-digit', minute: '2-digit', month: 'short', day: 'numeric' })); | ||||
| 
 | ||||
|   return output.join(', '); | ||||
| }; | ||||
| 
 | ||||
| @injectIntl | ||||
| export default class Notification extends ImmutablePureComponent { | ||||
| 
 | ||||
|   static contextTypes = { | ||||
|  | @ -20,6 +29,7 @@ export default class Notification extends ImmutablePureComponent { | |||
|     onMoveUp: PropTypes.func.isRequired, | ||||
|     onMoveDown: PropTypes.func.isRequired, | ||||
|     onMention: PropTypes.func.isRequired, | ||||
|     intl: PropTypes.object.isRequired, | ||||
|   }; | ||||
| 
 | ||||
|   handleMoveUp = () => { | ||||
|  | @ -65,10 +75,12 @@ export default class Notification extends ImmutablePureComponent { | |||
|     }; | ||||
|   } | ||||
| 
 | ||||
|   renderFollow (account, link) { | ||||
|   renderFollow (notification, account, link) { | ||||
|     const { intl } = this.props; | ||||
| 
 | ||||
|     return ( | ||||
|       <HotKeys handlers={this.getHandlers()}> | ||||
|         <div className='notification notification-follow focusable' tabIndex='0'> | ||||
|         <div className='notification notification-follow focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.follow', defaultMessage: '{name} followed you' }, { name: account.get('acct') }), notification.get('created_at'))}> | ||||
|           <div className='notification__message'> | ||||
|             <div className='notification__favourite-icon-wrapper'> | ||||
|               <i className='fa fa-fw fa-user-plus' /> | ||||
|  | @ -97,9 +109,11 @@ export default class Notification extends ImmutablePureComponent { | |||
|   } | ||||
| 
 | ||||
|   renderFavourite (notification, link) { | ||||
|     const { intl } = this.props; | ||||
| 
 | ||||
|     return ( | ||||
|       <HotKeys handlers={this.getHandlers()}> | ||||
|         <div className='notification notification-favourite focusable' tabIndex='0'> | ||||
|         <div className='notification notification-favourite focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.favourite', defaultMessage: '{name} favourited your status' }, { name: notification.getIn(['account', 'acct']) }), notification.get('created_at'))}> | ||||
|           <div className='notification__message'> | ||||
|             <div className='notification__favourite-icon-wrapper'> | ||||
|               <i className='fa fa-fw fa-star star-icon' /> | ||||
|  | @ -114,9 +128,11 @@ export default class Notification extends ImmutablePureComponent { | |||
|   } | ||||
| 
 | ||||
|   renderReblog (notification, link) { | ||||
|     const { intl } = this.props; | ||||
| 
 | ||||
|     return ( | ||||
|       <HotKeys handlers={this.getHandlers()}> | ||||
|         <div className='notification notification-reblog focusable' tabIndex='0'> | ||||
|         <div className='notification notification-reblog focusable' tabIndex='0' aria-label={notificationForScreenReader(intl, intl.formatMessage({ id: 'notification.reblog', defaultMessage: '{name} boosted your status' }, { name: notification.getIn(['account', 'acct']) }), notification.get('created_at'))}> | ||||
|           <div className='notification__message'> | ||||
|             <div className='notification__favourite-icon-wrapper'> | ||||
|               <i className='fa fa-fw fa-retweet' /> | ||||
|  | @ -138,7 +154,7 @@ export default class Notification extends ImmutablePureComponent { | |||
| 
 | ||||
|     switch(notification.get('type')) { | ||||
|     case 'follow': | ||||
|       return this.renderFollow(account, link); | ||||
|       return this.renderFollow(notification, account, link); | ||||
|     case 'mention': | ||||
|       return this.renderMention(notification); | ||||
|     case 'favourite': | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ const notificationToMap = notification => ImmutableMap({ | |||
|   id: notification.id, | ||||
|   type: notification.type, | ||||
|   account: notification.account.id, | ||||
|   created_at: notification.created_at, | ||||
|   status: notification.status ? notification.status.id : null, | ||||
| }); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue