@magicbell/magicbell-react
Version:
React components for building a notification inbox for your app
25 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = Timestamp;
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importStar(require("react"));
const date_js_1 = require("../../lib/date.js");
const Tooltip_js_1 = tslib_1.__importDefault(require("../Tooltip/Tooltip.js"));
/**
* Component to render a date or timestamp as relative time.
*
* @example
* <Timestamp date={new Date()} />
*/
function Timestamp({ date, tooltipPlacement = 'bottom-end', delay = 250 }) {
const [dateObj] = (0, react_1.useState)(() => (0, date_js_1.toDate)(date));
const [relativeTime, setRelativeTime] = (0, react_1.useState)(dateObj.fromNow(true));
(0, react_1.useEffect)(() => {
const fn = () => setRelativeTime((0, date_js_1.toDate)(date).fromNow(true));
const interval = setInterval(fn, 60_000);
return () => clearInterval(interval);
}, [date]);
return (react_1.default.createElement(Tooltip_js_1.default, { tooltip: dateObj.format('LL LT'), placement: tooltipPlacement, delay: delay },
react_1.default.createElement("div", null, relativeTime)));
}
//# sourceMappingURL=Timestamp.js.map