Block child button onClick if container hasOnClick
This commit is contained in:
parent
e4483ff741
commit
a6108d1c8b
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
const { styleable, builderStore } = getContext("sdk")
|
const { styleable, builderStore } = getContext("sdk")
|
||||||
const component = getContext("component")
|
const component = getContext("component")
|
||||||
|
const containerClickableStore = getContext("containerClickable")
|
||||||
|
|
||||||
export let disabled = false
|
export let disabled = false
|
||||||
export let text = ""
|
export let text = ""
|
||||||
|
@ -18,6 +19,10 @@
|
||||||
|
|
||||||
let node
|
let node
|
||||||
|
|
||||||
|
containerClickableStore.subscribe(hasOnClick => {
|
||||||
|
disabled = hasOnClick
|
||||||
|
})
|
||||||
|
|
||||||
$: $component.editing && node?.focus()
|
$: $component.editing && node?.focus()
|
||||||
$: componentText = getComponentText(text, $builderStore, $component)
|
$: componentText = getComponentText(text, $builderStore, $component)
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
<script>
|
<script>
|
||||||
import { getContext } from "svelte"
|
import { getContext, setContext } from "svelte"
|
||||||
|
import { writable } from "svelte/store"
|
||||||
|
|
||||||
const { styleable } = getContext("sdk")
|
const { styleable } = getContext("sdk")
|
||||||
const component = getContext("component")
|
const component = getContext("component")
|
||||||
|
|
||||||
|
const containerClickableStore = writable(false)
|
||||||
|
setContext("containerClickable", containerClickableStore)
|
||||||
|
|
||||||
export let direction
|
export let direction
|
||||||
export let hAlign
|
export let hAlign
|
||||||
export let vAlign
|
export let vAlign
|
||||||
|
@ -24,6 +28,7 @@
|
||||||
sizeClass,
|
sizeClass,
|
||||||
gapClass,
|
gapClass,
|
||||||
].join(" ")
|
].join(" ")
|
||||||
|
$: containerClickableStore.set(!!onClick)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|
|
@ -333,6 +333,10 @@ const confirmTextMap = {
|
||||||
* A handler returning `false` is a flag to stop execution of handlers
|
* A handler returning `false` is a flag to stop execution of handlers
|
||||||
*/
|
*/
|
||||||
export const enrichButtonActions = (actions, context) => {
|
export const enrichButtonActions = (actions, context) => {
|
||||||
|
if (actions && actions.length === 0) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
// Prevent button actions in the builder preview
|
// Prevent button actions in the builder preview
|
||||||
if (!actions || get(builderStore).inBuilder) {
|
if (!actions || get(builderStore).inBuilder) {
|
||||||
return () => {}
|
return () => {}
|
||||||
|
|
Loading…
Reference in New Issue