diff --git a/v2/pink-sb/src/lib/DirectoryPicker/DirectoryItem.svelte b/v2/pink-sb/src/lib/DirectoryPicker/DirectoryItem.svelte index 00591d2179..af93c563d8 100644 --- a/v2/pink-sb/src/lib/DirectoryPicker/DirectoryItem.svelte +++ b/v2/pink-sb/src/lib/DirectoryPicker/DirectoryItem.svelte @@ -11,6 +11,7 @@ export let directories: Directory[]; export let level = 0; export let containerWidth: number | undefined; + export let selectedPath: string | undefined; let radioInputs: HTMLInputElement[] = []; let value: string; @@ -36,6 +37,14 @@ const paddingLeftStyle = `padding-left: ${32 * level + 8}px`; const dispatch = createEventDispatcher(); + + // Handle programmatic selection without dispatching events + $: if (selectedPath && directories?.length) { + const idx = directories.findIndex((d) => d.fullPath === selectedPath); + if (idx !== -1 && radioInputs[idx]) { + radioInputs[idx].checked = true; + } + } {#each directories as { title, fileCount, fullPath, thumbnailUrl, thumbnailIcon, thumbnailHtml, children, showThumbnail = true, loading = false }, i} @@ -130,7 +139,13 @@ {#if children}