@nuxt/ui
Version:
A UI Library for Modern Web Apps, powered by Vue & Tailwind CSS.
13 lines (12 loc) • 567 B
JavaScript
import { inject, computed } from "vue";
export const portalTargetInjectionKey = Symbol("nuxt-ui.portal-target");
export function usePortal(portal) {
const globalPortal = inject(portalTargetInjectionKey, void 0);
const value = computed(() => portal.value === true ? globalPortal?.value : portal.value);
const disabled = computed(() => typeof value.value === "boolean" ? !value.value : false);
const to = computed(() => typeof value.value === "boolean" ? "body" : value.value);
return computed(() => ({
to: to.value,
disabled: disabled.value
}));
}