@@ -3,13 +3,16 @@ import {CONFIRM_TYPES, DIRECTIVE_ATTRIBUTE_KEY} from './constants'
3
3
4
4
5
5
const DirectiveDialog = function ( app ) {
6
+ this . shouldIgnoreClick = false
7
+ this . bindingOptions = {
8
+
9
+ }
10
+
6
11
Object . defineProperties ( this , {
7
12
app : { get : ( ) => app } ,
8
13
} )
9
14
}
10
15
11
- DirectiveDialog . prototype . shouldIgnoreClick = false
12
-
13
16
DirectiveDialog . prototype . getConfirmMessage = function ( binding ) {
14
17
if ( binding . value && binding . value . message ) {
15
18
return binding . value . message
@@ -70,15 +73,20 @@ DirectiveDialog.prototype.clickHandler = function (event, el, binding) {
70
73
71
74
DirectiveDialog . prototype . defineConfirm = function ( ) {
72
75
type BindFn = ( el : unknown , binding : unknown ) => void
73
- const DirectiveDefinition : { mounted : BindFn , unmounted : BindFn } = {
76
+ type UpdateFn = ( el : unknown , binding : unknown , vnode : unknown , prevVnode : unknown ) => void
77
+ const DirectiveDefinition : { mounted : BindFn , unmounted : BindFn , updated : UpdateFn } = {
74
78
mounted : ( el , binding ) => {
75
79
el [ DIRECTIVE_ATTRIBUTE_KEY ] = el [ DIRECTIVE_ATTRIBUTE_KEY ] || { }
76
-
77
80
el [ DIRECTIVE_ATTRIBUTE_KEY ] . clickHandler = event => this . clickHandler ( event , el , binding )
78
81
79
82
el . addEventListener ( 'click' , el [ DIRECTIVE_ATTRIBUTE_KEY ] . clickHandler , true )
80
83
} ,
81
- unmounted ( el ) {
84
+ updated : ( el , binding , vnode , prevVnode ) => {
85
+ el . removeEventListener ( 'click' , el [ DIRECTIVE_ATTRIBUTE_KEY ] . clickHandler , true )
86
+ el [ DIRECTIVE_ATTRIBUTE_KEY ] . clickHandler = event => this . clickHandler ( event , el , binding )
87
+ el . addEventListener ( 'click' , el [ DIRECTIVE_ATTRIBUTE_KEY ] . clickHandler , true )
88
+ } ,
89
+ unmounted : ( el ) => {
82
90
el . removeEventListener ( 'click' , el [ DIRECTIVE_ATTRIBUTE_KEY ] . clickHandler , true )
83
91
delete el [ DIRECTIVE_ATTRIBUTE_KEY ]
84
92
}
0 commit comments