diff --git a/packages/client/src/components/ui/tooltip.vue b/packages/client/src/components/ui/tooltip.vue
index 3ccd1b7316..ee1909554e 100644
--- a/packages/client/src/components/ui/tooltip.vue
+++ b/packages/client/src/components/ui/tooltip.vue
@@ -180,12 +180,12 @@ const setPosition = () => {
 	el.value.style.top = top + 'px';
 };
 
+let loopHandler;
+
 onMounted(() => {
 	nextTick(() => {
 		setPosition();
 
-		let loopHandler;
-
 		const loop = () => {
 			loopHandler = window.requestAnimationFrame(() => {
 				setPosition();
@@ -194,12 +194,12 @@ onMounted(() => {
 		};
 
 		loop();
-
-		onUnmounted(() => {
-			window.cancelAnimationFrame(loopHandler);
-		});
 	});
 });
+
+onUnmounted(() => {
+	window.cancelAnimationFrame(loopHandler);
+});
 </script>
 
 <style lang="scss" scoped>