20084ace4f
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.
32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
@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; }
|
|
}
|
|
}
|