diff options
Diffstat (limited to 'js/filter/RelativeTimestamp.js')
-rw-r--r-- | js/filter/RelativeTimestamp.js | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/js/filter/RelativeTimestamp.js b/js/filter/RelativeTimestamp.js deleted file mode 100644 index 1a70db4a7..000000000 --- a/js/filter/RelativeTimestamp.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Nextcloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Alec Kojaev <alec@kojaev.name> - * @copyright Alec Kojaev 2021 - */ -app.filter('relativeTimestamp', ['SettingsResource', function (SettingsResource) { - 'use strict'; - - const languageCode = SettingsResource.get('language'); - const relFormat = Intl.RelativeTimeFormat ? - new Intl.RelativeTimeFormat(languageCode, { numeric: 'auto' }) : null; - const maxRelDistance = 90*86400*1000; - const relLimits = [ - [ 7*86400*1000, 'week' ], - [ 86400*1000, 'day' ], - [ 3600*1000, 'hour' ], - [ 60*1000, 'minute' ], - [ 1*1000, 'second' ] - ]; - const absLimits = [ - [ 7*86400*1000, { hour: '2-digit', minute: '2-digit', dayPeriod: 'narrow', - year: 'numeric', month: 'short', day: 'numeric' } ], - [ 43200*1000, { hour: '2-digit', minute: '2-digit', dayPeriod: 'narrow', - weekday: 'long' } ], - [ 0, { hour: '2-digit', minute: '2-digit', dayPeriod: 'narrow' } ] - ]; - - return function (timestamp) { - if (!Number.isFinite(timestamp)) { - return timestamp; - } - const ts = new Date(timestamp); - const dist = ts.getTime() - Date.now(); - const absDist = Math.abs(dist); - if (relFormat && absDist < maxRelDistance) { - for (const [ scale, unit ] of relLimits) { - const value = Math.trunc(dist / scale); - if (value !== 0) { - return relFormat.format(value, unit); - } - } - // We arrive here only if distance from now is less than 1 second - return relFormat.format(0, 'second'); - } else { - for (const [ limit, options ] of absLimits) { - if (absDist >= limit) { - return ts.toLocaleString(languageCode, options); - } - } - // We shouldn't be here - return ts.toLocaleString(languageCode, absLimits[absLimits.length - 1][1]); - } - }; -}]); |