add: a logger utils

This commit is contained in:
Tom Boullay
2026-04-24 14:02:16 +02:00
parent 38f9f087d1
commit 8c84663472
4 changed files with 146 additions and 5 deletions
+6 -1
View File
@@ -1,3 +1,5 @@
import { logger } from "@/utils/logger";
export class AudioManager {
private static _instance: AudioManager | null = null;
private readonly _audioPools = new Map<string, HTMLAudioElement[]>();
@@ -31,7 +33,10 @@ export class AudioManager {
return;
}
console.error(`Failed to play sound: ${path}`, error);
logger.error("AudioManager", "Failed to play sound", {
path,
error,
});
});
}
+13 -4
View File
@@ -9,6 +9,10 @@ export class InteractionManager {
private _focused: InteractableHandle | null = null;
private _holding = false;
private _holdingHandle: InteractableHandle | null = null;
private _snapshot: InteractionSnapshot = {
focused: null,
holding: false,
};
private readonly _listeners = new Set<() => void>();
static getInstance(): InteractionManager {
@@ -22,10 +26,7 @@ export class InteractionManager {
private constructor() {}
getState(): InteractionSnapshot {
return {
focused: this._focused,
holding: this._holding,
};
return this._snapshot;
}
setFocused(handle: InteractableHandle | null): void {
@@ -67,11 +68,19 @@ export class InteractionManager {
this._focused = null;
this._holding = false;
this._holdingHandle = null;
this._snapshot = {
focused: null,
holding: false,
};
this._listeners.clear();
InteractionManager._instance = null;
}
private _emit(): void {
this._snapshot = {
focused: this._focused,
holding: this._holding,
};
this._listeners.forEach((cb) => cb());
}
}