@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
27 lines (26 loc) • 1.09 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const React = require("react");
const formatUtils = require("./formatUtils.cjs");
const useTimeout = require("./useTimeout.cjs");
const fmt = (timestamp, locale, showSeconds) => {
const timestampMs = String(timestamp).length > 11 ? timestamp : timestamp * 1e3;
return formatUtils.formatTimeAgo(timestampMs, locale, showSeconds);
};
function useTimeAgo(timestamp = Date.now(), options) {
const { locale, disableRefresh = false, showSeconds = false } = options || {};
const [timeAgo, setTimeAgo] = React.useState(
() => fmt(timestamp, locale, showSeconds)
);
const refreshTime = disableRefresh ? 0 : 1e4;
React.useEffect(() => {
const newTimeAgo = fmt(timestamp, locale, showSeconds);
setTimeAgo(newTimeAgo);
}, [timestamp, locale, showSeconds]);
useTimeout.useTimeout(() => {
const newTimeAgo = fmt(timestamp, locale, showSeconds);
setTimeAgo(newTimeAgo);
}, refreshTime);
return timeAgo;
}
exports.default = useTimeAgo;