Show popover
This commit is contained in:
parent
c0830f310c
commit
1bb9dccfa1
|
@ -21,7 +21,7 @@
|
||||||
let popover: Popover
|
let popover: Popover
|
||||||
let popoverAnchor: HTMLElement | null
|
let popoverAnchor: HTMLElement | null
|
||||||
let hoverTarget: {
|
let hoverTarget: {
|
||||||
helper: boolean
|
type: "binding" | "helper" | "snippet"
|
||||||
code: string
|
code: string
|
||||||
description?: string
|
description?: string
|
||||||
} | null
|
} | null
|
||||||
|
@ -119,26 +119,39 @@
|
||||||
stopHidingPopover()
|
stopHidingPopover()
|
||||||
popoverAnchor = target
|
popoverAnchor = target
|
||||||
hoverTarget = {
|
hoverTarget = {
|
||||||
helper: false,
|
type: "binding",
|
||||||
code: binding.valueHTML,
|
code: binding.valueHTML,
|
||||||
}
|
}
|
||||||
popover.show()
|
popover.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
const showHelperPopover = (helper: any, target: HTMLElement) => {
|
const showHelperPopover = (helper: Helper, target: HTMLElement) => {
|
||||||
stopHidingPopover()
|
stopHidingPopover()
|
||||||
if (!helper.displayText && helper.description) {
|
if (!helper.displayText && helper.description) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
popoverAnchor = target
|
popoverAnchor = target
|
||||||
hoverTarget = {
|
hoverTarget = {
|
||||||
helper: true,
|
type: "helper",
|
||||||
description: helper.description,
|
description: helper.description,
|
||||||
code: getHelperExample(helper, mode === BindingMode.JavaScript),
|
code: getHelperExample(helper, mode === BindingMode.JavaScript),
|
||||||
}
|
}
|
||||||
popover.show()
|
popover.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const showSnippetPopover = (snippet: Snippet, target: HTMLElement) => {
|
||||||
|
stopHidingPopover()
|
||||||
|
if (!snippet.code) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
popoverAnchor = target
|
||||||
|
hoverTarget = {
|
||||||
|
type: "snippet",
|
||||||
|
code: snippet.code,
|
||||||
|
}
|
||||||
|
popover.show()
|
||||||
|
}
|
||||||
|
|
||||||
const hidePopover = () => {
|
const hidePopover = () => {
|
||||||
hideTimeout = setTimeout(() => {
|
hideTimeout = setTimeout(() => {
|
||||||
popover.hide()
|
popover.hide()
|
||||||
|
@ -329,15 +342,15 @@
|
||||||
{#if filteredSnippets?.length}
|
{#if filteredSnippets?.length}
|
||||||
<div class="sub-section">
|
<div class="sub-section">
|
||||||
<ul class="helpers">
|
<ul class="helpers">
|
||||||
{#each filteredSnippets as helper}
|
{#each filteredSnippets as snippet}
|
||||||
<li
|
<li
|
||||||
class="binding"
|
class="binding"
|
||||||
on:mouseenter={e =>
|
on:mouseenter={e =>
|
||||||
showHelperPopover(helper, e.currentTarget)}
|
showSnippetPopover(snippet, e.currentTarget)}
|
||||||
on:mouseleave={hidePopover}
|
on:mouseleave={hidePopover}
|
||||||
on:click={() => addSnippet(helper)}
|
on:click={() => addSnippet(snippet)}
|
||||||
>
|
>
|
||||||
<span class="binding__label">{helper.name}</span>
|
<span class="binding__label">{snippet.name}</span>
|
||||||
<span class="binding__typeWrap">
|
<span class="binding__typeWrap">
|
||||||
<span class="binding__type">snippet</span>
|
<span class="binding__type">snippet</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
Loading…
Reference in New Issue