Add snippets to bindingPanel

This commit is contained in:
Adria Navarro 2025-02-20 12:23:07 +01:00
parent bd82399e94
commit c0830f310c
2 changed files with 47 additions and 0 deletions

View File

@ -436,6 +436,7 @@
addBinding={onSelectBinding}
{addSnippet}
{mode}
{snippets}
/>
{:else if sidePanel === SidePanel.Evaluation}
<EvaluationSidePanel

View File

@ -10,6 +10,7 @@
export let addBinding: (_binding: EnrichedBinding) => void
export let addSnippet: (_snippet: Snippet) => void
export let bindings: EnrichedBinding[]
export let snippets: Snippet[] | null
export let mode: BindingMode
export let allowHelpers: boolean
export let allowSnippets: boolean
@ -64,6 +65,28 @@
)
})
$: filteredSnippets = getFilteredSnippets(
allowSnippets,
snippets || [],
search
)
const getFilteredSnippets = (
enableSnippets: boolean,
snippets: Snippet[],
search: string
) => {
if (!enableSnippets || !snippets.length) {
return []
}
if (!search?.length) {
return snippets
}
return snippets.filter(snippet =>
snippet.name.toLowerCase().includes(search.toLowerCase())
)
}
const getHelperExample = (helper: Helper, js: boolean) => {
let example = helper.example || ""
if (js) {
@ -301,6 +324,29 @@
</div>
{/if}
{/if}
{#if selectedCategory === "Snippets" || search}
{#if filteredSnippets?.length}
<div class="sub-section">
<ul class="helpers">
{#each filteredSnippets as helper}
<li
class="binding"
on:mouseenter={e =>
showHelperPopover(helper, e.currentTarget)}
on:mouseleave={hidePopover}
on:click={() => addSnippet(helper)}
>
<span class="binding__label">{helper.name}</span>
<span class="binding__typeWrap">
<span class="binding__type">snippet</span>
</span>
</li>
{/each}
</ul>
</div>
{/if}
{/if}
{/if}
</Layout>
</div>