chore(format): run prettier over src/ and scripts/
Formatting was configured but never enforced: `bun run format:check` reported 199 unformatted files and ran in no workflow and in no git hook, so .prettierrc (printWidth 100, trailing commas) described an intention rather than the tree. This is the one-time sweep that makes the check gateable. Whitespace and token-reflow only -- no behavioural change: `bun run check` reports 0 errors and all 1053 frontend tests pass before and after. Kept out of every other commit on purpose. A 199-file diff mixed with real changes is unreviewable, and the next commit turns format:check into a hard CI gate so this cannot silently accumulate again.
This commit is contained in:
@@ -27,7 +27,11 @@
|
||||
aria-label={label}
|
||||
class={`text-gray-400 hover:text-white transition-colors ${className}`}
|
||||
>
|
||||
<svg class={`${sizeMap[size]} fill-none stroke-current`} stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg
|
||||
class={`${sizeMap[size]} fill-none stroke-current`}
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
@@ -86,11 +86,17 @@
|
||||
</script>
|
||||
|
||||
{#if loading}
|
||||
<div class="{className} bg-gray-700 animate-pulse" aria-busy="true" aria-label="Loading image"></div>
|
||||
<div
|
||||
class="{className} bg-gray-700 animate-pulse"
|
||||
aria-busy="true"
|
||||
aria-label="Loading image"
|
||||
></div>
|
||||
{:else if error || !imageUrl}
|
||||
<div class="{className} bg-gray-800 flex items-center justify-center">
|
||||
<svg class="w-8 h-8 text-gray-600" fill="currentColor" viewBox="0 0 24 24">
|
||||
<path d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"/>
|
||||
<path
|
||||
d="M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
{:else}
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
playlist: { singular: "playlist", plural: "playlists" },
|
||||
};
|
||||
|
||||
const labels = $derived(itemTypeLabels[itemType] || { singular: itemType, plural: `${itemType}s` });
|
||||
const labels = $derived(
|
||||
itemTypeLabels[itemType] || { singular: itemType, plural: `${itemType}s` },
|
||||
);
|
||||
const label = $derived(count === 1 ? labels.singular : labels.plural);
|
||||
</script>
|
||||
|
||||
|
||||
@@ -46,17 +46,17 @@
|
||||
// Initialize scroll position
|
||||
$effect(() => {
|
||||
if (scrollContainer) {
|
||||
const idx = Math.max(0, items.findIndex((i) => i.value === selectedValue));
|
||||
const idx = Math.max(
|
||||
0,
|
||||
items.findIndex((i) => i.value === selectedValue),
|
||||
);
|
||||
scrollContainer.scrollTop = idx * itemHeight;
|
||||
selectedIndex = idx;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<div
|
||||
class="relative overflow-hidden rounded-lg"
|
||||
style="height: {containerHeight}px"
|
||||
>
|
||||
<div class="relative overflow-hidden rounded-lg" style="height: {containerHeight}px">
|
||||
<!-- Highlight band for center item -->
|
||||
<div
|
||||
class="absolute left-0 right-0 pointer-events-none z-10 border-y border-[var(--color-jellyfin)]/40 bg-[var(--color-jellyfin)]/5 rounded"
|
||||
@@ -64,8 +64,12 @@
|
||||
></div>
|
||||
|
||||
<!-- Fade gradients -->
|
||||
<div class="absolute top-0 left-0 right-0 h-10 bg-gradient-to-b from-[var(--color-surface)] to-transparent z-20 pointer-events-none"></div>
|
||||
<div class="absolute bottom-0 left-0 right-0 h-10 bg-gradient-to-t from-[var(--color-surface)] to-transparent z-20 pointer-events-none"></div>
|
||||
<div
|
||||
class="absolute top-0 left-0 right-0 h-10 bg-gradient-to-b from-[var(--color-surface)] to-transparent z-20 pointer-events-none"
|
||||
></div>
|
||||
<div
|
||||
class="absolute bottom-0 left-0 right-0 h-10 bg-gradient-to-t from-[var(--color-surface)] to-transparent z-20 pointer-events-none"
|
||||
></div>
|
||||
|
||||
<!-- Scrollable container -->
|
||||
<div
|
||||
@@ -85,8 +89,8 @@
|
||||
onclick={() => scrollToIndex(i)}
|
||||
class="w-full snap-center flex items-center justify-center transition-all duration-150
|
||||
{i === selectedIndex
|
||||
? 'text-white text-2xl font-bold'
|
||||
: 'text-gray-500 text-lg font-medium opacity-60'}"
|
||||
? 'text-white text-2xl font-bold'
|
||||
: 'text-gray-500 text-lg font-medium opacity-60'}"
|
||||
style="height: {itemHeight}px"
|
||||
>
|
||||
{item.label}
|
||||
|
||||
@@ -146,7 +146,7 @@ describe("SearchBar", () => {
|
||||
it("should handle special characters in value", () => {
|
||||
render(SearchBar, {
|
||||
props: {
|
||||
value: '@$%^&*()',
|
||||
value: "@$%^&*()",
|
||||
placeholder: "Search...",
|
||||
onInput: vi.fn(),
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user