{{- extends "layout/default" }} {{- import "blocks/pagination" }} {{- import "blocks/underlinenavUser" }} {{- block body() }}

Home

Illustrations

Manga

Novels

Bookmarks

{{- if .User.BackgroundImage }}
{{ .User.Name }} profile background image User avatar
{{- end }}
{{- if !.User.BackgroundImage }} User avatar {{- end }}

{{ .User.Name }}

{{ .User.Following }} Following | {{ .User.MyPixiv }} MyPixiv

{{- include "fragments/followButtons" . }}

{{ .User.Following }} Following | {{ .User.MyPixiv }} MyPixiv

{{- if .User.Webpage }} {{- end }} {{- range index, item := .User.Social }} {{- if index == "pawoo" }} {{- else }} {{- end }} {{- end }}
{* NOTE: this button definitely needs to be in a different place *}

{{ raw: parsePixivRedirect(.User.Comment) }}

{{- baseURL := "/users/" + .User.ID + "/" }} {{- paths := slice("" + "#checkpoint", "illustrations" + "#checkpoint", "manga" + "#checkpoint", "novels" + "#checkpoint", "bookmarks" + "#checkpoint") }} {{- names := slice("Home", "Illustrations", "Manga", "Novels", "Bookmarks") }} {{- categoryCounts := slice(.User.WorkCounts.All, .User.WorkCounts.Illustrations, .User.WorkCounts.Manga, .User.WorkCounts.Novels, .User.WorkCounts.Bookmarks) }} {{- yield UnderlineNavUser(baseURL=baseURL, paths=paths, names=names, categoryCounts=categoryCounts, activeState=.Category.Value + "#checkpoint") }}
{{- if .Category.Value == "" || .Category.Value == "artworks" }} {*

Works{{ .User.WorkCounts.All }}

*} {* Initialize a flag to track the first rendered group *} {{- isFirstGroup := true }} {{ if len(.User.Illustrations) != 0 }} {{- if not isFirstGroup }}
{{- end }}

Illustrations{{ .User.WorkCounts.Illustrations }}

{{- range .User.Categories.illustrations.FrequentTags }}
#{{ .Name }} {{- if .TranslatedName }} ({{ .TranslatedName }}) {{- end }}
{{- end }}
{{- include "fragments/small-tn" .User.Illustrations }}
{* TODO: use a better check than this *} {{ if len(.User.Illustrations) > 29 }} {{- end }} {* After rendering Illustrations, set isFirstGroup to false *} {{- isFirstGroup = false }} {{- end }} {{ if len(.User.Manga) != 0 }} {{- if not isFirstGroup }}
{{- end }}

Manga{{ .User.WorkCounts.Manga }}

{{- range .User.Categories.manga.FrequentTags }}
#{{ .Name }} {{- if .TranslatedName }} ({{ .TranslatedName }}) {{- end }}
{{- end }}
{{- if len(.User.MangaSeries) != 0 }}
{{- range .User.MangaSeries }} {{- include "fragments/mangaseries-tn" . }} {{- end }}
{{- end }}
{{- include "fragments/small-tn" .User.Manga }}
{{ if len(.User.Manga) > 29 }} {{- end }} {{- isFirstGroup = false }} {{- end }} {{ if len(.User.Novels) != 0 }} {{- if not isFirstGroup }}
{{- end }}

Novels{{ .User.WorkCounts.Novels }}

{{- range .User.Categories.novels.FrequentTags }}
#{{ .Name }} {{- if .TranslatedName }} ({{ .TranslatedName }}) {{- end }}
{{- end }}
{{- if len(.User.NovelSeries) != 0 }}
{{- range .User.NovelSeries }} {{- include "fragments/novelseries-tn" . }} {{- end }}
{{- end }}
{{- range .User.Novels }}
{{- include "fragments/novel-tn" . }}

{{- end }}
{{ if len(.User.Novels) > 29 }} {{- end }} {{- isFirstGroup = false }} {{- end }} {{- end }} {{- if .Category.Value == "illustrations" }}

Illustrations{{ .User.WorkCounts.Illustrations }}

{{- combinedUrl := "/artworks-multi/" + joinArtworkIds(.User.Illustrations) }}
{{- range .User.Categories.illustrations.FrequentTags }}
#{{ .Name }} {{- if .TranslatedName }} ({{ .TranslatedName }}) {{- end }}
{{- end }}
{{- include "fragments/small-tn" .User.Illustrations }}
{{- end }} {{- if .Category.Value == "manga" }}

Manga{{ .User.WorkCounts.Manga }}

{{- combinedUrl := "/artworks-multi/" + joinArtworkIds(.User.Manga) }}
{{- range .User.Categories.manga.FrequentTags }}
#{{ .Name }} {{- if .TranslatedName }} ({{ .TranslatedName }}) {{- end }}
{{- end }}
{{- if len(.User.MangaSeries) != 0 }}
{{- range .User.MangaSeries }} {{- include "fragments/mangaseries-tn" . }} {{- end }}
{{- end }}
{{- include "fragments/small-tn" .User.Manga }}
{{- end }} {{- if .Category.Value == "novels" }}

Novels{{ .User.WorkCounts.Novels }}

{{- range .User.Categories.novels.FrequentTags }}
#{{ .Name }} {{- if .TranslatedName }} ({{ .TranslatedName }}) {{- end }}
{{- end }}
{{- range .User.Novels }}
{{- include "fragments/novel-tn" . }}

{{- end }}
{{- end }} {{- if .Category.Value == "bookmarks" }}

Bookmarks{{ .User.WorkCounts.Bookmarks }}

{* NOTE: using .User.Artworks since there's no need to create a separate bookmarks slice; the category handles it *}
{{- include "fragments/small-tn" .User.Artworks }}
{{- end }}
{* TODO: figure out how to 'paginate' the home tab correctly; htmx for swapping in categories? *} {{- if .Category.Value == "illustrations" || .Category.Value == "manga" || .Category.Value == "novels" || .Category.Value == "bookmarks" }} {{- url := "/users/" + .User.ID + "/" + .Category.Value + "?page="}} {{- paginationData := createPaginator(url, "#checkpoint", .Page, .Category.PageLimit, 1, 5) }} {{- yield pagination(data=paginationData) }} {{- end }}
{{- end }}