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>
|
/// <summary>
|
||||||
/// The single source of truth for a release's dedicated detail route (Phase 11 §2). A release
|
/// 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
|
/// resolves to its per-medium detail page from its <see cref="ReleaseDto.EntryKey"/> and
|
||||||
/// round-trip needed at call sites that already hold the medium (Archive cards, AlbumsView cards,
|
/// <see cref="ReleaseMedium"/> — no round-trip needed at call sites that already hold the medium
|
||||||
/// the player-bar title). The thin <c>/tracks/{id}</c> redirect page fetches by id to discover the
|
/// (Archive cards, AlbumsView cards, the player-bar title). The thin <c>/tracks/{entryKey}</c>
|
||||||
/// medium, then resolves through this same helper, so the medium→route table lives in exactly one
|
/// redirect page fetches by EntryKey to discover the medium, then resolves through this same
|
||||||
/// place.
|
/// helper, so the medium→route table lives in exactly one place.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class ReleaseRoutes
|
public static class ReleaseRoutes
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
@* The single release-card grid for every browse surface (Sessions, Mixes, Cuts, Archive). Cards
|
@* 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
|
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:
|
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
|
- 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}.
|
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
|
HrefResolver wins when both are supplied. The card subtitle defaults to the artist; SubtitleResolver
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
[Parameter] public bool Loading { get; set; }
|
[Parameter] public bool Loading { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <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.
|
/// fixed-route default used by Sessions/Mixes. Ignored when <see cref="HrefResolver"/> is supplied.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Parameter] public string? DetailRoute { get; set; }
|
[Parameter] public string? DetailRoute { get; set; }
|
||||||
|
|||||||
@@ -375,15 +375,6 @@ h2, h3, h4, h5, h6,
|
|||||||
word-break: break-all;
|
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) {
|
@media (max-width: 419.98px) {
|
||||||
.deepdrft-track-detail-meta {
|
.deepdrft-track-detail-meta {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ public class MediumWritePathTests
|
|||||||
|
|
||||||
var release = new ReleaseEntity
|
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,
|
Medium = ReleaseMedium.Cut, ReleaseType = ReleaseType.EP,
|
||||||
};
|
};
|
||||||
var track = new TrackEntity { EntryKey = "ek-1", TrackName = "Track", Release = release };
|
var track = new TrackEntity { EntryKey = "ek-1", TrackName = "Track", Release = release };
|
||||||
@@ -151,7 +151,7 @@ public class MediumWritePathTests
|
|||||||
{
|
{
|
||||||
var sessionWithStaleType = new ReleaseEntity
|
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,
|
Medium = ReleaseMedium.Session, ReleaseType = ReleaseType.Album,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user