DiscCard.razor 1.6 KB

1234567891011121314151617181920212223242526272829303132333435
  1. @code {
  2. [Parameter, Required] public FeDisc Disc { get; set; }
  3. private DiscDialog dlgDisc;
  4. }
  5. <DiscDialog @ref="dlgDisc"></DiscDialog>
  6. <div class="col-md-3 d-flex align-items-stretch">
  7. <div class="card mb-3 shadow-sm" @onclick="()=>{ if (Disc!=null) dlgDisc.Show(Disc); }">
  8. <div class="card-img-top disc-card-cover" style="background-image:url('@Disc?.CoverPath.UrlEscape()'),url('blazor-192.png')">
  9. </div>
  10. <div class="card-body d-flex align-content-between flex-wrap p-2">
  11. <p class="card-text w-100 position-relative">
  12. @Disc?.Name
  13. @if (Disc?.Bks != null)
  14. {
  15. <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-secondary border border-primary">PIC</span>
  16. }
  17. </p>
  18. <div class="w-100">
  19. <div class="w-100 text-center">
  20. <small class="font-monospace text-muted">Track @Disc?.TrackSets.First().Tracks.Length</small>
  21. </div>
  22. @foreach (var tSet in (Disc?.TrackSets).KeepNoEmpty())
  23. {
  24. <div class="d-flex justify-content-between w-100">
  25. <span class="align-self-center">@(tSet?.Name.StartsWith("AAC_Q1.00") == true ? "Q1" + tSet?.Name.Substring(9) : tSet?.Name)</span>
  26. <small class="text-nowrap font-monospace text-muted align-self-center">@tSet?.TotalDuration.SecondToDur() @tSet?.TotalBytes.BytesToFileSize()</small>
  27. </div>
  28. }
  29. </div>
  30. </div>
  31. </div>
  32. </div>