package web templ Layout(title string, content templ.Component) { { title } ยท biking_home
@content
} templ RidesPage(items []RideView) { @Layout("Rides", RidesContent(items)) } templ RidesContent(items []RideView) {

Ride library

All rides

Your imported rides, ready for climb analysis.

Sync Strava
if len(items) == 0 {
No rides stored yet. Import your first Strava rides.
} else { for _, item := range items { }
RideStartedDistanceMoving timeElevationCotacolCotacol / 100 km
{ item.Name }
{ item.Type }
{ formatRideDate(item.StartDate) }{ formatDistance(item.DistanceM) }{ formatDuration(item.MovingTimeS) }{ formatElevation(item.TotalElevationGainM) }{ item.Cotacol }{ item.CotacolPer100Km }
}
} templ SyncPage(data SyncPageData) { @Layout("Sync Strava", SyncContent(data)) } templ SyncContent(data SyncPageData) {

Data import

Sync Strava rides

Choose a date range. New rides are downloaded as GPX files and recorded in the local library.

if data.Notice != "" {
{ data.Notice }
} if data.Error != "" {
{ data.Error }
}
if !data.HasAuth {

Strava authorization is required before the first sync.

Authorize Strava } else {
}
}