package templates import "mal/internal/jikan" import "mal/internal/shared/ui" import "fmt" templ StudioDetails(producer jikan.ProducerResponse, animes []jikan.Anime, hasNext bool, nextPage int) { @Layout("mal - "+getProducerName(producer), true) {
if producer.Data.Images.Jpg.ImageURL != "" { { }

{ getProducerName(producer) }

if producer.Data.Established != "" {

Established: { formatEstablishedDate(producer.Data.Established) }

} if producer.Data.Count > 0 {

{ fmt.Sprintf("%d anime", producer.Data.Count) }

}
if producer.Data.About != "" {

{ producer.Data.About }

}

Anime

for _, anime := range animes {
@ui.AnimeCard(ui.AnimeCardProps{ ID: anime.MalID, Title: anime.DisplayTitle(), ImageURL: anime.ImageURL(), })
} if hasNext { @StudioLoadMore(producer.Data.MalID, nextPage) }
} } templ StudioLoadMore(studioID int, nextPage int) {
} templ StudioAnimeItems(animes []jikan.Anime, hasNext bool, studioID int, nextPage int) { for _, anime := range animes {
@ui.AnimeCard(ui.AnimeCardProps{ ID: anime.MalID, Title: anime.DisplayTitle(), ImageURL: anime.ImageURL(), })
} if hasNext { @StudioLoadMore(studioID, nextPage) } } func getProducerName(producer jikan.ProducerResponse) string { for _, title := range producer.Data.Titles { if title.Type == "Default" { return title.Title } } return "Studio" } func formatEstablishedDate(date string) string { if len(date) >= 10 { return date[:10] } return date }