From 070adbecfcee7b36315d901dec272dc2263f7b9e Mon Sep 17 00:00:00 2001 From: inottn Date: Sat, 12 Apr 2025 16:07:58 +0800 Subject: [PATCH] fix(Overlay): should inherit attrs when using teleport prop (#13424) --- .../test/__snapshots__/demo.spec.ts.snap | 12 ---- .../test/__snapshots__/index.spec.ts.snap | 8 ++- .../test/__snapshots__/demo.spec.ts.snap | 4 -- .../test/__snapshots__/index.spec.ts.snap | 6 +- .../test/__snapshots__/demo.spec.ts.snap | 4 -- .../test/__snapshots__/demo.spec.ts.snap | 30 --------- .../test/__snapshots__/index.spec.tsx.snap | 66 ++++++------------- .../test/__snapshots__/index.spec.ts.snap | 18 ++--- packages/vant/src/overlay/Overlay.tsx | 5 +- packages/vant/src/overlay/test/index.spec.tsx | 16 +++++ .../test/__snapshots__/demo.spec.ts.snap | 2 - .../test/__snapshots__/demo.spec.ts.snap | 24 ------- .../test/__snapshots__/index.spec.jsx.snap | 16 +++-- .../test/__snapshots__/demo.spec.ts.snap | 8 --- .../test/__snapshots__/index.spec.ts.snap | 8 ++- 15 files changed, 73 insertions(+), 154 deletions(-) diff --git a/packages/vant/src/action-sheet/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/action-sheet/test/__snapshots__/demo.spec.ts.snap index 5a63d7c21..0315a93c2 100644 --- a/packages/vant/src/action-sheet/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/action-sheet/test/__snapshots__/demo.spec.ts.snap @@ -90,8 +90,6 @@ exports[`should render demo and match snapshot 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > -
+
+" @@ -282,12 +282,12 @@ exports[`popup wrapper 2`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
diff --git a/packages/vant/src/coupon-list/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/coupon-list/test/__snapshots__/demo.spec.ts.snap index c5c800cd2..a4370cbb2 100644 --- a/packages/vant/src/coupon-list/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/coupon-list/test/__snapshots__/demo.spec.ts.snap @@ -25,8 +25,6 @@ exports[`should render demo and match snapshot 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
@@ -102,8 +102,6 @@ exports[`click option 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > @@ -219,8 +217,6 @@ exports[`close-on-click-outside 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
@@ -452,8 +442,6 @@ exports[`direction up 2`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
@@ -569,8 +557,6 @@ exports[`disable close-on-click-outside 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
@@ -730,8 +714,6 @@ exports[`render option icon 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
@@ -847,8 +829,6 @@ exports[`show dropdown item 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > @@ -964,12 +944,12 @@ exports[`show dropdown item 2`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
@@ -1060,12 +1040,12 @@ exports[`show dropdown item 3`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > @@ -1123,12 +1103,12 @@ exports[`show dropdown item 3`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > @@ -1219,8 +1199,6 @@ exports[`title prop 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > -
+
-
+
; export default defineComponent({ name, + inheritAttrs: false, + props: overlayProps, - setup(props, { slots }) { + setup(props, { attrs, slots }) { const root = ref(); const lazyRender = useLazyRender(() => props.show || !props.lazyRender); @@ -71,6 +73,7 @@ export default defineComponent({ ref={root} style={style} class={[bem(), props.className]} + {...attrs} > {slots.default?.()}
diff --git a/packages/vant/src/overlay/test/index.spec.tsx b/packages/vant/src/overlay/test/index.spec.tsx index 597011c88..8cf082c88 100644 --- a/packages/vant/src/overlay/test/index.spec.tsx +++ b/packages/vant/src/overlay/test/index.spec.tsx @@ -116,3 +116,19 @@ test('should allow to use the teleport prop', () => { expect(root.querySelector('.van-overlay')).toBeTruthy(); }); + +test('should inherit attrs when using teleport prop', async () => { + const root = document.createElement('div'); + mount(Overlay, { + props: { + show: true, + teleport: root, + }, + attrs: { + class: 'foo', + }, + }); + + const overlay = root.querySelector('.van-overlay'); + expect(overlay?.classList.contains('foo')).toBeTruthy(); +}); diff --git a/packages/vant/src/picker/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/picker/test/__snapshots__/demo.spec.ts.snap index ef20ffa4b..4d035071e 100644 --- a/packages/vant/src/picker/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/picker/test/__snapshots__/demo.spec.ts.snap @@ -130,8 +130,6 @@ exports[`should render demo and match snapshot 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" >
-
+
-
+
Custom Overlay Content
diff --git a/packages/vant/src/share-sheet/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/share-sheet/test/__snapshots__/demo.spec.ts.snap index d77c0d6a0..b427e7ac9 100644 --- a/packages/vant/src/share-sheet/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/share-sheet/test/__snapshots__/demo.spec.ts.snap @@ -20,8 +20,6 @@ exports[`should render demo and match snapshot 1`] = ` appear="true" persisted="false" css="true" - role="button" - tabindex="0" > -
+