UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

27 lines (26 loc) 944 B
import { useState, useEffect } from "react"; import { formatTimeAgo } from "./formatUtils.js"; import { useTimeout } from "./useTimeout.js"; const fmt = (timestamp, locale, showSeconds) => { const timestampMs = String(timestamp).length > 11 ? timestamp : timestamp * 1e3; return formatTimeAgo(timestampMs, locale, showSeconds); }; function useTimeAgo(timestamp = Date.now(), options) { const { locale, disableRefresh = false, showSeconds = false } = options || {}; const [timeAgo, setTimeAgo] = useState( () => fmt(timestamp, locale, showSeconds) ); const refreshTime = disableRefresh ? 0 : 1e4; useEffect(() => { const newTimeAgo = fmt(timestamp, locale, showSeconds); setTimeAgo(newTimeAgo); }, [timestamp, locale, showSeconds]); useTimeout(() => { const newTimeAgo = fmt(timestamp, locale, showSeconds); setTimeAgo(newTimeAgo); }, refreshTime); return timeAgo; } export { useTimeAgo as default };