1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2026-06-05 20:15:31 -04:00
Files
jarv.is/components/relative-time.tsx
T
2025-05-05 12:55:12 -04:00

26 lines
664 B
TypeScript

"use client";
import { useMountedState } from "react-use";
import TimeAgo from "react-timeago";
import Time from "@/components/time";
import type { ComponentPropsWithoutRef } from "react";
const RelativeTime = ({
date,
...rest
}: ComponentPropsWithoutRef<"time"> & {
date: string;
}) => {
// play nice with SSR -- only use relative time on the client, since it'll quickly become outdated on the server and
// cause a react hydration mismatch error.
const isMounted = useMountedState();
if (!isMounted) {
return <Time date={date} format="MMM d, y" {...rest} />;
}
return <TimeAgo date={date} {...rest} />;
};
export default RelativeTime;