aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/app/components/Gaming/LeftTime.tsx
blob: a7678d696340641bcdd7d722c29ae06d6d358c1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
type Props = {
  sec: number;
};

export default function LeftTime({ sec }: Props) {
  const s = sec % 60;
  const m = Math.floor(sec / 60) % 60;
  const h = Math.floor(sec / 3600) % 24;
  const d = Math.floor(sec / 86400);

  let leftTime = "";
  if (d > 0 || h > 0) {
    // 1d 2h 3m 4s
    leftTime = [
      d > 0 ? `${d}d` : "",
      h > 0 ? `${h}h` : "",
      m > 0 ? `${m}m` : "",
      `${s}s`,
    ].join(" ");
  } else {
    // 03:04
    leftTime = `${m.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}`;
  }

  return <div className="text-2xl md:text-3xl">{leftTime}</div>;
}