UNPKG

@atlaskit/editor-plugin-synced-block

Version:

SyncedBlock plugin for @atlaskit/editor-core

56 lines (55 loc) 2.03 kB
import isYesterday from 'date-fns/isYesterday'; var SECONDS_IN_MINUTE = 60; var SECONDS_IN_HOUR = SECONDS_IN_MINUTE * 60; var SECONDS_IN_DAY = SECONDS_IN_HOUR * 24; var SECONDS_IN_WEEK = SECONDS_IN_DAY * 7; var SECONDS_IN_MONTH = SECONDS_IN_DAY * 30; var SECONDS_IN_YEAR = SECONDS_IN_DAY * 365; export var formatElapsedTime = function formatElapsedTime(isoDate, intl) { var now = Date.now(); var date = new Date(isoDate).getTime(); var diffInSeconds = Math.floor((now - date) / 1000); var dateObj = new Date(isoDate); // Show "yesterday" when timestamp is from the previous calendar day if (isYesterday(dateObj) && diffInSeconds >= SECONDS_IN_DAY) { return intl.formatRelativeTime(-1, 'day', { numeric: 'auto', style: 'long' }); } if (diffInSeconds < SECONDS_IN_MINUTE) { return intl.formatRelativeTime(-Math.max(diffInSeconds, 1), 'second', { style: 'long' }); } else if (diffInSeconds < SECONDS_IN_HOUR) { var minutes = Math.floor(diffInSeconds / SECONDS_IN_MINUTE); return intl.formatRelativeTime(-minutes, 'minute', { style: 'long' }); } else if (diffInSeconds < SECONDS_IN_DAY) { var hours = Math.floor(diffInSeconds / SECONDS_IN_HOUR); return intl.formatRelativeTime(-hours, 'hour', { style: 'long' }); } else if (diffInSeconds < SECONDS_IN_WEEK) { var days = Math.floor(diffInSeconds / SECONDS_IN_DAY); return intl.formatRelativeTime(-days, 'day', { style: 'long' }); } else if (diffInSeconds < SECONDS_IN_MONTH) { var weeks = Math.floor(diffInSeconds / SECONDS_IN_WEEK); return intl.formatRelativeTime(-weeks, 'week', { style: 'long' }); } else if (diffInSeconds < SECONDS_IN_YEAR) { var months = Math.floor(diffInSeconds / SECONDS_IN_MONTH); return intl.formatRelativeTime(-months, 'month', { style: 'long' }); } else { var years = Math.floor(diffInSeconds / SECONDS_IN_YEAR); return intl.formatRelativeTime(-years, 'year', { style: 'long' }); } };