diff options
author | kumavis <kumavis@users.noreply.github.com> | 2017-01-25 12:38:13 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-25 12:38:13 +0800 |
commit | d30612a2168b02c39a3eaa86f29e47d9edda07d8 (patch) | |
tree | 27eab17687c0c7a1b2583f51abf8064fa54de82a /mock-dev.js | |
parent | 4f39e8192cd94ad45d68992d5d1129f1612b1aa6 (diff) | |
parent | 0f33acb80ca90e07e6f7b7c083f52a1f4344c48e (diff) | |
download | tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.tar tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.tar.gz tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.tar.bz2 tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.tar.lz tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.tar.xz tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.tar.zst tangerine-wallet-browser-d30612a2168b02c39a3eaa86f29e47d9edda07d8.zip |
Merge pull request #999 from MetaMask/obs-store2
background - introduce ObservableStore (mark II)
Diffstat (limited to 'mock-dev.js')
-rw-r--r-- | mock-dev.js | 96 |
1 files changed, 35 insertions, 61 deletions
diff --git a/mock-dev.js b/mock-dev.js index 283bc2c79..bd3a1ad77 100644 --- a/mock-dev.js +++ b/mock-dev.js @@ -15,97 +15,71 @@ const extend = require('xtend') const render = require('react-dom').render const h = require('react-hyperscript') +const pipe = require('mississippi').pipe +const LocalStorageStore = require('obs-store/lib/localStorage') const Root = require('./ui/app/root') const configureStore = require('./ui/app/store') const actions = require('./ui/app/actions') const states = require('./development/states') const Selector = require('./development/selector') const MetamaskController = require('./app/scripts/metamask-controller') +const firstTimeState = require('./app/scripts/first-time-state') const extension = require('./development/mockExtension') +const noop = function () {} + +const STORAGE_KEY = 'metamask-config' +// // Query String +// + const qs = require('qs') let queryString = qs.parse(window.location.href.split('#')[1]) let selectedView = queryString.view || 'first time' const firstState = states[selectedView] updateQueryParams(selectedView) +function updateQueryParams(newView) { + queryString.view = newView + const params = qs.stringify(queryString) + window.location.href = window.location.href.split('#')[0] + `#${params}` +} + +// // CSS +// + const MetaMaskUiCss = require('./ui/css') const injectCss = require('inject-css') +// +// MetaMask Controller +// -function updateQueryParams(newView) { - queryString.view = newView - const params = qs.stringify(queryString) - window.location.href = window.location.href.split('#')[0] + `#${params}` +let dataStore = new LocalStorageStore({ storageKey: STORAGE_KEY }) +// initial state for first time users +if (!dataStore.getState()) { + dataStore.putState(firstTimeState) } -const noop = function () {} const controller = new MetamaskController({ // User confirmation callbacks: showUnconfirmedMessage: noop, unlockAccountMessage: noop, showUnapprovedTx: noop, - // Persistence Methods: - setData, - loadData, + // initial state + initState: dataStore.getState(), }) -// Stub out localStorage for non-browser environments -if (!window.localStorage) { - window.localStorage = {} -} -const STORAGE_KEY = 'metamask-config' -function loadData () { - var oldData = getOldStyleData() - var newData - try { - newData = JSON.parse(window.localStorage[STORAGE_KEY]) - } catch (e) {} - - var data = extend({ - meta: { - version: 0, - }, - data: { - config: { - provider: { - type: 'testnet', - }, - }, - }, - }, oldData || null, newData || null) - return data -} +// setup state persistence +pipe( + controller.store, + dataStore +) -function setData (data) { - window.localStorage[STORAGE_KEY] = JSON.stringify(data) -} - -function getOldStyleData () { - var config, wallet, seedWords - - var result = { - meta: { version: 0 }, - data: {}, - } - - try { - config = JSON.parse(window.localStorage['config']) - result.data.config = config - } catch (e) {} - try { - wallet = JSON.parse(window.localStorage['lightwallet']) - result.data.wallet = wallet - } catch (e) {} - try { - seedWords = window.localStorage['seedWords'] - result.data.seedWords = seedWords - } catch (e) {} - - return result -} +// +// User Interface +// actions._setBackgroundConnection(controller.getApi()) actions.update = function(stateName) { |