Skip to content

Commit 56ddd44

Browse files
committed
various model-toggle components fixes
1 parent e0b8ceb commit 56ddd44

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

src/components/fab/QFab.vue

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ export default {
3535
QBtn,
3636
QIcon
3737
},
38+
provide () {
39+
return {
40+
__qFabClose: this.hide
41+
}
42+
},
3843
props: {
3944
icon: {
4045
type: String,
@@ -49,9 +54,9 @@ export default {
4954
default: 'right'
5055
}
5156
},
52-
provide () {
53-
return {
54-
__qFabClose: this.hide
57+
watch: {
58+
$route () {
59+
this.hide()
5560
}
5661
},
5762
created () {

src/components/layout/QLayoutDrawer.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ export default {
276276
})
277277
},
278278
beforeDestroy () {
279+
clearTimeout(this.timer)
279280
this.__update('size', 0)
280281
this.__update('space', false)
281282
},
@@ -342,7 +343,8 @@ export default {
342343
document.body.classList.add(bodyClass)
343344
}
344345

345-
setTimeout(() => {
346+
clearTimeout(this.timer)
347+
this.timer = setTimeout(() => {
346348
this.showPromise && this.showPromiseResolve()
347349
}, duration)
348350
},
@@ -353,7 +355,8 @@ export default {
353355
this.percentage = 0
354356
document.body.classList.remove(bodyClass)
355357

356-
setTimeout(() => {
358+
clearTimeout(this.timer)
359+
this.timer = setTimeout(() => {
357360
this.hidePromise && this.hidePromiseResolve()
358361
}, duration)
359362
},

src/components/tooltip/QTooltip.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ export default {
5454
},
5555
methods: {
5656
__show () {
57+
console.log('TOOLTIP show')
58+
clearTimeout(this.timer)
59+
5760
document.body.appendChild(this.$el)
5861
this.scrollTarget = getScrollTarget(this.anchorEl)
5962
this.scrollTarget.addEventListener('scroll', this.hide)
@@ -66,6 +69,7 @@ export default {
6669
this.showPromise && this.showPromiseResolve()
6770
},
6871
__hide () {
72+
console.log('TOOLTIP hide')
6973
clearTimeout(this.timer)
7074

7175
this.scrollTarget.removeEventListener('scroll', this.hide)
@@ -88,8 +92,13 @@ export default {
8892
})
8993
},
9094
__delayShow () {
95+
console.log('TOOLTIP delaying')
9196
clearTimeout(this.timer)
9297
this.timer = setTimeout(this.show, this.delay)
98+
},
99+
__delayHide () {
100+
clearTimeout(this.timer)
101+
this.hide()
93102
}
94103
},
95104
render (h) {
@@ -123,8 +132,8 @@ export default {
123132
else {
124133
this.anchorEl.addEventListener('mouseenter', this.__delayShow)
125134
this.anchorEl.addEventListener('focus', this.__delayShow)
126-
this.anchorEl.addEventListener('mouseleave', this.hide)
127-
this.anchorEl.addEventListener('blur', this.hide)
135+
this.anchorEl.addEventListener('mouseleave', this.__delayHide)
136+
this.anchorEl.addEventListener('blur', this.__delayHide)
128137
}
129138

130139
if (this.value) {
@@ -133,6 +142,7 @@ export default {
133142
})
134143
},
135144
beforeDestroy () {
145+
clearTimeout(this.timer)
136146
if (!this.anchorEl) {
137147
return
138148
}
@@ -142,8 +152,8 @@ export default {
142152
else {
143153
this.anchorEl.removeEventListener('mouseenter', this.__delayShow)
144154
this.anchorEl.removeEventListener('focus', this.__delayShow)
145-
this.anchorEl.removeEventListener('mouseleave', this.hide)
146-
this.anchorEl.removeEventListener('blur', this.hide)
155+
this.anchorEl.removeEventListener('mouseleave', this.__delayHide)
156+
this.anchorEl.removeEventListener('blur', this.__delayHide)
147157
}
148158
}
149159
}

0 commit comments

Comments
 (0)