assembly/composables/useModal.ts
Georges KABBOUCHI 0ad579c6e7 closes #10
2021-08-20 01:12:39 +03:00

41 lines
897 B
TypeScript

import { computed, ref } from "@nuxtjs/composition-api";
import NetworksMismatchDialog from "~/components/modal/NetworksMismatchDialog.vue";
const modal = ref(null);
const props = ref({});
export function useModal() {
function showNetworksMismatchDialog() {
modal.value = NetworksMismatchDialog;
}
function close() {
//@ts-ignore
if (props.value?.persistent) return;
modal.value = null;
props.value = null;
}
function closePersistent() {
modal.value = null;
props.value = null;
}
const isShown = computed(() => !!modal.value);
function showComponent(component, componentProps = {}) {
modal.value = component;
props.value = componentProps;
}
return {
showNetworksMismatchDialog,
close,
closePersistent,
isShown,
modal: computed(() => modal.value),
props: computed(() => props.value),
showComponent
};
}