refactor: improve cleanup of loading timer in button component

pull/8397/head
kyvg 2025-10-29 11:06:17 +02:00
parent bbb7670df1
commit e38c754e71
1 changed files with 9 additions and 4 deletions

View File

@ -69,7 +69,7 @@ export default defineComponent({
watch(
loadingOrDelay,
val => {
clearTimeout(delayTimeoutRef.value);
cleanupTimer()
if (typeof loadingOrDelay.value === 'number') {
delayTimeoutRef.value = setTimeout(() => {
innerLoading.value = val;
@ -149,6 +149,13 @@ export default defineComponent({
return child;
};
const cleanupTimer = () => {
if (delayTimeoutRef.value) {
clearTimeout(delayTimeoutRef.value);
delayTimeoutRef.value = undefined;
}
}
watchEffect(() => {
devWarning(
!(props.ghost && isUnBorderedButtonType(props.type)),
@ -160,9 +167,7 @@ export default defineComponent({
onMounted(fixTwoCNChar);
onUpdated(fixTwoCNChar);
onBeforeUnmount(() => {
delayTimeoutRef.value && clearTimeout(delayTimeoutRef.value);
});
onBeforeUnmount(cleanupTimer);
const focus = () => {
buttonNodeRef.value?.focus();