FileIcon.razor 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. @code {
  2. [Parameter, Required] public FeTrack Track { get; set; }
  3. [Parameter] public bool ShowParam { get; set; }
  4. }
  5. @if (Track != null)
  6. {
  7. var ex = Path.GetExtension(Track.Path?.ToLower());
  8. <span class="badge bg-secondary">
  9. @switch (ex)
  10. {
  11. case ".flac":
  12. <i class="bi bi-file-earmark-music"></i>
  13. break;
  14. case ".wav":
  15. <i class="bi bi-filetype-wav"></i>
  16. break;
  17. case ".m4a":
  18. case ".aac":
  19. <i class="bi bi-filetype-aac"></i>
  20. break;
  21. case ".mp3":
  22. <i class="bi bi-filetype-mp3"></i>
  23. break;
  24. case ".mp4":
  25. <i class="bi bi-filetype-mp4"></i>
  26. break;
  27. default:
  28. <i class="bi bi-file-earmark"></i>
  29. break;
  30. }
  31. @ex.Substring(1).ToUpper()
  32. @if (ShowParam && Track.Tag?.Bit > 0)
  33. {
  34. <span class="border-start ms-1 ps-1">@(Track.Tag.Bit)</span>
  35. }
  36. </span>
  37. @if (ShowParam && (Track.Tag?.BitRate > 0 || Track.Tag?.Freq > 0))
  38. {
  39. <span class="badge bg-secondary">
  40. @if (Track.Tag?.BitRate > 0)
  41. {
  42. @if (Track.Tag.BitRate < 1000)
  43. {
  44. <span>@(Track.Tag.BitRate)k</span>
  45. }
  46. else
  47. {
  48. <span>@($"{Track.Tag.BitRate / 1000f:N2}")m </span>
  49. }
  50. }
  51. @if (Track.Tag?.Freq > 0)
  52. {
  53. <span class="ms-1">@(Track.Tag.Freq / 100f)</span>
  54. }
  55. </span>
  56. }
  57. }