fix: Linter errors

This commit is contained in:
Aleksander Grygier 2026-01-28 19:55:44 +01:00
parent 7c9be63a74
commit d9e82b7c29
3 changed files with 21 additions and 23 deletions

View File

@ -7,6 +7,7 @@
import { mcpResources, mcpTotalResourceCount } from '$lib/stores/mcp-resources.svelte';
import { McpResourceBrowser, McpResourcePreview } from '$lib/components/app';
import type { MCPResourceInfo } from '$lib/types';
import { SvelteSet } from 'svelte/reactivity';
interface Props {
open?: boolean;
@ -17,7 +18,7 @@
let { open = $bindable(false), onOpenChange, onAttach, preSelectedUri }: Props = $props();
let selectedResources = $state<Set<string>>(new Set());
let selectedResources = new SvelteSet<string>();
let lastSelectedUri = $state<string | null>(null);
let isAttaching = $state(false);
@ -28,7 +29,7 @@
loadResources();
if (preSelectedUri) {
selectedResources = new Set([preSelectedUri]);
selectedResources = new SvelteSet([preSelectedUri]);
lastSelectedUri = preSelectedUri;
}
}
@ -46,7 +47,7 @@
open = newOpen;
onOpenChange?.(newOpen);
if (!newOpen) {
selectedResources = new Set();
selectedResources = new SvelteSet();
lastSelectedUri = null;
}
}
@ -60,7 +61,7 @@
if (lastIndex !== -1 && currentIndex !== -1) {
const start = Math.min(lastIndex, currentIndex);
const end = Math.max(lastIndex, currentIndex);
const newSelection = new Set(selectedResources);
const newSelection = new SvelteSet(selectedResources);
for (let i = start; i <= end; i++) {
newSelection.add(allResources[i].uri);
@ -69,13 +70,13 @@
selectedResources = newSelection;
}
} else {
selectedResources = new Set([resource.uri]);
selectedResources = new SvelteSet([resource.uri]);
lastSelectedUri = resource.uri;
}
}
function handleResourceToggle(resource: MCPResourceInfo, checked: boolean) {
const newSelection = new Set(selectedResources);
const newSelection = new SvelteSet(selectedResources);
if (checked) {
newSelection.add(resource.uri);
} else {

View File

@ -16,15 +16,12 @@
import { Button } from '$lib/components/ui/button';
import { cn } from '$lib/components/ui/utils';
import { mcpStore } from '$lib/stores/mcp.svelte';
import {
mcpResources,
mcpTotalResourceCount,
mcpResourcesLoading
} from '$lib/stores/mcp-resources.svelte';
import { mcpResources, mcpResourcesLoading } from '$lib/stores/mcp-resources.svelte';
import { getFaviconUrl } from '$lib/utils';
import { TruncatedText } from '$lib/components/app';
import * as Tooltip from '$lib/components/ui/tooltip';
import type { MCPResource, MCPResourceInfo, MCPServerResources } from '$lib/types';
import type { MCPResource, MCPResourceInfo } from '$lib/types';
import { SvelteSet } from 'svelte/reactivity';
interface Props {
onSelect?: (resource: MCPResourceInfo, shiftKey?: boolean) => void;
@ -44,8 +41,8 @@
class: className
}: Props = $props();
let expandedServers = $state<Set<string>>(new Set());
let expandedFolders = $state<Set<string>>(new Set());
let expandedServers = new SvelteSet<string>();
let expandedFolders = new SvelteSet<string>();
let hasAutoExpanded = $state(false);
const resources = $derived(mcpResources());
@ -62,13 +59,13 @@
for (const [serverName, serverRes] of resources.entries()) {
const resource = serverRes.resources.find((r) => r.uri === uri);
if (resource) {
const newExpandedServers = new Set(expandedServers);
const newExpandedServers = new SvelteSet(expandedServers);
newExpandedServers.add(serverName);
expandedServers = newExpandedServers;
const pathParts = parseResourcePath(uri);
if (pathParts.length > 1) {
const newExpandedFolders = new Set(expandedFolders);
const newExpandedFolders = new SvelteSet(expandedFolders);
let currentPath = '';
for (let i = 0; i < pathParts.length - 1; i++) {
currentPath = `${currentPath}/${pathParts[i]}`;
@ -83,7 +80,7 @@
}
function toggleServer(serverName: string) {
const newSet = new Set(expandedServers);
const newSet = new SvelteSet(expandedServers);
if (newSet.has(serverName)) {
newSet.delete(serverName);
} else {
@ -93,7 +90,7 @@
}
function toggleFolder(folderId: string) {
const newSet = new Set(expandedFolders);
const newSet = new SvelteSet(expandedFolders);
if (newSet.has(folderId)) {
newSet.delete(folderId);
} else {
@ -257,7 +254,7 @@
if (aIsFolder && !bIsFolder) return -1;
if (!aIsFolder && bIsFolder) return 1;
return a.name.localeCompare(b.name);
}) as child}
}) as child (child.resource?.uri || `${serverName}:${parentPath}/${node.name}/${child.name}`)}
{@render renderTreeNode(child, serverName, depth + 1, `${parentPath}/${node.name}`)}
{/each}
</div>
@ -338,7 +335,7 @@
{/if}
</div>
{:else}
{#each [...resources.entries()] as [serverName, serverRes]}
{#each [...resources.entries()] as [serverName, serverRes] (serverName)}
{@const isExpanded = expandedServers.has(serverName)}
{@const hasResources = serverRes.resources.length > 0}
{@const displayName = getServerDisplayName(serverName)}
@ -389,7 +386,7 @@
if (!aIsFolder && bIsFolder) return 1;
return a.name.localeCompare(b.name);
}) as child}
}) as child (child.resource?.uri || `${serverName}:${child.name}`)}
{@render renderTreeNode(child, serverName, 1, '')}
{/each}
{/if}

View File

@ -1,5 +1,5 @@
<script lang="ts">
import { FileText, Loader2, AlertCircle, Image, Download, Copy, Check } from '@lucide/svelte';
import { FileText, Loader2, AlertCircle, Download, Copy, Check } from '@lucide/svelte';
import { Button } from '$lib/components/ui/button';
import { cn } from '$lib/components/ui/utils';
import { mcpStore } from '$lib/stores/mcp.svelte';
@ -153,7 +153,7 @@
<pre class="font-mono text-xs break-words whitespace-pre-wrap">{textContent}</pre>
{/if}
{#each blobContent as blob}
{#each blobContent as blob (blob.uri)}
{#if isImageMimeType(blob.mimeType)}
<img
src={`data:${blob.mimeType};base64,${blob.blob}`}