Remove boilerplate around dispatcher and settings watchers (#28338)
* Remove boilerplate around dispatcher and settings watchers Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
parent
b8fd98ab3c
commit
2d9982f9f0
36 changed files with 81 additions and 111 deletions
|
@ -192,10 +192,11 @@ export default class SettingsStore {
|
|||
/**
|
||||
* Stops the SettingsStore from watching a setting. This is a no-op if the watcher
|
||||
* provided is not found.
|
||||
* @param {string} watcherReference The watcher reference (received from #watchSetting)
|
||||
* to cancel.
|
||||
* @param watcherReference The watcher reference (received from #watchSetting) to cancel.
|
||||
* Can be undefined to avoid needing an if around every caller.
|
||||
*/
|
||||
public static unwatchSetting(watcherReference: string): void {
|
||||
public static unwatchSetting(watcherReference: string | undefined): void {
|
||||
if (!watcherReference) return;
|
||||
if (!SettingsStore.watchers.has(watcherReference)) {
|
||||
logger.warn(`Ending non-existent watcher ID ${watcherReference}`);
|
||||
return;
|
||||
|
|
|
@ -28,11 +28,7 @@ export class FontWatcher implements IWatcher {
|
|||
*/
|
||||
public static readonly DEFAULT_DELTA = 0;
|
||||
|
||||
private dispatcherRef: string | null;
|
||||
|
||||
public constructor() {
|
||||
this.dispatcherRef = null;
|
||||
}
|
||||
private dispatcherRef?: string;
|
||||
|
||||
public async start(): Promise<void> {
|
||||
this.updateFont();
|
||||
|
@ -148,7 +144,6 @@ export class FontWatcher implements IWatcher {
|
|||
}
|
||||
|
||||
public stop(): void {
|
||||
if (!this.dispatcherRef) return;
|
||||
dis.unregister(this.dispatcherRef);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,9 +18,9 @@ import { ActionPayload } from "../../dispatcher/payloads";
|
|||
import { SettingLevel } from "../SettingLevel";
|
||||
|
||||
export default class ThemeWatcher {
|
||||
private themeWatchRef: string | null;
|
||||
private systemThemeWatchRef: string | null;
|
||||
private dispatcherRef: string | null;
|
||||
private themeWatchRef?: string;
|
||||
private systemThemeWatchRef?: string;
|
||||
private dispatcherRef?: string;
|
||||
|
||||
private preferDark: MediaQueryList;
|
||||
private preferLight: MediaQueryList;
|
||||
|
@ -29,10 +29,6 @@ export default class ThemeWatcher {
|
|||
private currentTheme: string;
|
||||
|
||||
public constructor() {
|
||||
this.themeWatchRef = null;
|
||||
this.systemThemeWatchRef = null;
|
||||
this.dispatcherRef = null;
|
||||
|
||||
// we have both here as each may either match or not match, so by having both
|
||||
// we can get the tristate of dark/light/unsupported
|
||||
this.preferDark = (<any>global).matchMedia("(prefers-color-scheme: dark)");
|
||||
|
@ -55,9 +51,9 @@ export default class ThemeWatcher {
|
|||
this.preferDark.removeEventListener("change", this.onChange);
|
||||
this.preferLight.removeEventListener("change", this.onChange);
|
||||
this.preferHighContrast.removeEventListener("change", this.onChange);
|
||||
if (this.systemThemeWatchRef) SettingsStore.unwatchSetting(this.systemThemeWatchRef);
|
||||
if (this.themeWatchRef) SettingsStore.unwatchSetting(this.themeWatchRef);
|
||||
if (this.dispatcherRef) dis.unregister(this.dispatcherRef);
|
||||
SettingsStore.unwatchSetting(this.systemThemeWatchRef);
|
||||
SettingsStore.unwatchSetting(this.themeWatchRef);
|
||||
dis.unregister(this.dispatcherRef);
|
||||
}
|
||||
|
||||
private onChange = (): void => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue