From 17c1fbe0f8565f191a191138bebac7409512962e Mon Sep 17 00:00:00 2001
From: nsfisis <nsfisis@gmail.com>
Date: Sat, 15 Mar 2025 23:23:16 +0900
Subject: feat(frontend): improve left time display

---
 frontend/app/components/Gaming/LeftTime.tsx | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 frontend/app/components/Gaming/LeftTime.tsx

(limited to 'frontend/app/components/Gaming/LeftTime.tsx')

diff --git a/frontend/app/components/Gaming/LeftTime.tsx b/frontend/app/components/Gaming/LeftTime.tsx
new file mode 100644
index 0000000..a31c6b2
--- /dev/null
+++ b/frontend/app/components/Gaming/LeftTime.tsx
@@ -0,0 +1,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-3xl">{leftTime}</div>;
+}
-- 
cgit v1.3.1

