diff --git a/src/components/renderer/form-nested-screen.vue b/src/components/renderer/form-nested-screen.vue index 4c7ca872..fbe92a2d 100644 --- a/src/components/renderer/form-nested-screen.vue +++ b/src/components/renderer/form-nested-screen.vue @@ -72,6 +72,17 @@ export default { }, }, methods: { + isInScreenBuilder() { + let parent = this.$parent; + while (parent) { + const { _componentTag: tag, name } = parent.$options; + if (tag === 'vue-form-builder' || tag === 'VueFormBuilder' || name === 'VueFormBuilder') { + return true; + } + parent = parent.$parent; + } + return false; + }, isSubmitButton(item) { return item.config && item.component === 'FormButton' && item.config.event === 'submit'; }, @@ -130,7 +141,7 @@ export default { this.hideSubmitButtons(this.config); this.computed = response.data.computed; this.customCSS = response.data.custom_css; - this.watchers = response.data.watchers; + this.watchers = this.isInScreenBuilder() ? [] : response.data.watchers; this.screenTitle = response.data.title; if (this.$attrs['disabled']) { diff --git a/src/components/vue-form-builder.vue b/src/components/vue-form-builder.vue index 1f616fb1..b959d8ca 100644 --- a/src/components/vue-form-builder.vue +++ b/src/components/vue-form-builder.vue @@ -615,6 +615,7 @@ const defaultGroupOrder = { const DEFAULT_GROUP = "Advanced"; export default { + name: 'VueFormBuilder', components: { TabsBar, draggable, diff --git a/tests/unit/FormNestedScreen.spec.js b/tests/unit/FormNestedScreen.spec.js new file mode 100644 index 00000000..cab3a9fb --- /dev/null +++ b/tests/unit/FormNestedScreen.spec.js @@ -0,0 +1,173 @@ +const fs = require('fs'); +const path = require('path'); +const vm = require('vm'); + +const componentPath = path.join( + process.cwd(), + 'src/components/renderer/form-nested-screen.vue', +); + +const source = fs.readFileSync(componentPath, 'utf8'); + +function getComponentOptions() { + const scriptMatch = source.match(/