@{ var hasLink = !string.IsNullOrEmpty(TrackModel?.EntryKey); var trackHref = hasLink ? $"/track/{TrackModel!.EntryKey}" : null; var hasArt = !string.IsNullOrEmpty(TrackModel?.ImagePath); } @if (ViewMode == GalleryViewMode.Grid) {
@* Cover and title/artist link to the detail page; the play button (below, outside any anchor) stays the sole playback entry point. display:contents keeps the grid intact. *@ @if (hasLink) { @if (!string.IsNullOrEmpty(TrackModel?.ImagePath)) {
} else {
}
} else if (!string.IsNullOrEmpty(TrackModel?.ImagePath)) {
} else {
}
@if (hasLink) {
@TrackModel?.TrackName @TrackModel?.Artist
} else {
@TrackModel?.TrackName @TrackModel?.Artist
}
@if (!string.IsNullOrEmpty(TrackModel?.Album)) { @TrackModel.Album } @if (!string.IsNullOrEmpty(TrackModel?.Genre)) { @TrackModel.Genre }
@if (TrackModel?.ReleaseDate.HasValue == true) { @TrackModel.ReleaseDate.Value.Year } else {
}
} else {
@if (hasLink) { @* art thumb *@ @if (!string.IsNullOrEmpty(TrackModel?.ImagePath)) {
} else {
} @* text block *@
@TrackModel?.Artist @TrackModel?.TrackName
@* right metadata *@
@if (!string.IsNullOrEmpty(TrackModel?.Genre)) { @TrackModel.Genre } @if (TrackModel?.ReleaseDate.HasValue == true) { @TrackModel.ReleaseDate.Value.Year }
} else { @* same structure without anchor *@ @if (!string.IsNullOrEmpty(TrackModel?.ImagePath)) {
} else {
}
@TrackModel?.Artist @TrackModel?.TrackName
@if (!string.IsNullOrEmpty(TrackModel?.Genre)) { @TrackModel.Genre } @if (TrackModel?.ReleaseDate.HasValue == true) { @TrackModel.ReleaseDate.Value.Year }
}
}