refactor: defer provider episode count to async load
This commit is contained in:
@@ -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}}
|
||||
|
||||
34
templates/components/anime_episode_count.gohtml
Normal file
34
templates/components/anime_episode_count.gohtml
Normal 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}}
|
||||
Reference in New Issue
Block a user