fix(vue): overlays function properly when used via controller or template (#22155)

resolves #22090
This commit is contained in:
Liam DeBeasi
2020-09-24 11:18:28 -04:00
committed by GitHub
parent b76bfa36c2
commit fe5fadf19c
14 changed files with 343 additions and 1065 deletions

View File

@ -0,0 +1,21 @@
import { createVNode, render } from 'vue';
export const VueDelegate = () => {
const attachViewToDom = (parentElement: HTMLElement, component: any, _: any, classes?: string[]) => {
const vueInstance = createVNode(component);
const div = document.createElement('div');
classes && div.classList.add(...classes);
parentElement.appendChild(div);
render(vueInstance, div);
}
const removeViewFromDom = (_: HTMLElement, childElement: any) => {
render(null, childElement);
return Promise.resolve();
}
return { attachViewToDom, removeViewFromDom }
}