package templates import ( "database/sql" "fmt" db "mal/internal/db" ui "mal/web/components" "mal/web/shared" "mal/web/shared/layout" ) templ ContinueWatching(entries []db.GetContinueWatchingEntriesRow) { @layout.Layout("mal - continue watching", true) {

Continue watching

Pick up where you left off.

if len(entries) == 0 { @ui.EmptyState("Nothing to continue yet") { Start watching any anime and your progress will show up here. } } else {
for _, entry := range entries {
@ui.AnimeCard(ui.AnimeCardProps{ ID: int(entry.AnimeID), Title: displayContinueWatchingTitle(entry), ImageURL: entry.ImageUrl, Href: continueWatchingURL(entry), TitleEnglish: nullString(entry.TitleEnglish), TitleJapanese: nullString(entry.TitleJapanese), WatchlistStatus: "watching", Class: "notification-card min-w-0 flex flex-col bg-transparent text-inherit no-underline", HideTitle: true, }) {
{ displayContinueWatchingTitle(entry) }
if entry.CurrentEpisode.Valid && entry.CurrentEpisode.Int64 > 0 { Continue ep { fmt.Sprintf("%d", entry.CurrentEpisode.Int64) } } if entry.CurrentTimeSeconds > 0 { { shared.FormatProgressTime(entry.CurrentTimeSeconds) } }
}
}
}
} } func continueWatchingURL(entry db.GetContinueWatchingEntriesRow) string { episode := 1 if entry.CurrentEpisode.Valid && entry.CurrentEpisode.Int64 > 0 { episode = int(entry.CurrentEpisode.Int64) } return fmt.Sprintf("/watch/%d/%d", entry.AnimeID, episode) } func displayContinueWatchingTitle(entry db.GetContinueWatchingEntriesRow) string { return db.DisplayTitle(entry.TitleEnglish, entry.TitleJapanese, entry.TitleOriginal) } func nullString(s sql.NullString) string { if s.Valid { return s.String } return "" }