import { notFound } from "next/navigation"; import { AiAnalysisCard } from "@/components/ai-analysis-card"; import { ExerciseProgressChart } from "@/components/exercise-progress-chart"; import { InfoTooltip } from "@/components/info-tooltip"; import { formatDate, formatDateShort } from "@/lib/format"; import { getLatestAnalysisForTarget, serializeAnalysis } from "@/lib/models/analysis"; import { getStrengthWorkout, listStrengthWorkouts } from "@/lib/models/strength"; import { exerciseE1rm, getExerciseHistory } from "@/lib/strength/stats"; import { getCurrentUserId } from "@/lib/session"; export const dynamic = "force-dynamic"; const EXERCISE_HISTORY_LIMIT = 8; export default async function StrengthWorkoutPage({ params, }: { params: Promise<{ id: string }>; }) { const { id } = await params; const userId = await getCurrentUserId(); const workout = await getStrengthWorkout(userId, id); if (!workout) { notFound(); } const analysis = await getLatestAnalysisForTarget(userId, "strength", workout._id); const allWorkouts = await listStrengthWorkouts(userId); const pastWorkouts = allWorkouts.filter((w) => w.date <= workout.date); const exercisesWithHistory = workout.exercises.map((exercise) => ({ exercise, history: getExerciseHistory(exercise.name, pastWorkouts, EXERCISE_HISTORY_LIMIT), })); return (
{formatDate(workout.date)}
{workout.notes ?{workout.notes}
: null}{exercise.name}
{exercise.notes ?{exercise.notes}
: null}