diff options
Diffstat (limited to 'app/assets/javascripts/vue_shared/new_namespace/components/legacy_container.vue')
-rw-r--r-- | app/assets/javascripts/vue_shared/new_namespace/components/legacy_container.vue | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/assets/javascripts/vue_shared/new_namespace/components/legacy_container.vue b/app/assets/javascripts/vue_shared/new_namespace/components/legacy_container.vue new file mode 100644 index 00000000000..d2fc2c66924 --- /dev/null +++ b/app/assets/javascripts/vue_shared/new_namespace/components/legacy_container.vue @@ -0,0 +1,31 @@ +<script> +export default { + inheritAttrs: false, + props: { + selector: { + type: String, + required: true, + }, + }, + mounted() { + const legacyEntry = document.querySelector(this.selector); + if (legacyEntry.tagName === 'TEMPLATE') { + this.$el.innerHTML = legacyEntry.innerHTML; + } else { + this.source = legacyEntry.parentNode; + this.$el.appendChild(legacyEntry); + legacyEntry.classList.add('active'); + } + }, + + beforeDestroy() { + if (this.source) { + this.$el.firstChild.classList.remove('active'); + this.source.appendChild(this.$el.firstChild); + } + }, +}; +</script> +<template> + <div></div> +</template> |