refactor: defer provider episode count to async load

This commit is contained in:
2026-06-22 21:09:02 +02:00
committed by Milas Holsting
parent 01564ffd52
commit e333ae36e8
5 changed files with 90 additions and 29 deletions

View File

@@ -31,25 +31,7 @@
</div>
{{end}}
{{if $anime.Type}}<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">{{$anime.Type}}</span>{{end}}
{{if .EpisodesCount}}
{{if eq .EpisodesCountLabel "Total episodes"}}
<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">
<span class="text-foreground">{{.EpisodesCount}}</span> total eps
</span>
{{else if $anime.Episodes}}
<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">
<span class="text-foreground">{{.EpisodesCount}}</span> aired <span class="text-foreground-muted">/</span> <span class="text-foreground">{{$anime.Episodes}}</span> total eps
</span>
{{else}}
<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">
<span class="text-foreground">{{.EpisodesCount}}</span> aired eps
</span>
{{end}}
{{else if $anime.Episodes}}
<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">
<span class="text-foreground">{{$anime.Episodes}}</span> total eps
</span>
{{end}}
{{template "anime_episode_count_loading" dict "AnimeID" $anime.MalID "Count" .EpisodesCount "Label" .EpisodesCountLabel}}
{{if $anime.Status}}<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">{{$anime.Status}}</span>{{end}}
{{if $anime.Season}}<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">{{$anime.Premiered}}</span>{{end}}
{{if $anime.ShortRating}}<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">{{$anime.ShortRating}}</span>{{end}}

View File

@@ -0,0 +1,34 @@
{{define "anime_episode_count"}}
{{if .Items.Count}}
<span class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden">
<span class="text-foreground">{{.Items.Count}}</span>
{{if eq .Items.Label "Total episodes"}}
total eps
{{else if eq .Items.Label "Available episodes"}}
available eps
{{else if eq .Items.Label "Listed episodes"}}
listed eps
{{else}}
aired eps
{{end}}
</span>
{{end}}
{{end}}
{{define "anime_episode_count_loading"}}
{{if .Count}}
<span
hx-get="/anime/{{.AnimeID}}?section=episode-count"
hx-trigger="load"
hx-swap="outerHTML"
class="flex min-w-0 items-center gap-1.5 before:mr-1 before:block before:size-0.75 before:shrink-0 before:rounded-full before:bg-current before:opacity-65 first:before:hidden"
>
<span class="text-foreground">{{.Count}}</span>
{{if eq .Label "Total episodes"}}
total eps
{{else}}
aired eps
{{end}}
</span>
{{end}}
{{end}}