aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/lib/hooks/relative-time.ts
blob: 8fefa233255c3936d2d4c1f1a08a2da832c9ebf2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { useEffect, useState } from "react";
import { formatDistanceToNow } from "date-fns";

export default function useRelativeTime(date: Date) {
  const [state, setState] = useState({
    fromNow: "",
    localCreatedAt: "",
  });

  // This is to avoid hydration errors when server and clients are in different timezones
  useEffect(() => {
    setState({
      fromNow: formatDistanceToNow(date, { addSuffix: true }),
      localCreatedAt: date.toLocaleString(),
    });
  }, [date]);

  return state;
}