import { redirect } from "next/navigation"; import Link from "next/link"; import { Plus, Activity, Upload } from "lucide-react"; import { getCurrentUser } from "@/lib/auth"; import { getWorkouts } from "@/lib/db/workouts"; import WorkoutCard from "@/components/workouts/WorkoutCard"; interface PageProps { searchParams: { q?: string; dateFrom?: string; dateTo?: string }; } export const metadata = { title: "Workout History", description: "View your workout history", }; export default async function WorkoutsPage({ searchParams }: PageProps) { const user = await getCurrentUser(); if (!user) { redirect("/auth/login"); } // Parse search params const query = searchParams.q || ""; const dateFrom = searchParams.dateFrom ? new Date(searchParams.dateFrom) : undefined; const dateTo = searchParams.dateTo ? new Date(searchParams.dateTo) : undefined; // Fetch workouts const workouts = await getWorkouts(user.id, { query, dateFrom, dateTo, limit: 50, }); return (
{/* Header */}

Workout History

{/* Search and filters */}
{/* Search bar */}
{/* Date range */}
{/* Submit buttons */}
Clear
{/* Workout list */} {workouts.length === 0 ? (

No workouts yet

{query || dateFrom || dateTo ? "No workouts match your filters. Try adjusting your search." : "Start tracking your fitness journey by logging your first workout."}

Log Your First Workout
) : (
{workouts.map((workout) => ( ))}
)}
{/* Floating action button for mobile, regular button for desktop */} {workouts.length > 0 && ( <> {/* Mobile FAB */}
{/* Desktop button */}
Log Workout
)}
); }