package templates import "bookhoard/internal/handlers" import "fmt" templ Progress(user User, progressData []handlers.ProgressWithMedia, errorMessage string) { Reading Progress - Bookhoard @Header(user, "/progress")

Reading Progress

Track your reading progress across all devices

if len(progressData) == 0 {
📖

No Progress Yet

Start reading a book to track your progress

} for _, item := range progressData {
Cover

{ item.Title }

if item.Author != "" {

by { item.Author }

}
{ item.ProgressPercentage }%

Current Position

if item.FormatGroup == "reflowable" { if item.EstimatedPages > 0 { { fmt.Sprintf("Page %d of %d (est.)", item.CurrentPage, item.EstimatedPages) } } else { { fmt.Sprintf("%.1f%%", item.ProgressPercentage) } } } else { { fmt.Sprintf("%d / %d", item.CurrentPage, item.TotalPages) } }

Last Updated

{ item.LastUpdated }

Synced From

{ item.DeviceIcon } { item.DeviceName }
if item.DeviceIcon != "" {
🔄 Last sync from { item.DeviceName } ({ item.DeviceType })
} if item.EpubCFI != "" {
📍 CFI: { item.EpubCFI }
}
}
@ErrorToast(errorMessage) }