Merge p11-cleanup-residuals into dev (P11 residual cleanup: stale-id docs, test EntryKey shapes, dead CSS)
This commit is contained in:
@@ -5,11 +5,11 @@ namespace DeepDrftPublic.Client.Common;
|
||||
|
||||
/// <summary>
|
||||
/// The single source of truth for a release's dedicated detail route (Phase 11 §2). A release
|
||||
/// resolves to its per-medium detail page purely from its id and <see cref="ReleaseMedium"/> — no
|
||||
/// round-trip needed at call sites that already hold the medium (Archive cards, AlbumsView cards,
|
||||
/// the player-bar title). The thin <c>/tracks/{id}</c> redirect page fetches by id to discover the
|
||||
/// medium, then resolves through this same helper, so the medium→route table lives in exactly one
|
||||
/// place.
|
||||
/// resolves to its per-medium detail page from its <see cref="ReleaseDto.EntryKey"/> and
|
||||
/// <see cref="ReleaseMedium"/> — no round-trip needed at call sites that already hold the medium
|
||||
/// (Archive cards, AlbumsView cards, the player-bar title). The thin <c>/tracks/{entryKey}</c>
|
||||
/// redirect page fetches by EntryKey to discover the medium, then resolves through this same
|
||||
/// helper, so the medium→route table lives in exactly one place.
|
||||
/// </summary>
|
||||
public static class ReleaseRoutes
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
@* The single release-card grid for every browse surface (Sessions, Mixes, Cuts, Archive). Cards
|
||||
open a detail page; how a card computes its href is the only real divergence across surfaces, so
|
||||
the parent supplies it one of two ways:
|
||||
- DetailRoute (the simple default): every card links /{DetailRoute}/{id} (Sessions, Mixes).
|
||||
- DetailRoute (the simple default): every card links /{DetailRoute}/{entryKey} (Sessions, Mixes).
|
||||
- HrefResolver (per-card): each card links HrefResolver(release), so Archive routes each card by
|
||||
its own medium through the one ReleaseRoutes table, and Cuts routes to /cuts/{entryKey}.
|
||||
HrefResolver wins when both are supplied. The card subtitle defaults to the artist; SubtitleResolver
|
||||
@@ -74,7 +74,7 @@
|
||||
[Parameter] public bool Loading { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Route segment for a card's detail page; a card links to /{DetailRoute}/{id}. The simple
|
||||
/// Route segment for a card's detail page; a card links to /{DetailRoute}/{entryKey}. The simple
|
||||
/// fixed-route default used by Sessions/Mixes. Ignored when <see cref="HrefResolver"/> is supplied.
|
||||
/// </summary>
|
||||
[Parameter] public string? DetailRoute { get; set; }
|
||||
|
||||
@@ -375,15 +375,6 @@ h2, h3, h4, h5, h6,
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
/* display:contents so the anchor wraps the card's cover and title without
|
||||
introducing its own box — the container's positioning context and the
|
||||
content column's flex layout are both preserved. */
|
||||
.deepdrft-track-card-link {
|
||||
display: contents;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
@media (max-width: 419.98px) {
|
||||
.deepdrft-track-detail-meta {
|
||||
flex-direction: column;
|
||||
|
||||
@@ -122,7 +122,7 @@ public class MediumWritePathTests
|
||||
|
||||
var release = new ReleaseEntity
|
||||
{
|
||||
EntryKey = "rk-flip", Title = "Originally a Cut", Artist = "Artist A",
|
||||
EntryKey = Guid.NewGuid().ToString("N"), Title = "Originally a Cut", Artist = "Artist A",
|
||||
Medium = ReleaseMedium.Cut, ReleaseType = ReleaseType.EP,
|
||||
};
|
||||
var track = new TrackEntity { EntryKey = "ek-1", TrackName = "Track", Release = release };
|
||||
@@ -151,7 +151,7 @@ public class MediumWritePathTests
|
||||
{
|
||||
var sessionWithStaleType = new ReleaseEntity
|
||||
{
|
||||
EntryKey = "rk-stale", Title = "Session", Artist = "A",
|
||||
EntryKey = Guid.NewGuid().ToString("N"), Title = "Session", Artist = "A",
|
||||
Medium = ReleaseMedium.Session, ReleaseType = ReleaseType.Album,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user