feat: render release Description blurb on Session, Mix, and Cut detail pages

New shared ReleaseDescription control renders the blurb in a uniform themed block
below the hero/header; null/whitespace renders nothing, with no layout artifact.
This commit is contained in:
daniel-c-harvey
2026-06-17 14:39:03 -04:00
parent db29b0dd18
commit b8f81edb59
5 changed files with 47 additions and 0 deletions
@@ -0,0 +1,19 @@
@namespace DeepDrftPublic.Client.Controls
@* Shared presentational blurb block for release detail pages. Renders the release's short
Description paragraph in a uniform styled block placed just below the hero/header on every
medium (Session, Mix, Cut). Purely presentational — owns no data fetch and no player wiring.
A null/whitespace Description renders nothing at all: no block, no divider, no whitespace
artifact (the guard lives here so every consumer gets it for free). *@
@if (!string.IsNullOrWhiteSpace(Description))
{
<div class="deepdrft-release-description">
<p class="deepdrft-release-description-text">@Description</p>
</div>
}
@code {
/// <summary>The release's short description blurb. Null/whitespace renders nothing.</summary>
[Parameter] public string? Description { get; set; }
}
@@ -115,6 +115,8 @@ else
</div>
</Header>
<BodyContent>
@* Blurb sits between the header and the track-list divider. *@
<ReleaseDescription Description="@release.Description" />
<MudDivider Class="cut-detail-divider" />
@if (ViewModel.Tracks.Count == 0)
{
@@ -85,6 +85,10 @@ else
</PlayContent>
</ReleaseHeroOverlay>
</Hero>
<BodyContent>
@* Blurb sits below the hero, inside the scaffold's foreground stacking context. *@
<ReleaseDescription Description="@release.Description" />
</BodyContent>
</ReleaseDetailScaffold>
</MudContainer>
</div>
@@ -83,6 +83,8 @@ else
</PlayContent>
</ReleaseHeroOverlay>
<ReleaseDescription Description="@release.Description" />
</MudContainer>
}