aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/gas-customization
diff options
context:
space:
mode:
authorDan Miller <danjm.com@gmail.com>2018-10-10 00:35:54 +0800
committerDan Miller <danjm.com@gmail.com>2018-12-04 11:36:05 +0800
commita2bbf504b891a63f32070961118ec1ae6fa5fdd8 (patch)
tree60add1370c5d0ab38958ba96806d692bd87c5231 /ui/app/components/gas-customization
parent2dbae581ac3f9190ddd1c3457bd51b41eef8051b (diff)
downloadtangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.tar
tangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.tar.gz
tangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.tar.bz2
tangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.tar.lz
tangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.tar.xz
tangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.tar.zst
tangerine-wallet-browser-a2bbf504b891a63f32070961118ec1ae6fa5fdd8.zip
Read only connection of gas price chart to redux
Diffstat (limited to 'ui/app/components/gas-customization')
-rw-r--r--ui/app/components/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content.component.js4
-rw-r--r--ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.component.js2
-rw-r--r--ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js4
-rw-r--r--ui/app/components/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js4
-rw-r--r--ui/app/components/gas-customization/gas-price-chart/tests/gas-price-chart.component.test.js45
5 files changed, 54 insertions, 5 deletions
diff --git a/ui/app/components/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content.component.js b/ui/app/components/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content.component.js
index f90da0a88..44aba358c 100644
--- a/ui/app/components/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content.component.js
+++ b/ui/app/components/gas-customization/gas-modal-page-container/advanced-tab-content/advanced-tab-content.component.js
@@ -15,6 +15,7 @@ export default class AdvancedTabContent extends Component {
millisecondsRemaining: PropTypes.number,
totalFee: PropTypes.string,
timeRemaining: PropTypes.string,
+ gasChartProps: PropTypes.object,
}
gasInput (value, onChange, min, precision, showGWEI) {
@@ -82,6 +83,7 @@ export default class AdvancedTabContent extends Component {
customGasPrice,
customGasLimit,
totalFee,
+ gasChartProps,
} = this.props
return (
@@ -95,7 +97,7 @@ export default class AdvancedTabContent extends Component {
updateCustomGasLimit
) }
<div className="advanced-tab__fee-chart__title">Live Gas Price Predictions</div>
- <GasPriceChart />
+ <GasPriceChart {...gasChartProps} />
<div className="advanced-tab__fee-chart__speed-buttons">
<span>Slower</span>
<span>Faster</span>
diff --git a/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.component.js b/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.component.js
index ac5981ab7..de14e1b38 100644
--- a/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.component.js
+++ b/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.component.js
@@ -46,6 +46,7 @@ export default class GasModalPageContainer extends Component {
customGasPrice,
customGasLimit,
newTotalFiat,
+ gasChartProps,
}) {
const { transactionFee } = this.props
return (
@@ -57,6 +58,7 @@ export default class GasModalPageContainer extends Component {
timeRemaining="1 min 31 sec"
transactionFee={transactionFee}
totalFee={newTotalFiat}
+ gasChartProps={gasChartProps}
/>
)
}
diff --git a/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js b/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js
index 9d6dd3fb5..84eae1880 100644
--- a/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js
+++ b/ui/app/components/gas-customization/gas-modal-page-container/gas-modal-page-container.container.js
@@ -73,12 +73,14 @@ const mapStateToProps = state => {
customGasPrice: calcCustomGasPrice(customModalGasPriceInHex),
customGasLimit: calcCustomGasLimit(customModalGasLimitInHex),
newTotalFiat,
- transactionFee: addHexWEIsToRenderableFiat('0x0', customGasTotal, currentCurrency, conversionRate),
gasPriceButtonGroupProps: {
buttonDataLoading,
defaultActiveButtonIndex: getDefaultActiveButtonIndex(gasButtonInfo, customModalGasPriceInHex),
gasButtonInfo,
},
+ gasChartProps: {
+ priceAndTimeEstimates: state.gas.priceAndTimeEstimates,
+ },
infoRowProps: {
originalTotalFiat: addHexWEIsToRenderableFiat(value, gasTotal, currentCurrency, conversionRate),
originalTotalEth: addHexWEIsToRenderableEth(value, gasTotal),
diff --git a/ui/app/components/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js b/ui/app/components/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js
index 3d9fb2624..c16a07b76 100644
--- a/ui/app/components/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js
+++ b/ui/app/components/gas-customization/gas-modal-page-container/tests/gas-modal-page-container-container.test.js
@@ -75,6 +75,7 @@ describe('gas-modal-page-container container', () => {
limit: 'aaaaaaaa',
price: 'ffffffff',
},
+ priceAndTimeEstimates: 'mockPriceAndTimeEstimates',
},
confirmTransaction: {
txData: {
@@ -95,6 +96,9 @@ describe('gas-modal-page-container container', () => {
newTotalFiat: '637.41',
customModalGasLimitInHex: 'aaaaaaaa',
customModalGasPriceInHex: 'ffffffff',
+ gasChartProps: {
+ priceAndTimeEstimates: 'mockPriceAndTimeEstimates',
+ },
gasPriceButtonGroupProps: {
buttonDataLoading: 'mockBasicGasEstimateLoadingStatus:4',
defaultActiveButtonIndex: 'mockRenderableBasicEstimateData:4ffffffff',
diff --git a/ui/app/components/gas-customization/gas-price-chart/tests/gas-price-chart.component.test.js b/ui/app/components/gas-customization/gas-price-chart/tests/gas-price-chart.component.test.js
index 1a0f6760e..ae98659cc 100644
--- a/ui/app/components/gas-customization/gas-price-chart/tests/gas-price-chart.component.test.js
+++ b/ui/app/components/gas-customization/gas-price-chart/tests/gas-price-chart.component.test.js
@@ -1,18 +1,57 @@
import React from 'react'
import assert from 'assert'
+import proxyquire from 'proxyquire'
+import sinon from 'sinon'
import shallow from '../../../../../lib/shallow-with-context'
-import GasPriceChart from '../gas-price-chart.component.js'
+import * as d3 from 'd3'
+
+const mockSelectReturn = {
+ ...d3.select('div'),
+ node: () => ({
+ getBoundingClientRect: () => ({ x: 123, y: 321, width: 400 }),
+ }),
+ select: d3.select,
+ attr: sinon.spy(),
+ on: sinon.spy(),
+}
+
+const GasPriceChart = proxyquire('../gas-price-chart.component.js', {
+ 'c3': {
+ generate: function () {
+ return {
+ internal: {
+ showTooltip: () => {},
+ showXGridFocus: () => {},
+ },
+ }
+ },
+ },
+ 'd3': {
+ ...d3,
+ select: function (...args) {
+ const result = d3.select(...args)
+ return result.empty()
+ ? mockSelectReturn
+ : result
+ },
+ },
+}).default
describe('GasPriceChart Component', function () {
let wrapper
beforeEach(() => {
- wrapper = shallow(<GasPriceChart />)
+ wrapper = shallow(<GasPriceChart
+ priceAndTimeEstimates={[
+ { gasprice: 1, expectedTime: 10 },
+ { gasprice: 2, expectedTime: 20 },
+ { gasprice: 3, expectedTime: 30 },
+ ]}
+ />)
})
describe('render()', () => {
it('should render', () => {
- console.log('wrapper', wrapper.html())
assert(wrapper.hasClass('gas-price-chart'))
})