feat(cms): Release Archive medium tab strip (ALL · CUTS · SESSIONS · MIXES), retire navigate-away cards
Replace the navigate-away ReleaseArchiveBrowser cards and the redundant top-level Releases toggle with an in-page MudTabs strip under the Releases mode: ALL (CmsAllReleasesGrid) plus one enum-driven tab per ReleaseMedium. Sessions/Mixes browsers gain an Embedded flag that suppresses standalone page chrome when hosted as tab content; CmsCutBrowser is the new Cut-filtered grid. /tracks/sessions, /tracks/mixes, /tracks/archive stay reachable by URL.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
@inherits CmsMediumBrowserBase<CmsCutBrowser.CutRow>
|
||||
@using DeepDrftModels.DTOs
|
||||
@using DeepDrftModels.Enums
|
||||
|
||||
@* Cut-filtered release grid for the Release Archive's CUTS tab (Phase 9 §8.A). Derived from the same
|
||||
CmsMediumBrowserBase pattern the Session/Mix browsers use, so a fourth medium would follow the same
|
||||
shape with no parallel path. Cuts carry no medium-specific row action (no hero, no waveform), so the
|
||||
ActionContent slot renders nothing — every row still gets the shared Edit affordance from
|
||||
CmsMediumTable. Embedded as tab content only; it has no standalone @page route. *@
|
||||
<CmsMediumTable TRow="CutRow"
|
||||
Rows="Rows"
|
||||
Loading="Loading"
|
||||
ReleaseAccessor="@(row => row.Release)"
|
||||
ThumbUrl="@(key => ThumbUrl(key))"
|
||||
TitleHeader="Cut"
|
||||
EmptyMessage="No cuts found.">
|
||||
<ActionContent Context="row">
|
||||
</ActionContent>
|
||||
</CmsMediumTable>
|
||||
|
||||
@code {
|
||||
protected override ReleaseMedium Medium => ReleaseMedium.Cut;
|
||||
protected override string MediumNoun => "cuts";
|
||||
|
||||
protected override CutRow ToRow(ReleaseDto release) => new() { Release = release };
|
||||
|
||||
public sealed class CutRow
|
||||
{
|
||||
public required ReleaseDto Release { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user