Edit snippet
This commit is contained in:
parent
323238902a
commit
eaf301f399
|
@ -7,6 +7,7 @@
|
||||||
import { BindingMode } from "@budibase/types"
|
import { BindingMode } from "@budibase/types"
|
||||||
import { EditorModes } from "../CodeEditor"
|
import { EditorModes } from "../CodeEditor"
|
||||||
import CodeEditor from "../CodeEditor/CodeEditor.svelte"
|
import CodeEditor from "../CodeEditor/CodeEditor.svelte"
|
||||||
|
import SnippetDrawer from "./SnippetDrawer.svelte"
|
||||||
|
|
||||||
export let addHelper: (_helper: Helper, _js?: boolean) => void
|
export let addHelper: (_helper: Helper, _js?: boolean) => void
|
||||||
export let addBinding: (_binding: EnrichedBinding) => void
|
export let addBinding: (_binding: EnrichedBinding) => void
|
||||||
|
@ -30,6 +31,8 @@
|
||||||
let helpers = handlebarsCompletions()
|
let helpers = handlebarsCompletions()
|
||||||
let selectedCategory: string | null
|
let selectedCategory: string | null
|
||||||
let hideTimeout: ReturnType<typeof setTimeout> | null
|
let hideTimeout: ReturnType<typeof setTimeout> | null
|
||||||
|
let snippetDrawer: SnippetDrawer
|
||||||
|
let editableSnippet: Snippet
|
||||||
|
|
||||||
$: bindingIcons = bindings?.reduce<Record<string, string>>((acc, ele) => {
|
$: bindingIcons = bindings?.reduce<Record<string, string>>((acc, ele) => {
|
||||||
if (ele.icon) {
|
if (ele.icon) {
|
||||||
|
@ -193,6 +196,13 @@
|
||||||
searching = false
|
searching = false
|
||||||
search = ""
|
search = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const editSnippet = (e: Event, snippet: Snippet) => {
|
||||||
|
e.preventDefault()
|
||||||
|
e.stopPropagation()
|
||||||
|
editableSnippet = snippet
|
||||||
|
snippetDrawer.show()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if popoverAnchor && hoverTarget}
|
{#if popoverAnchor && hoverTarget}
|
||||||
|
@ -366,18 +376,29 @@
|
||||||
{#if selectedCategory === "Snippets" || search}
|
{#if selectedCategory === "Snippets" || search}
|
||||||
{#if filteredSnippets?.length}
|
{#if filteredSnippets?.length}
|
||||||
<div class="sub-section">
|
<div class="sub-section">
|
||||||
<ul class="helpers">
|
<ul>
|
||||||
{#each filteredSnippets as snippet}
|
{#each filteredSnippets as snippet}
|
||||||
<li
|
<li
|
||||||
class="binding"
|
class="binding"
|
||||||
on:mouseenter={e =>
|
on:mouseenter={e =>
|
||||||
showSnippetPopover(snippet, e.currentTarget)}
|
showSnippetPopover(snippet, e.currentTarget)}
|
||||||
|
on:mouseleave={hidePopover}
|
||||||
on:click={() => addSnippet(snippet)}
|
on:click={() => addSnippet(snippet)}
|
||||||
>
|
>
|
||||||
<span class="binding__label">{snippet.name}</span>
|
<span class="binding__label">{snippet.name}</span>
|
||||||
|
{#if search}
|
||||||
<span class="binding__typeWrap">
|
<span class="binding__typeWrap">
|
||||||
<span class="binding__type">snippet</span>
|
<span class="binding__type">snippet</span>
|
||||||
</span>
|
</span>
|
||||||
|
{:else}
|
||||||
|
<Icon
|
||||||
|
name="Edit"
|
||||||
|
hoverable
|
||||||
|
newStyles
|
||||||
|
size="S"
|
||||||
|
on:click={e => editSnippet(e, snippet)}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
</li>
|
</li>
|
||||||
{/each}
|
{/each}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -388,6 +409,8 @@
|
||||||
</Layout>
|
</Layout>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<SnippetDrawer bind:this={snippetDrawer} snippet={editableSnippet} />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.binding-side-panel {
|
.binding-side-panel {
|
||||||
border-left: var(--border-light);
|
border-left: var(--border-light);
|
||||||
|
@ -452,6 +475,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: var(--spacing-m);
|
gap: var(--spacing-m);
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
li.binding .binding__typeWrap {
|
li.binding .binding__typeWrap {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
Loading…
Reference in New Issue