fix: 嵌套弹窗,错误 merge options (#7126)
This commit is contained in:
@@ -41,6 +41,7 @@ export function useVbenModal<TParentModalProps extends ModalProps = ModalProps>(
|
|||||||
// 不能用 Object.assign,会丢失 api 的原型函数
|
// 不能用 Object.assign,会丢失 api 的原型函数
|
||||||
Object.setPrototypeOf(extendedApi, api);
|
Object.setPrototypeOf(extendedApi, api);
|
||||||
},
|
},
|
||||||
|
consumed: false,
|
||||||
options,
|
options,
|
||||||
async reCreateModal() {
|
async reCreateModal() {
|
||||||
isModalReady.value = false;
|
isModalReady.value = false;
|
||||||
@@ -73,7 +74,13 @@ export function useVbenModal<TParentModalProps extends ModalProps = ModalProps>(
|
|||||||
return [Modal, extendedApi as ExtendedModalApi] as const;
|
return [Modal, extendedApi as ExtendedModalApi] as const;
|
||||||
}
|
}
|
||||||
|
|
||||||
const injectData = inject<any>(USER_MODAL_INJECT_KEY, {});
|
let injectData = inject<any>(USER_MODAL_INJECT_KEY, {});
|
||||||
|
// 这个数据已经被使用了,说明这个弹窗是嵌套的弹窗,不应该merge上层的配置
|
||||||
|
if (injectData.consumed) {
|
||||||
|
injectData = {};
|
||||||
|
} else {
|
||||||
|
injectData.consumed = true;
|
||||||
|
}
|
||||||
|
|
||||||
const mergedOptions = {
|
const mergedOptions = {
|
||||||
...DEFAULT_MODAL_PROPS,
|
...DEFAULT_MODAL_PROPS,
|
||||||
|
|||||||
Reference in New Issue
Block a user