mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-06 03:34:40 +00:00
30 lines
717 B
TypeScript
30 lines
717 B
TypeScript
type ThemeUpdateCallback = () => void;
|
|
|
|
class ThemeUpdates {
|
|
private static instance: ThemeUpdates;
|
|
private listeners: Set<ThemeUpdateCallback> = new Set();
|
|
|
|
private constructor() {}
|
|
|
|
public static getInstance(): ThemeUpdates {
|
|
if (!ThemeUpdates.instance) {
|
|
ThemeUpdates.instance = new ThemeUpdates();
|
|
}
|
|
return ThemeUpdates.instance;
|
|
}
|
|
|
|
public addListener(callback: ThemeUpdateCallback): void {
|
|
this.listeners.add(callback);
|
|
}
|
|
|
|
public removeListener(callback: ThemeUpdateCallback): void {
|
|
this.listeners.delete(callback);
|
|
}
|
|
|
|
public triggerUpdate(): void {
|
|
this.listeners.forEach(callback => callback());
|
|
}
|
|
}
|
|
|
|
export const themeUpdates = ThemeUpdates.getInstance();
|