summaryrefslogtreecommitdiffhomepage
path: root/gui/src/shared/account-expiry.ts
blob: 81c45fec075d3d0343965f244a3607fc0c8f60d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { DateComponent, DateType, formatRelativeDate, dateByAddingComponent } from './date-helper';
import { capitalize } from './string-helpers';

export function hasExpired(expiry: DateType): boolean {
  return new Date(expiry).getTime() < Date.now();
}

export function closeToExpiry(expiry: DateType, days = 3): boolean {
  return (
    !hasExpired(expiry) &&
    new Date(expiry) <= dateByAddingComponent(new Date(), DateComponent.day, days)
  );
}

export function formatDate(date: DateType, locale: string): string {
  return new Intl.DateTimeFormat(locale, { dateStyle: 'medium', timeStyle: 'short' }).format(
    new Date(date),
  );
}

export function formatRemainingTime(
  expiry: DateType,
  shouldCapitalizeFirstLetter?: boolean,
): string {
  const remaining = formatRelativeDate(new Date(), expiry, true);
  return shouldCapitalizeFirstLetter ? capitalize(remaining) : remaining;
}