package ui
import "fmt"
type AnimeCardProps struct {
ID int
Title string
ImageURL string
Href string
// Options to customize the card behavior
Class string // override default wrapper class
ImgClass string // override default image class
TitleClass string // override default title class
HideTitle bool // if true, do not render the default title block
CurrentNode bool // if true, renders a div instead of an anchor tag (useful for graph nodes)
}
templ AnimeCard(props AnimeCardProps) {
if props.CurrentNode {
@animeCardPoster(props.ImageURL, props.Title, props.ImgClass)
{ props.Title }
{ children... }
} else {
@animeCardPoster(props.ImageURL, props.Title, props.ImgClass)
if !props.HideTitle {
{ props.Title }
}
{ children... }
}
}
func cardHref(props AnimeCardProps) string {
if props.Href != "" {
return props.Href
}
return fmt.Sprintf("/anime/%d", props.ID)
}
templ animeCardPoster(imageURL, title, imgClass string) {
if imageURL != "" {

} else {
No image
}
}
func defaultString(val, fallback string) string {
if val == "" {
return fallback
}
return val
}