component AMVPage(amv *arn.AMV, user *arn.User) AMVTabs(amv, user) .widget-form.amv-page if amv.Title.String() == "" h1.amv-page-title.mountable untitled else h1.amv-page-title.mountable= amv.Title.ByUser(user) if amv.File != "" AMV(amv, user) if amv.MainAnimeID != "" || len(amv.ExtraAnimeIDs) > 0 .widget h3.widget-title.mountable Anime if amv.MainAnimeID != "" && amv.MainAnime() != nil .amv-main-anime.mountable AnimeGrid([]*arn.Anime{amv.MainAnime()}, user) if len(amv.ExtraAnimeIDs) > 0 .amv-extra-anime.mountable AnimeGridSmall(amv.ExtraAnime(), user) if len(amv.VideoEditorIDs) > 0 .widget if len(amv.VideoEditorIDs) == 1 h3.widget-title.mountable Editor else h3.widget-title.mountable Editors .user-avatars.amv-editors each editor in amv.VideoEditors() .mountable Avatar(editor) if len(amv.Links) > 0 .widget h3.widget-title.mountable Links .light-button-group.amv-links each link in amv.Links a.light-button.amv-link.mountable(href=link.URL) Icon("external-link") span= link.Title if len(amv.Tags) > 0 .widget h3.widget-title.mountable Tags .tags.mountable each tag in amv.Tags .tag.mountable= tag component AnimeGridSmall(animes []*arn.Anime, user *arn.User) each anime in animes a.tip.mountable(href=anime.Link(), aria-label=anime.Title.ByUser(user)) img.lazy(data-src=anime.ImageLink("small"), data-webp="true", data-color=anime.AverageColor(), alt=anime.Title.ByUser(user)) component AMVTabs(amv *arn.AMV, user *arn.User) .tabs LikeTab(strconv.Itoa(len(amv.Likes)), "heart", "amv", amv, user) Tab("AMV", "video-camera", amv.Link()) if user != nil Tab("Edit", "pencil", amv.Link() + "/edit") Tab("History", "history", amv.Link() + "/history")