parent
213c3a4059
commit
9eac1a1da5
|
@ -96,6 +96,7 @@ function PickerTrigger(props: PickerTriggerProps, { slots }) {
|
||||||
default: slots.default,
|
default: slots.default,
|
||||||
popup: slots.popupElement,
|
popup: slots.popupElement,
|
||||||
}}
|
}}
|
||||||
|
tryPopPortal
|
||||||
></Trigger>
|
></Trigger>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,6 +86,8 @@ export default defineComponent({
|
||||||
autoDestroy: { type: Boolean, default: false },
|
autoDestroy: { type: Boolean, default: false },
|
||||||
mobile: Object,
|
mobile: Object,
|
||||||
getTriggerDOMNode: Function as PropType<(d?: HTMLElement) => HTMLElement>,
|
getTriggerDOMNode: Function as PropType<(d?: HTMLElement) => HTMLElement>,
|
||||||
|
// portal context will change
|
||||||
|
tryPopPortal: Boolean, // no need reactive
|
||||||
},
|
},
|
||||||
setup(props) {
|
setup(props) {
|
||||||
const align = computed(() => {
|
const align = computed(() => {
|
||||||
|
@ -95,7 +97,7 @@ export default defineComponent({
|
||||||
}
|
}
|
||||||
return popupAlign;
|
return popupAlign;
|
||||||
});
|
});
|
||||||
const { setPortal, popPortal } = useInjectTrigger();
|
const { setPortal, popPortal } = useInjectTrigger(props.tryPopPortal);
|
||||||
const popupRef = ref(null);
|
const popupRef = ref(null);
|
||||||
const setPopupRef = val => {
|
const setPopupRef = val => {
|
||||||
popupRef.value = val;
|
popupRef.value = val;
|
||||||
|
|
|
@ -18,8 +18,10 @@ export const useProviderTrigger = () => {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useInjectTrigger = () => {
|
export const useInjectTrigger = (tryPopPortal?: boolean) => {
|
||||||
return inject(TriggerContextKey, { setPortal: () => {}, popPortal: false });
|
return tryPopPortal
|
||||||
|
? inject(TriggerContextKey, { setPortal: () => {}, popPortal: false })
|
||||||
|
: { setPortal: () => {}, popPortal: false };
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface PortalContextProps {
|
export interface PortalContextProps {
|
||||||
|
|
Loading…
Reference in New Issue