mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
ecf242c6c6
Summary: Update for the admin page to show the latest available version information. - Latest version is read from docs.getgrist.com by default - It sends basic information (installationId, deployment type, and version) - Checks are done only on the page itself - The actual request is routed through the API (to avoid CORS) Test Plan: Added new test Reviewers: paulfitz Reviewed By: paulfitz Subscribers: paulfitz Differential Revision: https://phab.getgrist.com/D4238
28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import moment from 'moment';
|
|
|
|
/**
|
|
* Given a UTC Date ISO 8601 string (the doc updatedAt string), gives a reader-friendly
|
|
* relative time to now - e.g. 'yesterday', '2 days ago'.
|
|
*/
|
|
export function getTimeFromNow(utcDateISO: string): string
|
|
/**
|
|
* Given a unix timestamp (in milliseconds), gives a reader-friendly
|
|
* relative time to now - e.g. 'yesterday', '2 days ago'.
|
|
*/
|
|
export function getTimeFromNow(ms: number): string
|
|
export function getTimeFromNow(isoOrTimestamp: string|number): string {
|
|
const time = moment.utc(isoOrTimestamp);
|
|
const now = moment();
|
|
const diff = now.diff(time, 's');
|
|
if (diff < 0 && diff > -60) {
|
|
// If the time appears to be in the future, but less than a minute
|
|
// in the future, chalk it up to a difference in time
|
|
// synchronization and don't claim the resource will be changed in
|
|
// the future. For larger differences, just report them
|
|
// literally, there's a more serious problem or lack of
|
|
// synchronization.
|
|
return now.fromNow();
|
|
}
|
|
return time.fromNow();
|
|
}
|