Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .changelog/2401.bugfix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix inconsistent relative time displays
5 changes: 1 addition & 4 deletions src/app/components/TableCellAge/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { FC } from 'react'
import { Tooltip } from '@oasisprotocol/ui-library/src/components/tooltip'
import { formatDistanceToNow } from '../../utils/dateFormatter'
import { useFormattedTimestamp } from '../../hooks/useFormattedTimestamp'
import { formatDistanceStrict } from 'date-fns/formatDistanceStrict'
import { useLocalSettings } from '../../hooks/useLocalSettings'
import { TableAgeType } from '../../../types/table-age-type'

Expand All @@ -26,9 +25,7 @@ export const TableCellAge: FC<{ sinceTimestamp: string }> = ({ sinceTimestamp })
if (isNaN(date.getTime())) return null

const distance = formatDistanceToNow(date)
const distanceWithSuffix = formatDistanceStrict(sinceTimestamp, new Date(), {
addSuffix: true,
})
const distanceWithSuffix = formatDistanceToNow(date, { keepSuffix: true, style: 'long' })
const title = (
<>
<div className="font-medium">{defaultFormatted}</div>
Expand Down
7 changes: 4 additions & 3 deletions src/app/hooks/useFormattedTimestamp.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { formatDistanceStrict } from 'date-fns/formatDistanceStrict'
import { formatDistanceToNow } from '../utils/dateFormatter'
import { useTranslation } from 'react-i18next'
import { useScreenSize } from './useScreensize'

Expand Down Expand Up @@ -41,8 +41,9 @@ export const useFormattedTimestampStringWithDistance = (
const { isMobile } = useScreenSize()
if (!timestampStr) return ''
const timestamp = new Date(timestampStr)
const distance = formatDistanceStrict(timestamp, new Date(), {
addSuffix: true,
const distance = formatDistanceToNow(timestamp, {
keepSuffix: true,
style: 'long',
})
return isMobile
? distance
Expand Down
7 changes: 4 additions & 3 deletions src/app/pages/RoflAppDetailsPage/LastActivity.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { FC } from 'react'
import { useTranslation } from 'react-i18next'
import { formatDistanceStrict } from 'date-fns/formatDistanceStrict'
import { formatDistanceToNow } from '../../utils/dateFormatter'
import { RuntimeTransaction } from '../../../oasis-nexus/api'
import { SearchScope } from '../../../types/searchScope'
import { TransactionLink } from '../../components/Transactions/TransactionLink'
Expand All @@ -26,8 +26,9 @@ export const LastActivity: FC<LastActivityProps> = ({ scope, transaction }) => {
/>
<span>
(
{formatDistanceStrict(transaction.timestamp, new Date(), {
addSuffix: true,
{formatDistanceToNow(new Date(transaction.timestamp), {
keepSuffix: true,
style: 'long',
})}
)
</span>
Expand Down
6 changes: 3 additions & 3 deletions src/app/utils/dateFormatter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ export const intlDateFormat = (date: Date | number) => dateFormat.format(date)
// TODO: Works only in en-US locale, as suffixes are hardcoded
export const formatDistanceToNow = (
date: Date | number,
options: { baseDate?: Date | number; locale?: string; keepSuffix?: true } = {},
options: { baseDate?: Date | number; locale?: string; keepSuffix?: true; style?: 'short' | 'long' } = {},
) => {
const { baseDate = new Date(), locale = 'en-US', keepSuffix = false } = options
const { baseDate = new Date(), locale = 'en-US', keepSuffix = false, style = 'short' } = options

const diffInSeconds = differenceInSeconds(date, baseDate)
let unit: Intl.RelativeTimeFormatUnit
Expand All @@ -41,7 +41,7 @@ export const formatDistanceToNow = (

const distanceWithSuffix = intlFormatDistance(date, baseDate, {
unit,
style: 'short',
style,
numeric: 'always',
locale,
})
Expand Down
Loading