refactor: improve cleanup of loading timer in button component
parent
bbb7670df1
commit
e38c754e71
|
|
@ -69,7 +69,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;
|
||||||
|
|
@ -149,6 +149,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)),
|
||||||
|
|
@ -160,9 +167,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