Change last_status_at to be a date, not datetime (#12966)
* Return last_status_at as date, not datetime * Fix relative timestamp for dates when delay is inferior to 1 day * Also fix public directory * Fix error when last_status_at isn't set
This commit is contained in:
		
							parent
							
								
									401f32f9ee
								
							
						
					
					
						commit
						42d2a915e4
					
				
					 4 changed files with 17 additions and 7 deletions
				
			
		|  | @ -3,6 +3,7 @@ import { injectIntl, defineMessages } from 'react-intl'; | |||
| import PropTypes from 'prop-types'; | ||||
| 
 | ||||
| const messages = defineMessages({ | ||||
|   today: { id: 'relative_time.today', defaultMessage: 'today' }, | ||||
|   just_now: { id: 'relative_time.just_now', defaultMessage: 'now' }, | ||||
|   seconds: { id: 'relative_time.seconds', defaultMessage: '{number}s' }, | ||||
|   minutes: { id: 'relative_time.minutes', defaultMessage: '{number}m' }, | ||||
|  | @ -65,12 +66,14 @@ const getUnitDelay = units => { | |||
|   } | ||||
| }; | ||||
| 
 | ||||
| export const timeAgoString = (intl, date, now, year) => { | ||||
| export const timeAgoString = (intl, date, now, year, timeGiven = true) => { | ||||
|   const delta = now - date.getTime(); | ||||
| 
 | ||||
|   let relativeTime; | ||||
| 
 | ||||
|   if (delta < 10 * SECOND) { | ||||
|   if (delta < DAY && !timeGiven) { | ||||
|     relativeTime = intl.formatMessage(messages.today); | ||||
|   } else if (delta < 10 * SECOND) { | ||||
|     relativeTime = intl.formatMessage(messages.just_now); | ||||
|   } else if (delta < 7 * DAY) { | ||||
|     if (delta < MINUTE) { | ||||
|  | @ -91,12 +94,14 @@ export const timeAgoString = (intl, date, now, year) => { | |||
|   return relativeTime; | ||||
| }; | ||||
| 
 | ||||
| const timeRemainingString = (intl, date, now) => { | ||||
| const timeRemainingString = (intl, date, now, timeGiven = true) => { | ||||
|   const delta = date.getTime() - now; | ||||
| 
 | ||||
|   let relativeTime; | ||||
| 
 | ||||
|   if (delta < 10 * SECOND) { | ||||
|   if (delta < DAY && !timeGiven) { | ||||
|     relativeTime = intl.formatMessage(messages.today); | ||||
|   } else if (delta < 10 * SECOND) { | ||||
|     relativeTime = intl.formatMessage(messages.moments_remaining); | ||||
|   } else if (delta < MINUTE) { | ||||
|     relativeTime = intl.formatMessage(messages.seconds_remaining, { number: Math.floor(delta / SECOND) }); | ||||
|  | @ -173,8 +178,9 @@ class RelativeTimestamp extends React.Component { | |||
|   render () { | ||||
|     const { timestamp, intl, year, futureDate } = this.props; | ||||
| 
 | ||||
|     const timeGiven    = timestamp.includes('T'); | ||||
|     const date         = new Date(timestamp); | ||||
|     const relativeTime = futureDate ? timeRemainingString(intl, date, this.state.now) : timeAgoString(intl, date, this.state.now, year); | ||||
|     const relativeTime = futureDate ? timeRemainingString(intl, date, this.state.now, timeGiven) : timeAgoString(intl, date, this.state.now, year, timeGiven); | ||||
| 
 | ||||
|     return ( | ||||
|       <time dateTime={timestamp} title={intl.formatDate(date, dateFormatOptions)}> | ||||
|  |  | |||
|  | @ -55,4 +55,8 @@ class REST::AccountSerializer < ActiveModel::Serializer | |||
|   def moved_and_not_nested? | ||||
|     object.moved? && object.moved_to_account.moved_to_account_id.nil? | ||||
|   end | ||||
| 
 | ||||
|   def last_status_at | ||||
|     object.last_status_at&.to_date&.iso8601 | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -47,7 +47,7 @@ | |||
|             %small= t('accounts.followers', count: account.followers_count).downcase | ||||
|           .accounts-table__count | ||||
|             - if account.last_status_at.present? | ||||
|               %time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at | ||||
|               %time.time-ago{ datetime: account.last_status_at.to_date.iso8601, title: l(account.last_status_at.to_date) }= l account.last_status_at.to_date | ||||
|             - else | ||||
|               = t('accounts.never_active') | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ | |||
|             %small= t('accounts.followers', count: account.followers_count).downcase | ||||
|           %td.accounts-table__count | ||||
|             - if account.last_status_at.present? | ||||
|               %time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at | ||||
|               %time.time-ago{ datetime: account.last_status_at.to_date.iso8601, title: l(account.last_status_at.to_date) }= l account.last_status_at | ||||
|             - else | ||||
|               \- | ||||
|             %small= t('accounts.last_active') | ||||
|  |  | |||
		Reference in a new issue