import { getAuth } from "@/auth/queries/getauth"; import { generatePlaylogId, getSongsWithTitles } from "@/lib/api"; import { shareScore } from "../token"; import { getDifficultyClass, getDifficultyText, getGrade } from "@/lib/helpers"; import { type chuni_score_playlog } from "@/prisma/schemas/artemis/generated/artemis"; export default async function Share({ params, }: { params: { token: string; id: string }; }) { const { token, id } = params; // Verify the token const tokenResult = await shareScore(token); if (tokenResult.error) { return

{tokenResult.error}

; } const { user } = await getAuth(); if (!user?.UserId) { return

Error: No user ID found.

; } const userId = user?.UserId; const playlogId = parseInt(id); const songsData = await getSongsWithTitles(userId); const playlogIds = await generatePlaylogId(playlogId); // Filter songsData to match the playlogIds const matchedSongs: chuni_score_playlog[] = songsData.filter((song) => playlogIds.includes(song.id) ); return (
{matchedSongs.map((song) => (
{song.isNewRecord && "NEW RECORD!!"}

{" "} {song.score?.toLocaleString()}

))}
{matchedSongs.map((song) => (
{song.isNewRecord && "NEW!!"}
{getGrade(song.score ?? 0)}
))}
{matchedSongs.map((song) => (
{song.isFullCombo && "FULL COMBO"} Max combo: {song.maxCombo}
))}
{matchedSongs.map((song) => (
Judge Justice: {song.judgeJustice} Judge Attack: {song.judgeAttack} Miss: {song.judgeGuilty}
))}

Edamame

); }