From 266a4f44ba11eaafd05194b51e02553a0db11ac9 Mon Sep 17 00:00:00 2001 From: Gizmotronn Date: Sun, 19 Jan 2025 15:50:31 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=95=B8=EF=B8=8F=F0=9F=A7=91=F0=9F=8F=BB?= =?UTF-8?q?=E2=80=8D=F0=9F=A6=AF=20=E2=86=9D=20[SSG-101]:=20Total=20points?= =?UTF-8?q?=20comp=20updated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/tests/page.tsx | 3 + .../Structures/Missions/Stardust/Total.tsx | 118 +++++++++++++++++- 2 files changed, 119 insertions(+), 2 deletions(-) diff --git a/app/tests/page.tsx b/app/tests/page.tsx index 085a16fb..b6d56aee 100644 --- a/app/tests/page.tsx +++ b/app/tests/page.tsx @@ -1,9 +1,12 @@ "use client"; +import TotalPoints from "@/components/Structures/Missions/Stardust/Total"; + export default function TestPage() { return ( // <> + // {/* */} ); diff --git a/components/Structures/Missions/Stardust/Total.tsx b/components/Structures/Missions/Stardust/Total.tsx index 936238a7..46613b32 100644 --- a/components/Structures/Missions/Stardust/Total.tsx +++ b/components/Structures/Missions/Stardust/Total.tsx @@ -7,10 +7,15 @@ const TotalPoints = () => { const [planetHuntersPoints, setPlanetHuntersPoints] = useState(0); const [dailyMinorPlanetPoints, setDailyMinorPlanetPoints] = useState(0); + const [ai4mPoints, setAi4mPoints] = useState(0); + const [planetFourPoints, setPlanetFourPoints] = useState(0); + const [jvhPoints, setJvhPoints] = useState(0); // Jovian Vortex Hunters points + const [cloudspottingPoints, setCloudspottingPoints] = useState(0); // Cloudspotting points useEffect(() => { if (!session?.user) return; + // Fetch points for Planet Hunters mission group const fetchPlanetHuntersPoints = async () => { try { const { data: classificationsData, error: classificationsError } = await supabase @@ -23,7 +28,7 @@ const TotalPoints = () => { const missionPoints = { 1: 2, - 2: 1, + 2: 1, 3: 2, 4: 1, 5: 1, @@ -86,6 +91,7 @@ const TotalPoints = () => { } }; + // Fetch points for Daily Minor Planet mission group const fetchDailyMinorPlanetPoints = async () => { try { const { data: classificationsData } = await supabase @@ -138,17 +144,125 @@ const TotalPoints = () => { } }; + // Fetch points for AI4M mission group + const fetchAi4mPoints = async () => { + try { + const { data: classificationsData } = await supabase + .from("classifications") + .select("*") + .eq("classificationtype", "automaton-aiForMars") + .eq("author", session.user.id); + + const mission1CompletedCount = classificationsData?.length ?? 0; + const { data: commentsData } = await supabase + .from("comments") + .select("*") + .eq("author", session.user.id); + + const mission2CompletedCount = commentsData?.filter( + (comment) => comment.classification_id && classificationsData?.some( + (classification) => classification.id === comment.classification_id + ) + ).length ?? 0; + + const totalPoints = mission1CompletedCount * 2 + mission2CompletedCount * 2; + + setAi4mPoints(totalPoints); + } catch (error) { + console.error("Error fetching AI4M points:", error); + } + }; + + // Fetch points for Planet Four mission group + const fetchPlanetFourPoints = async () => { + try { + const { data: classificationsData } = await supabase + .from("classifications") + .select("*") + .eq("classificationtype", "satellite-planetFour") + .eq("author", session.user.id); + + const mission1CompletedCount = classificationsData?.length ?? 0; + const { data: commentsData } = await supabase + .from("comments") + .select("*") + .eq("author", session.user.id); + + const mission2CompletedCount = commentsData?.filter( + (comment) => comment.classification_id && classificationsData?.some( + (classification) => classification.id === comment.classification_id + ) + ).length ?? 0; + + const totalPoints = mission1CompletedCount * 2 + mission2CompletedCount * 2; + + setPlanetFourPoints(totalPoints); + } catch (error) { + console.error("Error fetching Planet Four points:", error); + } + }; + + // Fetch points for Jovian Vortex Hunters mission group + const fetchJvhPoints = async () => { + try { + const { data: classificationsData } = await supabase + .from("classifications") + .select("*") + .eq("classificationtype", "jovian-vortex-hunters") + .eq("author", session.user.id); + + const mission1CompletedCount = classificationsData?.length ?? 0; + const totalPoints = mission1CompletedCount * 3; // Adjust point allocation as necessary + + setJvhPoints(totalPoints); + } catch (error) { + console.error("Error fetching Jovian Vortex Hunters points:", error); + } + }; + + // Fetch points for Cloudspotting mission group + const fetchCloudspottingPoints = async () => { + try { + const { data: classificationsData } = await supabase + .from("classifications") + .select("*") + .eq("classificationtype", "cloudspotting") + .eq("author", session.user.id); + + const mission1CompletedCount = classificationsData?.length ?? 0; + const totalPoints = mission1CompletedCount * 2; // Adjust point allocation as necessary + + setCloudspottingPoints(totalPoints); + } catch (error) { + console.error("Error fetching Cloudspotting points:", error); + } + }; + fetchPlanetHuntersPoints(); fetchDailyMinorPlanetPoints(); + fetchAi4mPoints(); + fetchPlanetFourPoints(); + fetchJvhPoints(); + fetchCloudspottingPoints(); }, [supabase, session?.user]); - const totalPoints = planetHuntersPoints + dailyMinorPlanetPoints; + const totalPoints = + planetHuntersPoints + + dailyMinorPlanetPoints + + ai4mPoints + + planetFourPoints + + jvhPoints + + cloudspottingPoints; return (

Total Points

Planet Hunters Points: {planetHuntersPoints}

Daily Minor Planet Points: {dailyMinorPlanetPoints}

+

AI4M Points: {ai4mPoints}

+

Planet Four Points: {planetFourPoints}

+

Jovian Vortex Hunters Points: {jvhPoints}

+

Cloudspotting Points: {cloudspottingPoints}

Total: {totalPoints}

);