diff --git a/package.json b/package.json index 7942423b..2c312074 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@ledgerhq/hw-transport": "^4.13.0", "@ledgerhq/hw-transport-node-hid": "4.22.0", "@ledgerhq/ledger-core": "2.0.0-rc.7", - "@ledgerhq/live-common": "^3.7.1", + "@ledgerhq/live-common": "3.8.0", "animated": "^0.2.2", "async": "^2.6.1", "axios": "^0.18.0", diff --git a/src/components/QRCodeExporter.js b/src/components/QRCodeExporter.js index 5478cb4d..43fca7f9 100644 --- a/src/components/QRCodeExporter.js +++ b/src/components/QRCodeExporter.js @@ -1,24 +1,28 @@ // @flow import React, { PureComponent } from 'react' +import { Buffer } from 'buffer' import { createSelector } from 'reselect' import { connect } from 'react-redux' import { accountsSelector } from 'reducers/accounts' +import { exportSettingsSelector } from 'reducers/settings' import { makeChunks } from '@ledgerhq/live-common/lib/bridgestream/exporter' import QRCode from './base/QRCode' -const mapStateToProps = createSelector(accountsSelector, accounts => ({ - chunks: makeChunks({ - accounts, - exporterName: 'desktop', - exporterVersion: __APP_VERSION__, - pad: true, +const mapStateToProps = createSelector( + accountsSelector, + exportSettingsSelector, + (accounts, settings) => ({ + chunks: makeChunks({ + accounts, + settings, + exporterName: 'desktop', + exporterVersion: __APP_VERSION__, + chunkSize: 120, + }), }), -})) - -const LOW_FPS = 2 -const HIGH_FPS = 8 +) class QRCodeExporter extends PureComponent< { @@ -36,18 +40,16 @@ class QRCodeExporter extends PureComponent< state = { frame: 0, - fps: HIGH_FPS, + fps: 5, } componentDidMount() { - console.log(`BRIDGESTREAM_DATA=${btoa(JSON.stringify(this.props.chunks))}`) // eslint-disable-line + const BRIDGESTREAM_DATA = Buffer.from(JSON.stringify(this.props.chunks)).toString('base64') + console.log(`BRIDGESTREAM_DATA=${BRIDGESTREAM_DATA}`) // eslint-disable-line - const nextFrame = ({ frame, fps }, { chunks }) => { + const nextFrame = ({ frame }, { chunks }) => { frame = (frame + 1) % chunks.length - return { - frame, - fps: frame === 0 ? (fps === LOW_FPS ? HIGH_FPS : LOW_FPS) : fps, - } + return { frame } } let lastT diff --git a/src/components/base/QRCode/index.js b/src/components/base/QRCode/index.js index 8239eb74..a8d034c0 100644 --- a/src/components/base/QRCode/index.js +++ b/src/components/base/QRCode/index.js @@ -38,7 +38,7 @@ class QRCode extends PureComponent { } render() { - return (this._canvas = n)} /> + return (this._canvas = n)} /> } } diff --git a/src/reducers/settings.js b/src/reducers/settings.js index 2adfdd6f..445f929c 100644 --- a/src/reducers/settings.js +++ b/src/reducers/settings.js @@ -224,4 +224,15 @@ export const selectedTimeRangeSelector = (state: State) => state.settings.select export const hasCompletedOnboardingSelector = (state: State) => state.settings.hasCompletedOnboarding +export const exportSettingsSelector = createSelector( + counterValueCurrencySelector, + counterValueExchangeSelector, + state => state.settings.currenciesSettings, + (counterValueCurrency, counterValueExchange, currenciesSettings) => ({ + counterValue: counterValueCurrency.ticker, + counterValueExchange, + currenciesSettings, + }), +) + export default handleActions(handlers, INITIAL_STATE) diff --git a/yarn.lock b/yarn.lock index 5b951b02..36c89495 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1749,15 +1749,16 @@ npm "^5.7.1" prebuild-install "^2.2.2" -"@ledgerhq/live-common@^3.7.1": - version "3.7.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-common/-/live-common-3.7.1.tgz#5ce1895920d2eae6c454c2c72612dc9afd11adec" - integrity sha512-xlvH6+O1iNC1LI+UyiKb9i4u/6mbO8jTBvXZ6EeFgMhAZGLHNgO2uEJVBxOFe4lVImWqfQI0b8i04AipjlSw6w== +"@ledgerhq/live-common@3.8.0": + version "3.8.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-common/-/live-common-3.8.0.tgz#8a956f4995c6006d7788a98959d0b0cab92307f6" + integrity sha512-ZfhNP9Zt6LGVJhwIdGqeqUZdele6cWEiGDsuXl5NGxS5BGuFZFp7MfrQ7IQWIaePQ5/A1FMy4SoOkgdPskqtvw== dependencies: axios "^0.18.0" bignumber.js "^7.2.1" invariant "^2.2.2" lodash "^4.17.4" + node-lzw "^0.3.1" numeral "^2.0.6" prando "^3.0.1" react "^16.4.0" @@ -11735,6 +11736,11 @@ node-loader@^0.6.0: resolved "https://registry.yarnpkg.com/node-loader/-/node-loader-0.6.0.tgz#c797ef51095ed5859902b157f6384f6361e05ae8" integrity sha1-x5fvUQle1YWZArFX9jhPY2HgWug= +node-lzw@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/node-lzw/-/node-lzw-0.3.1.tgz#f50e37968976aca83320028b91f101df4a436b2d" + integrity sha1-9Q43lol2rKgzIAKLkfEB30pDay0= + node-notifier@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"