diff options
author | kumavis <kumavis@users.noreply.github.com> | 2016-04-16 04:06:28 +0800 |
---|---|---|
committer | kumavis <kumavis@users.noreply.github.com> | 2016-04-16 04:06:28 +0800 |
commit | 83b8741bbb335ad1629b72180616835dbb3f5433 (patch) | |
tree | b8adfc80551c1032dc6fc43aa3a5055169446143 /app/scripts/lib/config-manager.js | |
parent | 81fc1e5f7dc958af40d8113b80c8cfb38c2016ef (diff) | |
parent | d6114292d0c05b42b1d28d75baad8af0c06509a1 (diff) | |
download | tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.tar tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.tar.gz tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.tar.bz2 tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.tar.lz tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.tar.xz tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.tar.zst tangerine-wallet-browser-83b8741bbb335ad1629b72180616835dbb3f5433.zip |
Merge pull request #113 from MetaMask/i53
publicConfigStore for sync provider and selected address
Diffstat (limited to 'app/scripts/lib/config-manager.js')
-rw-r--r-- | app/scripts/lib/config-manager.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js index c557891fe..f024729cc 100644 --- a/app/scripts/lib/config-manager.js +++ b/app/scripts/lib/config-manager.js @@ -15,6 +15,8 @@ const migrations = require('./migrations') */ module.exports = ConfigManager function ConfigManager() { + // ConfigManager is observable and will emit updates + this._subs = [] /* The migrator exported on the config-manager * has two methods the user should be concerned with: @@ -47,6 +49,7 @@ ConfigManager.prototype.setConfig = function(config) { var data = this.migrator.getData() data.config = config this.setData(data) + this._emitUpdates(config) } ConfigManager.prototype.getConfig = function() { @@ -127,6 +130,30 @@ ConfigManager.prototype.clearWallet = function() { this.setData(data) } +ConfigManager.prototype.setData = function(data) { + this.migrator.saveData(data) +} + +// observable + +ConfigManager.prototype.subscribe = function(fn){ + this._subs.push(fn) + var unsubscribe = this.unsubscribe.bind(this, fn) + return unsubscribe +} + +ConfigManager.prototype.unsubscribe = function(fn){ + var index = this._subs.indexOf(fn) + if (index !== -1) this._subs.splice(index, 1) +} + +ConfigManager.prototype._emitUpdates = function(state){ + this._subs.forEach(function(handler){ + handler(state) + }) +} + + function loadData() { var oldData = getOldStyleData() |