52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
import { Component, triggerEventOnly, getValueFromProps, } from '../_util/simply';
|
|
import { ToastDefaultProps } from './props';
|
|
Component(ToastDefaultProps, {
|
|
closeMask: function () {
|
|
if (this.timer) {
|
|
clearTimeout(this.timer);
|
|
}
|
|
this.setData({ show: false });
|
|
this.timer = null;
|
|
triggerEventOnly(this, 'close');
|
|
},
|
|
handleShowToast: function () {
|
|
var _this = this;
|
|
this.setData({ show: true });
|
|
var duration = getValueFromProps(this, 'duration');
|
|
if (duration > 0) {
|
|
var timer = setTimeout(function () {
|
|
_this.closeMask();
|
|
}, duration);
|
|
this.timer = timer;
|
|
}
|
|
},
|
|
handleClickMask: function () {
|
|
var _a = getValueFromProps(this, [
|
|
'showMask',
|
|
'maskCloseable',
|
|
]), showMask = _a[0], maskCloseable = _a[1];
|
|
if (showMask && maskCloseable) {
|
|
this.closeMask();
|
|
}
|
|
},
|
|
}, {
|
|
show: false,
|
|
}, undefined, {
|
|
timer: null,
|
|
didUpdate: function (prev) {
|
|
var visible = getValueFromProps(this, 'visible');
|
|
if (!prev.visible && visible) {
|
|
this.handleShowToast();
|
|
}
|
|
else if (!visible && this.data.show) {
|
|
this.closeMask();
|
|
}
|
|
},
|
|
didMount: function () {
|
|
var visible = getValueFromProps(this, 'visible');
|
|
if (visible) {
|
|
this.handleShowToast();
|
|
}
|
|
},
|
|
});
|