mirror of
https://github.com/Ategon/Jamjar.git
synced 2025-02-12 06:16:21 +00:00
77 lines
2.5 KiB
TypeScript
77 lines
2.5 KiB
TypeScript
"use client";
|
|
import { Spacer } from "@nextui-org/react";
|
|
import React, { useState, useEffect } from "react";
|
|
import Timer from "./Timer";
|
|
import { getCurrentJam, ActiveJamResponse } from "@/helpers/jam";
|
|
|
|
export default function Timers() {
|
|
const [activeJamResponse, setActiveJamResponse] =
|
|
useState<ActiveJamResponse | null>(null);
|
|
|
|
// Fetch the current jam phase using helpers/jam
|
|
useEffect(() => {
|
|
const fetchCurrentJamPhase = async () => {
|
|
try {
|
|
const activeJam = await getCurrentJam();
|
|
setActiveJamResponse(activeJam); // Set active jam details
|
|
} catch (error) {
|
|
console.error("Error fetching current jam:", error);
|
|
} finally {
|
|
}
|
|
};
|
|
|
|
fetchCurrentJamPhase();
|
|
}, []);
|
|
|
|
|
|
|
|
if(activeJamResponse && activeJamResponse.jam)
|
|
{
|
|
const startTimeUTC = new Date(activeJamResponse.jam.startTime).toISOString();
|
|
console.log(startTimeUTC);
|
|
|
|
if (activeJamResponse.phase == "Suggestion" || activeJamResponse.phase == "Survival" || activeJamResponse.phase == "Voting") {
|
|
return (
|
|
<div className="text-[#333] dark:text-white transition-color duration-250">
|
|
<Timer
|
|
name="Jam starts in"
|
|
targetDate={new Date(activeJamResponse.jam.startTime) }
|
|
/>
|
|
<Spacer y={8} />
|
|
<p>Site under construction</p>
|
|
</div>
|
|
);
|
|
} else if (activeJamResponse.phase == "Jamming") {
|
|
return (
|
|
<div className="text-[#333] dark:text-white transition-color duration-250">
|
|
<Timer
|
|
name="Jam ends in"
|
|
targetDate={ new Date(new Date(activeJamResponse.jam.startTime).getTime() + (activeJamResponse.jam.jammingHours * 60 * 60 * 1000))}
|
|
/>
|
|
<Spacer y={8} />
|
|
<p>Site under construction</p>
|
|
</div>
|
|
);
|
|
} else if (activeJamResponse.phase == "Rating") {
|
|
return (
|
|
<div className="text-[#333] dark:text-white transition-color duration-250">
|
|
<Timer
|
|
name="Rating ends in"
|
|
targetDate={new Date(new Date(activeJamResponse.jam.startTime).getTime() + (activeJamResponse.jam.jammingHours * 60 * 60 * 1000) + (activeJamResponse.jam.ratingHours * 60 * 60 * 1000))}
|
|
/>
|
|
<Spacer y={8} />
|
|
<p>Site under construction</p>
|
|
</div>
|
|
);
|
|
} else {
|
|
return (
|
|
<div className="text-[#333] dark:text-white transition-color duration-250">
|
|
No upcoming jams
|
|
<Spacer y={8} />
|
|
<p>Site under construction</p>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
}
|