vue-mf-module
Version:
A vue extension to create microfrontend module
38 lines (29 loc) • 896 B
text/typescript
import { Component, computed, defineComponent, getCurrentInstance, onMounted, Ref, ref } from "vue";
import { IProjectableModel, Projector } from "../helpers/Projector";
export default defineComponent({
name: "screen",
props: {
name: { type: String, default: "defaultscreen" },
},
setup(props, { expose }) {
const me = getCurrentInstance();
const currentView: Ref<Component> = ref(null!);
const model: Ref<IProjectableModel<any> | null> = ref(null!);
expose({ currentView, model })
const isVisible = computed(() => {
return currentView.value != null;
})
const currentViewUID = computed(() => {
return (currentView.value as any)?.__file
})
onMounted(() => {
Projector.Instance.setScreen((me as any).proxy, props.name);
})
return {
currentViewUID,
currentView,
model,
isVisible
}
},
})