refactor: improve cleanup of loading timer in button component
parent
35b33adb00
commit
cb39758371
|
|
@ -62,7 +62,7 @@ export default defineComponent({
|
||||||
watch(
|
watch(
|
||||||
loadingOrDelay,
|
loadingOrDelay,
|
||||||
val => {
|
val => {
|
||||||
clearTimeout(delayTimeoutRef.value);
|
cleanupTimer()
|
||||||
if (typeof loadingOrDelay.value === 'number') {
|
if (typeof loadingOrDelay.value === 'number') {
|
||||||
delayTimeoutRef.value = setTimeout(() => {
|
delayTimeoutRef.value = setTimeout(() => {
|
||||||
innerLoading.value = val;
|
innerLoading.value = val;
|
||||||
|
|
@ -135,6 +135,13 @@ export default defineComponent({
|
||||||
return child;
|
return child;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const cleanupTimer = () => {
|
||||||
|
if (delayTimeoutRef.value) {
|
||||||
|
clearTimeout(delayTimeoutRef.value);
|
||||||
|
delayTimeoutRef.value = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
devWarning(
|
devWarning(
|
||||||
!(props.ghost && isUnborderedButtonType(props.type)),
|
!(props.ghost && isUnborderedButtonType(props.type)),
|
||||||
|
|
@ -146,9 +153,7 @@ export default defineComponent({
|
||||||
onMounted(fixTwoCNChar);
|
onMounted(fixTwoCNChar);
|
||||||
onUpdated(fixTwoCNChar);
|
onUpdated(fixTwoCNChar);
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(cleanupTimer);
|
||||||
delayTimeoutRef.value && clearTimeout(delayTimeoutRef.value);
|
|
||||||
});
|
|
||||||
|
|
||||||
const focus = () => {
|
const focus = () => {
|
||||||
buttonNodeRef.value?.focus();
|
buttonNodeRef.value?.focus();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue