refactor: improve cleanup of loading timer in button component

pull/8398/head
kyvg 2025-10-29 11:12:04 +02:00
parent 35b33adb00
commit cb39758371
1 changed files with 9 additions and 4 deletions

View File

@ -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();