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

dayjs.extend(relativeTime);

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: dayjs(date).fromNow(),
      localCreatedAt: date.toLocaleString(),
    });
  }, [date]);

  return state;
}