mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
fix(Toast): closeOnClickOverlay not work (#8044)
* fix(Toast): closeOnClickOverlay not work * fix: demo
This commit is contained in:
parent
6a3d716f6e
commit
0f3610bafe
@ -25,6 +25,7 @@ export default createComponent({
|
|||||||
overlayClass: null,
|
overlayClass: null,
|
||||||
overlayStyle: Object,
|
overlayStyle: Object,
|
||||||
closeOnClick: Boolean,
|
closeOnClick: Boolean,
|
||||||
|
closeOnClickOverlay: Boolean,
|
||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'text',
|
default: 'text',
|
||||||
@ -63,6 +64,10 @@ export default createComponent({
|
|||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const toggle = (show) => {
|
||||||
|
emit('update:show', show);
|
||||||
|
};
|
||||||
|
|
||||||
const renderIcon = () => {
|
const renderIcon = () => {
|
||||||
const { icon, type, iconPrefix, loadingType } = props;
|
const { icon, type, iconPrefix, loadingType } = props;
|
||||||
const hasIcon = icon || type === 'success' || type === 'fail';
|
const hasIcon = icon || type === 'success' || type === 'fail';
|
||||||
@ -119,8 +124,10 @@ export default createComponent({
|
|||||||
transition={props.transition}
|
transition={props.transition}
|
||||||
overlayClass={props.overlayClass}
|
overlayClass={props.overlayClass}
|
||||||
overlayStyle={props.overlayStyle}
|
overlayStyle={props.overlayStyle}
|
||||||
|
closeOnClickOverlay={props.closeOnClickOverlay}
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
onClosed={clearTimer}
|
onClosed={clearTimer}
|
||||||
|
{...{ 'onUpdate:show': toggle }}
|
||||||
>
|
>
|
||||||
{renderIcon()}
|
{renderIcon()}
|
||||||
{renderMessage()}
|
{renderMessage()}
|
||||||
|
@ -166,23 +166,6 @@ test('should trigger onClose callback after closed', () => {
|
|||||||
Toast.allowMultiple(false);
|
Toast.allowMultiple(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('closeOnClick option', async () => {
|
|
||||||
Toast.allowMultiple();
|
|
||||||
const toast = Toast({
|
|
||||||
message: 'toast',
|
|
||||||
});
|
|
||||||
|
|
||||||
await later();
|
|
||||||
toast.$el.click();
|
|
||||||
expect(toast.value).toBeTruthy();
|
|
||||||
|
|
||||||
toast.closeOnClick = true;
|
|
||||||
toast.$el.click();
|
|
||||||
expect(toast.value).toBeFalsy();
|
|
||||||
|
|
||||||
Toast.allowMultiple(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('register component', () => {
|
test('register component', () => {
|
||||||
Vue.use(Toast);
|
Vue.use(Toast);
|
||||||
expect(Vue.component(ToastVue.name)).toBeTruthy();
|
expect(Vue.component(ToastVue.name)).toBeTruthy();
|
||||||
|
@ -15,3 +15,27 @@ test('should change overlay style after using overlay-style prop', async () => {
|
|||||||
await later();
|
await later();
|
||||||
expect(wrapper.find('.van-overlay').element.style.background).toEqual('red');
|
expect(wrapper.find('.van-overlay').element.style.background).toEqual('red');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should close Toast when using closeOnClick prop and clicked', () => {
|
||||||
|
const wrapper = mount(Toast, {
|
||||||
|
props: {
|
||||||
|
show: true,
|
||||||
|
closeOnClick: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.find('.van-toast').trigger('click');
|
||||||
|
expect(wrapper.emitted('update:show')[0][0]).toEqual(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should close Toast when using closeOnClickOverlay prop and overlay is clicked', () => {
|
||||||
|
const wrapper = mount(Toast, {
|
||||||
|
props: {
|
||||||
|
show: true,
|
||||||
|
closeOnClickOverlay: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.find('.van-overlay').trigger('click');
|
||||||
|
expect(wrapper.emitted('update:show')[0][0]).toEqual(false);
|
||||||
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user