Files
AFFiNE-Mirror/packages/component/src/styles/utils/localStorageThemeHelper.ts
2023-02-19 16:38:43 +08:00

16 lines
438 B
TypeScript

import { ThemeMode } from '../types';
export class LocalStorageThemeHelper {
name = 'Affine-theme-mode';
callback = new Set<() => void>();
get = (): ThemeMode | null => {
return localStorage.getItem(this.name) as ThemeMode | null;
};
set = (mode: ThemeMode) => {
localStorage.setItem(this.name, mode);
this.callback.forEach(cb => cb());
};
}
export const localStorageThemeHelper = new LocalStorageThemeHelper();