From c0830f310cf771da225b8f930965b6e7f354f1e6 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Thu, 20 Feb 2025 12:23:07 +0100 Subject: [PATCH] Add snippets to bindingPanel --- .../common/bindings/BindingPanel.svelte | 1 + .../common/bindings/BindingSidePanel.svelte | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/packages/builder/src/components/common/bindings/BindingPanel.svelte b/packages/builder/src/components/common/bindings/BindingPanel.svelte index 11037f3671..8760272043 100644 --- a/packages/builder/src/components/common/bindings/BindingPanel.svelte +++ b/packages/builder/src/components/common/bindings/BindingPanel.svelte @@ -436,6 +436,7 @@ addBinding={onSelectBinding} {addSnippet} {mode} + {snippets} /> {:else if sidePanel === SidePanel.Evaluation} 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 @@ {/if} {/if} + + {#if selectedCategory === "Snippets" || search} + {#if filteredSnippets?.length} +
+
    + {#each filteredSnippets as helper} +
  • + showHelperPopover(helper, e.currentTarget)} + on:mouseleave={hidePopover} + on:click={() => addSnippet(helper)} + > + {helper.name} + + snippet + +
  • + {/each} +
+
+ {/if} + {/if} {/if}