From 5eb3d5d485b17b98b19443d8def2f03dec9b38ef Mon Sep 17 00:00:00 2001 From: Dan Finlay <dan@danfinlay.com> Date: Mon, 3 Jul 2017 15:39:25 -0700 Subject: Make folder for responsive UI --- app/scripts/responsive-core.js | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app/scripts/responsive-core.js (limited to 'app/scripts/responsive-core.js') diff --git a/app/scripts/responsive-core.js b/app/scripts/responsive-core.js new file mode 100644 index 000000000..3760facfa --- /dev/null +++ b/app/scripts/responsive-core.js @@ -0,0 +1,54 @@ +const EventEmitter = require('events').EventEmitter +const async = require('async') +const Dnode = require('dnode') +const EthQuery = require('eth-query') +const launchMetamaskUi = require('../../ui/responsive') +const StreamProvider = require('web3-stream-provider') +const setupMultiplex = require('./lib/stream-utils.js').setupMultiplex + + +module.exports = initializePopup + + +function initializePopup ({ container, connectionStream }, cb) { + // setup app + async.waterfall([ + (cb) => connectToAccountManager(connectionStream, cb), + (accountManager, cb) => launchMetamaskUi({ container, accountManager }, cb), + ], cb) +} + +function connectToAccountManager (connectionStream, cb) { + // setup communication with background + // setup multiplexing + var mx = setupMultiplex(connectionStream) + // connect features + setupControllerConnection(mx.createStream('controller'), cb) + setupWeb3Connection(mx.createStream('provider')) +} + +function setupWeb3Connection (connectionStream) { + var providerStream = new StreamProvider() + providerStream.pipe(connectionStream).pipe(providerStream) + connectionStream.on('error', console.error.bind(console)) + providerStream.on('error', console.error.bind(console)) + global.ethereumProvider = providerStream + global.ethQuery = new EthQuery(providerStream) +} + +function setupControllerConnection (connectionStream, cb) { + // this is a really sneaky way of adding EventEmitter api + // to a bi-directional dnode instance + var eventEmitter = new EventEmitter() + var accountManagerDnode = Dnode({ + sendUpdate: function (state) { + eventEmitter.emit('update', state) + }, + }) + connectionStream.pipe(accountManagerDnode).pipe(connectionStream) + accountManagerDnode.once('remote', function (accountManager) { + // setup push events + accountManager.on = eventEmitter.on.bind(eventEmitter) + cb(null, accountManager) + }) +} -- cgit action='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict/distinfo'> <select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/~lantw44/cgit/freebsd-ports-graphics/log/'>root</a>/<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german'>german</a>/<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict'>dict</a>/<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict/distinfo'>distinfo</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/freebsd-ports-graphics/log/german/dict/distinfo?showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr> s/ini-1.3.8'>dependabot/npm_and_yarn/devel/electron6/files/ini-1.3.8</option> <option value='dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19'>dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19</option> <option value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2' selected='selected'>dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2</option> <option value='dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1</option> <option value='dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2</option> <option value='gnome-3.22'>gnome-3.22</option> <option value='gnome-3.24'>gnome-3.24</option> <option value='gnome-3.26'>gnome-3.26</option> <option value='gnome-3.28'>gnome-3.28</option> <option value='gnome-3.32'>gnome-3.32</option> <option value='gnome-3.36'>gnome-3.36</option> <option value='gstreamer'>gstreamer</option> <option value='gstreamer-1.16'>gstreamer-1.16</option> <option value='gstreamer0.10-removal'>gstreamer0.10-removal</option> <option value='main'>main</option> <option value='master'>master</option> <option value='mate-1.16'>mate-1.16</option> <option value='mate-1.18'>mate-1.18</option> <option value='mate-1.20'>mate-1.20</option> <option value='mate-1.22'>mate-1.22</option> </select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)</td><td class='sub right'></td></tr></table> <table class='tabs'><tr><td> <a href='/~lantw44/cgit/freebsd-ports-gnome/about/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>about</a><a href='/~lantw44/cgit/freebsd-ports-gnome/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>summary</a><a href='/~lantw44/cgit/freebsd-ports-gnome/refs/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>refs</a><a class='active' href='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>log</a><a href='/~lantw44/cgit/freebsd-ports-gnome/tree/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>tree</a><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>commit</a><a href='/~lantw44/cgit/freebsd-ports-gnome/diff/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>diff</a><a href='/~lantw44/cgit/freebsd-ports-gnome/stats/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING'> <input type='hidden' name='h' value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'/><input type='hidden' name='id' value='dab5a9cde2a0e74ce48d0a8d137584562bc5678b'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/~lantw44/cgit/freebsd-ports-gnome/log/?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>root</a>/<a href='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b'>UPDATING</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/freebsd-ports-gnome/log/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=dab5a9cde2a0e74ce48d0a8d137584562bc5678b&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=377cfb12e0ae03857351d55b73cf2826c9394997'>net-mgmt/netbox: Update to 2.7.7</a></td><td>kai</td><td><span title='2020-02-26 06:19:07 +0800'>2020-02-26</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+59</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=2e48539303a28af39de246a69b053d3dd903e7c9'>UPDATING: improve xorg-server entry</a></td><td>zeising</td><td><span title='2020-02-23 18:51:48 +0800'>2020-02-23</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+5</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=7be14185c33df3b17accdd2a054477514457fbee'>Document the split of GNU SASL (gsasl)</a></td><td>sunpoet</td><td><span title='2020-02-23 16:08:03 +0800'>2020-02-23</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+10</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=304010210c9e5ba7a7d51c1d7a3d2817477e6053'>Add UPDATING entry for xorg-server</a></td><td>zeising</td><td><span title='2020-02-21 06:26:53 +0800'>2020-02-21</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+12</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=d25bc02871b6fba1ae7a6530bba426163cd3821c'>Reduce the duplicated 'nss' in include and lib path</a></td><td>lwhsu</td><td><span title='2020-02-07 21:32:00 +0800'>2020-02-07</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+7</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/freebsd-ports-gnome/commit/UPDATING?h=dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2&id=d88cb36e2bbc1ba286c15d291589a36f3611a46d'>vim: Update to patchlevel 205 and add PYTHON option</a></td><td>adamw</td><td><span title='2020-02-04 22:03:00 +0800'>2020-02-04</span>