diff options
Diffstat (limited to 'source/js/darkmode.ts')
-rw-r--r-- | source/js/darkmode.ts | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/source/js/darkmode.ts b/source/js/darkmode.ts deleted file mode 100644 index db24d0a..0000000 --- a/source/js/darkmode.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Darkmode Listener -enum SystemDarkmodePrefrence { - dark = 0, - light = 1 -}; - -class DarkmodeListener { - private _mode: SystemDarkmodePrefrence; - private _handlers: ((mode: SystemDarkmodePrefrence)=>void)[]; - - public constructor() { - let darking = window.matchMedia('(prefers-color-scheme: dark)').matches; - this._mode = darking ? SystemDarkmodePrefrence.dark : SystemDarkmodePrefrence.light; - this._handlers = []; - this._listen(); - } - - private _listen(): void { - let media = window.matchMedia('(prefers-color-scheme: dark)'); - let callback = (event: MediaQueryListEvent) => { - let mode = event.matches ? SystemDarkmodePrefrence.dark : SystemDarkmodePrefrence.light; - this._handlers.forEach(handler => { - handler(mode); - }); - this._mode = mode; - }; - media.addEventListener("change", callback); - } - - public add(callback: (mode: SystemDarkmodePrefrence)=>void): void { - this._handlers.push(callback); - } - - public mode(): SystemDarkmodePrefrence { - return this._mode; - } -}; |