From e564dab214b0f821bb0ec1417e05a40fab7d7e28 Mon Sep 17 00:00:00 2001 From: Lautaro Petaccio Date: Fri, 22 Mar 2024 11:59:14 -0300 Subject: [PATCH] fix: Use mitt to handle events --- package-lock.json | 26 +++++++++++--------------- package.json | 6 ++---- src/lib/babylon/emote.ts | 14 +++++++------- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63dd96d..1bcc8dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "decentraland-ui": "^3.49.0", "deep-equal": "^2.0.5", "fp-future": "^1.0.1", + "mitt": "^3.0.1", "prettier": "^2.4.1", "raw-loader": "^4.0.2", "react": "^17.0.2", @@ -35,9 +36,6 @@ "typescript": "^4.4.4", "web-vitals": "^1.1.2" }, - "devDependencies": { - "@foxify/events": "^2.1.0" - }, "engines": { "node": "18" } @@ -2078,12 +2076,6 @@ "react-dom": "^16.8.0 || ^17" } }, - "node_modules/@foxify/events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@foxify/events/-/events-2.1.0.tgz", - "integrity": "sha512-aMLFeeQgzAH/ft9VNGwQasr2lAXLIxk1VAYIUDM9G8HQX0yow6b7z/wm42e4s6JHU8zGu940sLj5FeglkFnEFQ==", - "dev": true - }, "node_modules/@gar/promisify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", @@ -13846,6 +13838,11 @@ "node": ">=4.0.0" } }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -23353,12 +23350,6 @@ "react-is": "^16.6.3" } }, - "@foxify/events": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@foxify/events/-/events-2.1.0.tgz", - "integrity": "sha512-aMLFeeQgzAH/ft9VNGwQasr2lAXLIxk1VAYIUDM9G8HQX0yow6b7z/wm42e4s6JHU8zGu940sLj5FeglkFnEFQ==", - "dev": true - }, "@gar/promisify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", @@ -32340,6 +32331,11 @@ "through2": "^2.0.0" } }, + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", diff --git a/package.json b/package.json index f6be7b7..9f3c5b5 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "decentraland-ui": "^3.49.0", "deep-equal": "^2.0.5", "fp-future": "^1.0.1", + "mitt": "^3.0.1", "prettier": "^2.4.1", "raw-loader": "^4.0.2", "react": "^17.0.2", @@ -65,8 +66,5 @@ "singleQuote": true, "printWidth": 120 }, - "homepage": "", - "devDependencies": { - "@foxify/events": "^2.1.0" - } + "homepage": "" } diff --git a/src/lib/babylon/emote.ts b/src/lib/babylon/emote.ts index 6745a0c..4bd3ddb 100644 --- a/src/lib/babylon/emote.ts +++ b/src/lib/babylon/emote.ts @@ -1,4 +1,4 @@ -import EventEmitter from '@foxify/events' +import mitt from 'mitt' import { AnimationGroup, ArcRotateCamera, @@ -247,14 +247,14 @@ function createController(animationGroup: AnimationGroup, loop: boolean, sound: // Temporary typed events. type Events = { - [PreviewEmoteEventType.ANIMATION_PLAY]: () => unknown - [PreviewEmoteEventType.ANIMATION_PAUSE]: () => unknown - [PreviewEmoteEventType.ANIMATION_LOOP]: () => unknown - [PreviewEmoteEventType.ANIMATION_END]: () => unknown - [PreviewEmoteEventType.ANIMATION_PLAYING]: ({ length }: { length: number }) => unknown + [PreviewEmoteEventType.ANIMATION_PLAY]: void + [PreviewEmoteEventType.ANIMATION_PAUSE]: void + [PreviewEmoteEventType.ANIMATION_LOOP]: void + [PreviewEmoteEventType.ANIMATION_END]: void + [PreviewEmoteEventType.ANIMATION_PLAYING]: { length: number } } - const events = new EventEmitter() + const events = mitt() // Emit the PreviewEmoteEventType.ANIMATION_PLAYING event with the current playing frame const emitPlayingEvent = () => {