@magicbell/react-headless
Version:
Hooks to build a notification inbox
40 lines (34 loc) • 1.09 kB
text/typescript
import dayjs, { type Dayjs } from 'dayjs';
import localizedFormat from 'dayjs/plugin/localizedFormat.js';
import relativeTime from 'dayjs/plugin/relativeTime.js';
import updateLocale from 'dayjs/plugin/updateLocale.js';
dayjs.extend(localizedFormat);
dayjs.extend(relativeTime);
dayjs.extend(updateLocale);
// Export after the extensions have been registered so types are applied correctly.
export type { Dayjs };
/**
* Function to build a Date given a number of seconds.
*
* @example secondsToDate(1582263571)
*/
export function secondsToDate(seconds: number | null) {
return seconds ? toDate(seconds * 1000) : null;
}
/**
* Function to build a Date given a string or number of milliseconds.
*
* @example toDate('2020-02-01')
*/
export function toDate(date: string | number | Dayjs | Date) {
return dayjs(date);
}
/**
* Function to return a UNIX timestamp from a date representation. This value is
* floored to the nearest second.
*
* @example toUnix('2020-10-06')
*/
export function toUnix(date?: string | number | Dayjs | Date) {
return dayjs(date).unix();
}