package templates import "mal/internal/jikan" import "mal/internal/shared/ui" import "fmt" templ Schedule() { @Layout("mal - schedule") {

Weekly schedule

Airing times in JST

@ui.LoadingIndicator("Loading schedule")
} } templ ScheduleDay(day string, animes []jikan.Anime) {

{ dayTitle(day) }

if len(animes) == 0 {

No anime scheduled.

} else {
for _, anime := range animes { @ScheduleAnimeCard(anime) }
}
} templ ScheduleAnimeCard(anime jikan.Anime) { @ui.AnimeCard(ui.AnimeCardProps{ ID: anime.MalID, Title: anime.DisplayTitle(), ImageURL: anime.ImageURL(), Class: "schedule-card", ImgClass: "schedule-card-image", }) {
{ anime.DisplayTitle() }
if anime.Broadcast.Time != "" { { anime.Broadcast.Time } } if anime.Type != "" { { anime.Type } } if anime.Episodes > 0 { { fmt.Sprintf("%d ep", anime.Episodes) } }
if anime.Score > 0 {
★ { fmt.Sprintf("%.1f", anime.Score) }
}
} } func dayTitle(day string) string { switch day { case "monday": return "Monday" case "tuesday": return "Tuesday" case "wednesday": return "Wednesday" case "thursday": return "Thursday" case "friday": return "Friday" case "saturday": return "Saturday" case "sunday": return "Sunday" default: return day } }