ember-preferences icon indicating copy to clipboard operation
ember-preferences copied to clipboard

Sync preferences using local storage change events

Open san650 opened this issue 9 years ago • 0 comments

Local storage notifies every change so we could use that to sync browser tabs.

https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API

Here's a quick demo on how to use it

import Ember from 'ember';
/* global localStorage */

export default Ember.Service.extend({
  init() {
    this._super(...arguments);

    window.addEventListener('storage', (e) => {
      if (e.type === 'storage') {
        this.notifyPropertyChange(e.key);
      }
    });
  },

  unknownProperty(key) {
    return localStorage.getItem(key);
  },

  setUnknownProperty(key, value) {
    localStorage.setItem(key, value);
  }
});

san650 avatar Mar 14 '16 00:03 san650