Files
outline/app/components/Time.tsx
Tom Moor 15b1069bcc chore: Move to Typescript (#2783)
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously.

closes #1282
2021-11-29 06:40:55 -08:00

38 lines
811 B
TypeScript

import { formatDistanceToNow } from "date-fns";
import * as React from "react";
const LocaleTime = React.lazy(
() =>
import(
/* webpackChunkName: "locale-time" */
"~/components/LocaleTime"
)
);
type Props = React.ComponentProps<typeof LocaleTime>;
function Time(props: Props) {
let content = formatDistanceToNow(Date.parse(props.dateTime), {
addSuffix: props.addSuffix,
});
if (props.shorten) {
content = content
.replace("about", "")
.replace("less than a minute ago", "just now")
.replace("minute", "min");
}
return (
<React.Suspense
fallback={
<time dateTime={props.dateTime}>{props.children || content}</time>
}
>
<LocaleTime tooltipDelay={250} {...props} />
</React.Suspense>
);
}
export default Time;