package templates import ( "fmt" "mal/integrations/jikan" components "mal/web/components" "mal/web/shared" "mal/web/shared/layout" ) templ StudioDetails(producer jikan.ProducerResponse, animes []jikan.Anime, watchlistStatuses map[int]string, hasNext bool, nextPage int) { @layout.Layout("mal - "+shared.GetProducerName(producer), true) {
if producer.Data.Images.Jpg.ImageURL != "" { { }

{ shared.GetProducerName(producer) }

if producer.Data.Established != "" {

Established: { shared.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 {
@components.AnimeCard(components.AnimeCardProps{ ID: anime.MalID, Title: anime.DisplayTitle(), ImageURL: anime.ImageURL(), TitleEnglish: anime.TitleEnglish, TitleJapanese: anime.TitleJapanese, Airing: anime.Airing, WatchlistStatus: watchlistStatuses[anime.MalID], })
} if hasNext { @StudioLoadMore(producer.Data.MalID, nextPage) }
} } templ StudioLoadMore(studioID int, nextPage int) {
} templ StudioAnimeItems(animes []jikan.Anime, watchlistStatuses map[int]string, hasNext bool, studioID int, nextPage int) { for _, anime := range animes {
@components.AnimeCard(components.AnimeCardProps{ ID: anime.MalID, Title: anime.DisplayTitle(), ImageURL: anime.ImageURL(), TitleEnglish: anime.TitleEnglish, TitleJapanese: anime.TitleJapanese, Airing: anime.Airing, WatchlistStatus: watchlistStatuses[anime.MalID], })
} if hasNext { @StudioLoadMore(studioID, nextPage) } }