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")