refactor(web): migrate 4 open-coded cover URL sites to coverUrl() helper (C1 small-win)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { TrackRef } from '$lib/api/types';
|
import type { TrackRef } from '$lib/api/types';
|
||||||
import { playQueue, enqueueTrack } from '$lib/player/store.svelte';
|
import { playQueue, enqueueTrack } from '$lib/player/store.svelte';
|
||||||
import { FALLBACK_COVER } from '$lib/media/covers';
|
import { FALLBACK_COVER, coverUrl } from '$lib/media/covers';
|
||||||
import { Plus } from 'lucide-svelte';
|
import { Plus } from 'lucide-svelte';
|
||||||
import LikeButton from './LikeButton.svelte';
|
import LikeButton from './LikeButton.svelte';
|
||||||
import TrackMenu from './TrackMenu.svelte';
|
import TrackMenu from './TrackMenu.svelte';
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
index: number;
|
index: number;
|
||||||
} = $props();
|
} = $props();
|
||||||
|
|
||||||
const coverUrl = $derived(`/api/albums/${track.album_id}/cover`);
|
const cover = $derived(coverUrl(track.album_id));
|
||||||
|
|
||||||
function onImgError(e: Event) {
|
function onImgError(e: Event) {
|
||||||
(e.currentTarget as HTMLImageElement).src = FALLBACK_COVER;
|
(e.currentTarget as HTMLImageElement).src = FALLBACK_COVER;
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
>
|
>
|
||||||
<div class="aspect-square w-full overflow-hidden rounded-md bg-surface-hover">
|
<div class="aspect-square w-full overflow-hidden rounded-md bg-surface-hover">
|
||||||
<img
|
<img
|
||||||
src={coverUrl}
|
src={cover}
|
||||||
alt=""
|
alt=""
|
||||||
class="h-full w-full object-cover transition-transform group-hover:scale-[1.03]"
|
class="h-full w-full object-cover transition-transform group-hover:scale-[1.03]"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
toggleQueueDrawer
|
toggleQueueDrawer
|
||||||
} from '$lib/player/store.svelte';
|
} from '$lib/player/store.svelte';
|
||||||
import { formatDuration } from '$lib/media/duration';
|
import { formatDuration } from '$lib/media/duration';
|
||||||
import { FALLBACK_COVER } from '$lib/media/covers';
|
import { FALLBACK_COVER, coverUrl } from '$lib/media/covers';
|
||||||
import LikeButton from './LikeButton.svelte';
|
import LikeButton from './LikeButton.svelte';
|
||||||
import TrackMenu from './TrackMenu.svelte';
|
import TrackMenu from './TrackMenu.svelte';
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
class="shrink-0 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent"
|
class="shrink-0 focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src={`/api/albums/${current.album_id}/cover`}
|
src={coverUrl(current.album_id)}
|
||||||
alt=""
|
alt=""
|
||||||
class="h-24 w-24 rounded-md object-cover"
|
class="h-24 w-24 rounded-md object-cover"
|
||||||
onerror={onCoverError}
|
onerror={onCoverError}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { coverUrl } from '$lib/media/covers';
|
||||||
import {
|
import {
|
||||||
player,
|
player,
|
||||||
togglePlay,
|
togglePlay,
|
||||||
@@ -21,7 +22,7 @@ export function useMediaSession(): void {
|
|||||||
artist: t.artist_name,
|
artist: t.artist_name,
|
||||||
album: t.album_title,
|
album: t.album_title,
|
||||||
artwork: [{
|
artwork: [{
|
||||||
src: `/api/albums/${t.album_id}/cover`,
|
src: coverUrl(t.album_id),
|
||||||
sizes: '512x512',
|
sizes: '512x512',
|
||||||
type: 'image/jpeg'
|
type: 'image/jpeg'
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
import { errMessage } from '$lib/api/errors';
|
import { errMessage } from '$lib/api/errors';
|
||||||
import { pushToast } from '$lib/stores/toast.svelte';
|
import { pushToast } from '$lib/stores/toast.svelte';
|
||||||
import { playRadio } from '$lib/player/store.svelte';
|
import { playRadio } from '$lib/player/store.svelte';
|
||||||
|
import { coverUrl } from '$lib/media/covers';
|
||||||
import Modal from '$lib/components/Modal.svelte';
|
import Modal from '$lib/components/Modal.svelte';
|
||||||
import type { AdminQuarantineRow, LidarrQuarantineReason } from '$lib/api/types';
|
import type { AdminQuarantineRow, LidarrQuarantineReason } from '$lib/api/types';
|
||||||
|
|
||||||
@@ -191,7 +192,7 @@
|
|||||||
>
|
>
|
||||||
{#if r.album_id}
|
{#if r.album_id}
|
||||||
<img
|
<img
|
||||||
src={`/api/albums/${r.album_id}/cover`}
|
src={coverUrl(r.album_id)}
|
||||||
alt=""
|
alt=""
|
||||||
class="h-full w-full rounded-md object-cover"
|
class="h-full w-full rounded-md object-cover"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
import { qk } from '$lib/api/queries';
|
import { qk } from '$lib/api/queries';
|
||||||
import type { LidarrQuarantineMineRow, LidarrQuarantineReason } from '$lib/api/types';
|
import type { LidarrQuarantineMineRow, LidarrQuarantineReason } from '$lib/api/types';
|
||||||
import ApiErrorBanner from '$lib/components/ApiErrorBanner.svelte';
|
import ApiErrorBanner from '$lib/components/ApiErrorBanner.svelte';
|
||||||
|
import { coverUrl } from '$lib/media/covers';
|
||||||
|
|
||||||
const client = useQueryClient();
|
const client = useQueryClient();
|
||||||
const queryStore = createMyQuarantineQuery();
|
const queryStore = createMyQuarantineQuery();
|
||||||
@@ -61,7 +62,7 @@
|
|||||||
<div class="flex h-14 w-14 shrink-0 items-center justify-center rounded-md bg-surface-hover">
|
<div class="flex h-14 w-14 shrink-0 items-center justify-center rounded-md bg-surface-hover">
|
||||||
{#if row.album_cover_art_path}
|
{#if row.album_cover_art_path}
|
||||||
<img
|
<img
|
||||||
src={`/api/albums/${row.album_id}/cover`}
|
src={coverUrl(row.album_id)}
|
||||||
alt=""
|
alt=""
|
||||||
class="h-full w-full rounded-md object-cover"
|
class="h-full w-full rounded-md object-cover"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
|
|||||||
Reference in New Issue
Block a user