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