From 930041b5e67b77a4cd758f7978a2f39501aaac29 Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Tue, 30 Jun 2026 18:22:05 +0300 Subject: [PATCH] fix(monkey): monkey state leaks to next test --- frontend/src/ts/test/monkey.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/src/ts/test/monkey.ts b/frontend/src/ts/test/monkey.ts index bd9af20b4173..c0f2f59167e4 100644 --- a/frontend/src/ts/test/monkey.ts +++ b/frontend/src/ts/test/monkey.ts @@ -5,10 +5,13 @@ import * as TestState from "../test/test-state"; import * as KeyConverter from "../utils/key-converter"; import { qs } from "../utils/dom"; import { Keycode } from "../constants/keys"; +import { JSAnimation } from "animejs"; const monkeyEl = qs("#monkey"); const monkeyFastEl = qs("#monkey .fast"); +let monkeyFastOpacityAnimation: JSAnimation | undefined; + configEvent.subscribe(({ key }) => { if (key === "monkey" && TestState.isActive) { if (Config.monkey) { @@ -51,7 +54,7 @@ function update(): void { export function updateFastOpacity(num: number): void { if (!Config.monkey) return; const opacity = mapRange(num, 130, 180, 0, 1); - monkeyFastEl?.animate({ + monkeyFastOpacityAnimation = monkeyFastEl?.animate({ opacity: opacity, duration: 1000, }); @@ -141,6 +144,7 @@ export function hide(): void { onComplete: () => { monkeyEl?.hide(); monkeyEl?.setStyle({ animationDuration: "0s" }); + monkeyFastOpacityAnimation?.cancel(); monkeyFastEl?.setStyle({ opacity: "0" }); }, }); @@ -150,5 +154,6 @@ export function instantHide(): void { monkeyEl?.hide(); monkeyEl?.setStyle({ opacity: "0" }); monkeyEl?.setStyle({ animationDuration: "0s" }); + monkeyFastOpacityAnimation?.cancel(); monkeyFastEl?.setStyle({ opacity: "0" }); }