feat(ShareSheet): add click-overlay event (#6765)

This commit is contained in:
neverland 2020-07-12 11:56:48 +08:00 committed by GitHub
parent 3748ab646c
commit 1d56e97ce3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 4 deletions

View File

@ -137,6 +137,7 @@ export default {
| --- | --- | --- |
| select | Triggered when click option | _option: Option, index: number_ |
| cancel | Triggered when click cancel button | - |
| click-overlay `v2.9.1` | Triggered when click overlay | - |
### Slots

View File

@ -181,10 +181,11 @@ export default {
### Events
| 事件名 | 说明 | 回调参数 |
| ------ | ------------------ | ------------------------------- |
| 事件名 | 说明 | 回调参数 |
| --- | --- | --- |
| select | 点击分享选项时触发 | _option: Option, index: number_ |
| cancel | 点击取消按钮时触发 | - |
| cancel | 点击取消按钮时触发 | - |
| click-overlay `v2.9.1` | 点击遮罩层时触发 | - |
### Slots

View File

@ -122,6 +122,10 @@ export default createComponent({
);
}
},
onClickOverlay() {
this.$emit('click-overlay');
},
},
render() {
@ -140,6 +144,7 @@ export default createComponent({
closeOnClickOverlay={this.closeOnClickOverlay}
safeAreaInsetBottom={this.safeAreaInsetBottom}
onInput={this.toggle}
onClick-overlay={this.onClickOverlay}
>
{this.genHeader()}
{this.genRows()}

View File

@ -1,5 +1,5 @@
import ShareSheet from '..';
import { mount } from '../../../test';
import { mount, trigger, later } from '../../../test';
test('cancel-text prop', () => {
const wrapper = mount(ShareSheet, {
@ -70,3 +70,19 @@ test('title & description slot', () => {
expect(wrapper).toMatchSnapshot();
});
test('click-overlay event', async () => {
const root = document.createElement('div');
const wrapper = mount(ShareSheet, {
propsData: {
value: true,
getContainer: () => root,
},
});
await later();
const overlay = root.querySelector('.van-overlay');
trigger(overlay, 'click');
expect(wrapper.emitted('click-overlay')).toBeTruthy();
});