aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/config-manager.js
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2016-04-16 04:06:28 +0800
committerkumavis <kumavis@users.noreply.github.com>2016-04-16 04:06:28 +0800
commit83b8741bbb335ad1629b72180616835dbb3f5433 (patch)
treeb8adfc80551c1032dc6fc43aa3a5055169446143 /app/scripts/lib/config-manager.js
parent81fc1e5f7dc958af40d8113b80c8cfb38c2016ef (diff)
parentd6114292d0c05b42b1d28d75baad8af0c06509a1 (diff)
downloadtangerine-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.js27
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()