valor-software/ng2-bootstrap

View on GitHub
demo/src/app/theme/theme-storage.ts

Summary

Maintainability
A
0 mins
Test Coverage
// Copyright (c) 2017 Google, Inc.
import { EventEmitter, Injectable } from '@angular/core';

@Injectable()
export class ThemeStorage {
  static storageKey = 'bs-theme-storage-current';

  onThemeUpdate: EventEmitter<string> = new EventEmitter<string>();

  storeTheme(theme: 'bs3' | 'bs4') {
    try {
      window.localStorage[ThemeStorage.storageKey] = theme;
    } catch (e) {}
    this.onThemeUpdate.emit(theme);
  }

  getStoredTheme(): 'bs3' | 'bs4' {
    try {
      return window.localStorage[ThemeStorage.storageKey] || null;
    } catch (e) {
      return null;
    }
  }

  clearStorage() {
    try {
      window.localStorage.removeItem(ThemeStorage.storageKey);
    } catch (e) {}
  }
}