fix: clear timeout in onMount return function

This commit is contained in:
Eric Liu 2020-07-24 17:18:23 -07:00
commit fff54a19eb
3 changed files with 23 additions and 21 deletions

View file

@ -3,15 +3,17 @@
export let feedbackTimeout = 2000;
export let ref = null;
import { onDestroy } from "svelte";
import { onMount } from "svelte";
$: animation = undefined;
$: timeoutId = undefined;
$: showFeedback = timeoutId !== undefined;
let animation = undefined;
let timeout = undefined;
onDestroy(() => {
window.clearTimeout(timeoutId);
timeoutId = undefined;
$: showFeedback = timeout !== undefined;
onMount(() => {
return () => {
clearTimeout(timeout);
};
});
</script>
@ -29,7 +31,7 @@
on:click={() => {
if (animation === 'fade-in') return;
animation = 'fade-in';
timeoutId = setTimeout(() => {
timeout = setTimeout(() => {
animation = 'fade-out';
}, feedbackTimeout);
}}