import { useState } from 'react' import { Link } from 'react-router-dom' import { useQuery } from '@tanstack/react-query' import api from '../utils/api' import { formatDuration, formatDistance, formatPace, formatHeartRate, formatDate, sportIcon, sportColor, } from '../utils/format' const SPORTS = ['all', 'running', 'cycling', 'hiking', 'walking'] export default function ActivitiesPage() { const [sport, setSport] = useState('all') const [page, setPage] = useState(1) const { data: activities, isLoading } = useQuery({ queryKey: ['activities', sport, page], queryFn: () => api.get('/activities/', { params: { sport_type: sport === 'all' ? undefined : sport, page, per_page: 20, }, }).then(r => r.data), }) return (
{activity.name}
{formatDate(activity.start_time)}
{formatDistance(activity.distance_m)}
distance
{formatDuration(activity.duration_s)}
time
{formatPace(activity.avg_speed_ms, activity.sport_type)}
pace
{formatHeartRate(activity.avg_heart_rate)}
avg HR
{activity.elevation_gain_m ? `↑ ${Math.round(activity.elevation_gain_m)}m` : '--'}
elev
🏃
No activities yet
Import your Garmin or Strava data to get started