From 0726c8bdd2c0a2e252cc1fbf7522fda79dbd70d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Neves?= Date: Mon, 4 Feb 2019 23:41:45 -0500 Subject: [PATCH] chore: general code cleanup --- __tests__/actions/receive.test.js | 2 +- __tests__/actions/send.test.js | 8 +-- __tests__/components/button.test.js | 13 ++-- __tests__/components/clipboard.test.js | 1 - __tests__/components/confirm-dialog.test.js | 31 +++++++--- __tests__/components/dropdown.test.js | 6 +- __tests__/components/input-label.test.js | 2 +- __tests__/components/input.test.js | 8 +-- __tests__/components/loading-screen.test.js | 2 +- __tests__/components/modal.test.js | 12 +++- __tests__/components/select.test.js | 2 +- __tests__/components/transaction-item.test.js | 3 +- __tests__/components/wallet-address.test.js | 2 +- __tests__/e2e/console.test.js | 10 ++- __tests__/e2e/send.test.js | 45 +++++++------- __tests__/e2e/sidebar.test.js | 46 +++++++------- __tests__/e2e/startup.test.js | 1 + __tests__/e2e/status-pill.test.js | 1 + __tests__/reducers/wallet-summary.test.js | 5 +- __tests__/setup/assetTransformer.js | 8 ++- __tests__/setup/jest.js | 1 + __tests__/setup/mockAPI.js | 3 +- __tests__/setup/utils.js | 1 + .../utils/filter-object-null-keys.test.js | 5 +- __tests__/utils/format-number.test.js | 3 +- __tests__/utils/timestamp.test.js | 4 +- __tests__/utils/truncate-address.test.js | 3 +- app/components/button.js | 13 ++-- app/components/clipboard.js | 1 + app/components/confirm-dialog.js | 17 ++++-- app/components/divider.js | 1 + app/components/dropdown.js | 29 +++++++-- app/components/empty-transactions.js | 1 + app/components/error-modal.js | 29 +++++---- app/components/header.js | 12 +++- app/components/input-label.js | 1 + app/components/input.js | 2 +- app/components/layout.js | 1 + app/components/loading-screen.js | 10 ++- app/components/modal.js | 61 +++++++++---------- app/components/modal.mdx | 22 +++++-- app/components/qrcode.js | 6 +- app/components/qrcode.mdx | 4 +- app/components/select.js | 10 ++- app/components/sidebar.js | 8 ++- app/components/status-pill.js | 1 + app/components/status-pill.mdx | 6 +- app/components/text.js | 1 + app/components/transaction-daily.js | 1 + app/components/transaction-details.js | 30 +++++++-- app/components/transaction-item.js | 17 +++++- app/components/wallet-address.js | 26 +++----- app/components/wallet-summary.js | 21 +++++-- app/components/wallet-summary.mdx | 2 +- app/components/with-daemon-status-check.js | 1 + app/components/zcash-logo.js | 5 +- app/constants/explorer.js | 1 + app/constants/sidebar.js | 1 + app/containers/app.js | 1 + app/containers/receive.js | 1 + app/containers/send.js | 8 ++- app/containers/settings.js | 1 + app/containers/transactions.js | 3 +- app/redux/modules/app.js | 1 + app/redux/modules/receive.js | 1 + app/redux/modules/send.js | 1 + app/redux/modules/transactions.js | 2 + app/redux/modules/wallet.js | 2 + app/router/container.js | 1 + app/router/router.js | 36 ++++++++--- app/theme.js | 1 + app/utils/filter-object-null-keys.js | 1 + app/utils/open-external.js | 1 + app/utils/sort-by.js | 1 + app/views/console.js | 7 ++- app/views/dashboard.js | 4 +- app/views/receive.js | 43 ++++++++++--- app/views/send.js | 1 + app/views/settings.js | 1 + app/views/transactions.js | 1 + config/daemon/fetch-unix-params.js | 1 + config/daemon/fetch-windows-params.js | 11 +++- config/daemon/get-binaries-path.js | 4 +- config/daemon/get-daemon-name.js | 1 + config/daemon/get-os-folder.js | 2 + config/daemon/locate-zcash-conf.js | 1 + config/daemon/logger.js | 2 +- config/daemon/parse-zcash-conf.js | 1 + config/daemon/run-fetch-params.js | 2 + config/daemon/zcashd-child-process.js | 2 + config/electron-store.js | 2 + config/electron.js | 3 +- config/webpack-dev.config.js | 2 + config/webpack-main.config.js | 2 + config/webpack-prod.config.js | 2 + services/api.js | 3 +- services/sync-status.js | 7 ++- services/utils.js | 1 + services/zec-price.js | 2 + utils/debug-shortcut.js | 1 - 100 files changed, 498 insertions(+), 242 deletions(-) diff --git a/__tests__/actions/receive.test.js b/__tests__/actions/receive.test.js index 9ec0391..f2cb4c5 100644 --- a/__tests__/actions/receive.test.js +++ b/__tests__/actions/receive.test.js @@ -18,7 +18,7 @@ describe('Receive Actions', () => { const payload = { addresses: [ 'tm0a9si0ds09gj02jj', - 'smas098gk02jf0kskk' + 'smas098gk02jf0kskk', ], }; diff --git a/__tests__/actions/send.test.js b/__tests__/actions/send.test.js index 4f82909..ed08f7a 100644 --- a/__tests__/actions/send.test.js +++ b/__tests__/actions/send.test.js @@ -36,7 +36,7 @@ describe('Send Actions', () => { test('should create an action to send transaction with success', () => { const payload = { - operationId: '0b9ii4590ab-1d012klfo' + operationId: '0b9ii4590ab-1d012klfo', }; store.dispatch(sendTransactionSuccess(payload)); @@ -76,7 +76,7 @@ describe('Send Actions', () => { test('should validate a address with success', () => { const payload = { - isValid: true + isValid: true, }; store.dispatch(validateAddressSuccess(payload)); @@ -101,7 +101,7 @@ describe('Send Actions', () => { test('should load ZEC price', () => { const payload = { - value: 1.35 + value: 1.35, }; store.dispatch(loadZECPrice(payload)); @@ -109,7 +109,7 @@ describe('Send Actions', () => { expect(store.getActions()[0]).toEqual( expect.objectContaining({ type: LOAD_ZEC_PRICE, - payload + payload, }), ); }); diff --git a/__tests__/components/button.test.js b/__tests__/components/button.test.js index 638d909..f40f618 100644 --- a/__tests__/components/button.test.js +++ b/__tests__/components/button.test.js @@ -16,10 +16,10 @@ describe('} + title='Confirm example' + onConfirm={() => alert('Confirm')} // eslint-disable-line + renderTrigger={toggle => ( + + )} > - {toggle =>
Confirm content
} + {(/* toggle */) =>
Confirm content
} , ); @@ -26,11 +33,19 @@ describe('', () => { test('should render confirm dialog trigger', () => { const { queryByTestId } = render( alert('Confirm')} - renderTrigger={toggle => } + title='Confirm example' + onConfirm={() => alert('Confirm')} // eslint-disable-line + renderTrigger={toggle => ( + + )} > - {toggle =>
Confirm content
} + {(/* toggle */) =>
Confirm content
}
, ); diff --git a/__tests__/components/dropdown.test.js b/__tests__/components/dropdown.test.js index 8bdea6a..811e313 100644 --- a/__tests__/components/dropdown.test.js +++ b/__tests__/components/dropdown.test.js @@ -15,7 +15,10 @@ describe('', () => { test('should render dropdown correctly', () => { const { queryByTestId } = render( -
+
( @@ -60,5 +63,4 @@ describe('', () => { expect(queryByTestId('PrimaryButton')).toBeInTheDocument(); }); - }); diff --git a/__tests__/components/input-label.test.js b/__tests__/components/input-label.test.js index 881b890..0cbb732 100644 --- a/__tests__/components/input-label.test.js +++ b/__tests__/components/input-label.test.js @@ -19,7 +19,7 @@ describe('', () => { ); const label = container.querySelector('p'); - + expect(label).toBeVisible(); }); diff --git a/__tests__/components/input.test.js b/__tests__/components/input.test.js index 01970a7..695a0f5 100644 --- a/__tests__/components/input.test.js +++ b/__tests__/components/input.test.js @@ -17,9 +17,9 @@ describe('', () => { - + , ); expect(queryByTestId('Input')).toBeInTheDocument(); @@ -31,10 +31,10 @@ describe('', () => { - + , ); expect(queryByTestId('Textarea')).toBeInTheDocument(); diff --git a/__tests__/components/loading-screen.test.js b/__tests__/components/loading-screen.test.js index 15debb1..d103f35 100644 --- a/__tests__/components/loading-screen.test.js +++ b/__tests__/components/loading-screen.test.js @@ -14,7 +14,7 @@ describe('', () => { test('should render status pill correctly', () => { const { queryByTestId } = render( - + , ); diff --git a/__tests__/components/modal.test.js b/__tests__/components/modal.test.js index f77b053..654b997 100644 --- a/__tests__/components/modal.test.js +++ b/__tests__/components/modal.test.js @@ -13,7 +13,11 @@ describe('', () => { const { queryByTestId } = render( ( - )} @@ -21,7 +25,10 @@ describe('', () => { {toggleVisibility => (
Modal Content -
@@ -31,5 +38,4 @@ describe('', () => { expect(queryByTestId('ModalTrigger')).toBeInTheDocument(); }); - }); diff --git a/__tests__/components/select.test.js b/__tests__/components/select.test.js index 844ff25..b4ae8d1 100644 --- a/__tests__/components/select.test.js +++ b/__tests__/components/select.test.js @@ -15,7 +15,7 @@ describe('', () => { const { container } = render( ', () => { date={new Date().toISOString()} zecPrice={2.94} /> - + , ); expect(container).toMatchSnapshot(); }); - }); diff --git a/__tests__/components/wallet-address.test.js b/__tests__/components/wallet-address.test.js index f3cc150..d5550c7 100644 --- a/__tests__/components/wallet-address.test.js +++ b/__tests__/components/wallet-address.test.js @@ -1,7 +1,7 @@ // @flow import React from 'react'; -import { render, cleanup, queryByText } from 'react-testing-library'; +import { render, cleanup } from 'react-testing-library'; import { ThemeProvider } from 'styled-components'; import 'jest-dom/extend-expect'; diff --git a/__tests__/e2e/console.test.js b/__tests__/e2e/console.test.js index 2f148f6..1cb7c25 100644 --- a/__tests__/e2e/console.test.js +++ b/__tests__/e2e/console.test.js @@ -1,4 +1,5 @@ // @flow + import { getApp } from '../setup/utils'; const app = getApp(); @@ -8,6 +9,7 @@ beforeAll(async () => { await app.client.waitUntilWindowLoaded(); await app.client.waitUntilTextExists('#sidebar', 'Console'); }); + afterAll(() => app.stop()); describe('Console', () => { @@ -16,8 +18,10 @@ describe('Console', () => { expect(app.client.getText('#header p:first-child')).resolves.toEqual('Console'); - expect(app.client.element('#console-wrapper img').getAttribute('src')).resolves.toEqual( - expect.stringContaining('/assets/console_zcash.png'), - ); + expect(app.client.element('#console-wrapper img') + .getAttribute('src')) + .resolves.toEqual( + expect.stringContaining('/assets/console_zcash.png'), + ); }); }); diff --git a/__tests__/e2e/send.test.js b/__tests__/e2e/send.test.js index 536d406..53ea662 100644 --- a/__tests__/e2e/send.test.js +++ b/__tests__/e2e/send.test.js @@ -1,4 +1,5 @@ // @flow + import { getApp } from '../setup/utils'; const app = getApp(); @@ -9,29 +10,28 @@ beforeEach(async () => { await app.client.waitUntilTextExists('#sidebar', 'Send'); await app.client.element('#sidebar a:nth-child(2)').click(); }); + afterEach(() => app.stop()); describe('Send', () => { test('should load "Send Page"', async () => { - expect(app.client.element('#send-wrapper').isVisible()).resolves.toEqual(true); + expect(app.client.element('#send-wrapper') + .isVisible()).resolves.toEqual(true); }); test('should show Additional Options click', async () => { - expect(app.client.element('#send-wrapper #send-fee-wrapper').isVisible()).resolves.toEqual( - false, - ); + expect(app.client.element('#send-wrapper #send-fee-wrapper') + .isVisible()).resolves.toEqual(false); await app.client.element('#send-show-additional-options-button').click(); - expect(app.client.element('#send-wrapper #send-fee-wrapper').isVisible()).resolves.toEqual( - true, - ); + expect(app.client.element('#send-wrapper #send-fee-wrapper') + .isVisible()).resolves.toEqual(true); }); test('should disable send button if required fields are empty', async () => { - expect(app.client.element('#send-submit-button').getAttribute('disabled')).resolves.toEqual( - true, - ); + expect(app.client.element('#send-submit-button') + .getAttribute('disabled')).resolves.toEqual(true); }); test('should enable send button if required fields are filled', async () => { @@ -68,9 +68,8 @@ describe('Send', () => { await app.client.element('#send-submit-button').click(); - expect(app.client.element('#send-confirm-transaction-modal').isVisible()).resolves.toEqual( - true, - ); + expect(app.client.element('#send-confirm-transaction-modal') + .isVisible()).resolves.toEqual(true); }); test('should display a load indicator while the transaction is processed', async () => { @@ -88,17 +87,19 @@ describe('Send', () => { await app.client.element('#send-submit-button').click(); await app.client.element('#confirm-modal-button').click(); + expect(app.client.getAttribute('#send-confirm-transaction-modal img', 'src')).resolves.toEqual( expect.stringContaining('/assets/sync_icon.png'), ); - expect(app.client.getText('#send-confirm-transaction-modal p')).resolves.toEqual( - 'Processing transaction...', - ); - expect(app.client.element('#confirm-modal-button').isVisible()).resolves.toEqual(false); + expect(app.client.getText('#send-confirm-transaction-modal p')) + .resolves.toEqual('Processing transaction...'); + expect(app.client.element('#confirm-modal-button') + .isVisible()).resolves.toEqual(false); }); test('should show an error in invalid transaction', async () => { - expect(app.client.element('#send-error-text').isVisible()).resolves.toEqual(false); + expect(app.client.element('#send-error-text') + .isVisible()).resolves.toEqual(false); await app.client.element('#sidebar a:nth-child(1)').click(); await app.client.element('#sidebar a:nth-child(2)').click(); @@ -123,7 +124,8 @@ describe('Send', () => { }); test('should show a success screen after transaction and show a transaction item', async () => { - expect(app.client.element('#send-success-wrapper').isVisible()).resolves.toEqual(false); + expect(app.client.element('#send-success-wrapper') + .isVisible()).resolves.toEqual(false); await app.client.element('#sidebar a:nth-child(1)').click(); await app.client.element('#sidebar a:nth-child(2)').click(); @@ -147,9 +149,8 @@ describe('Send', () => { await app.client.waitUntilTextExists('#transaction-item-operation-id-1', 'Send'); - expect(await app.client.element('#transaction-item-operation-id-1 img').isVisible()).toEqual( - true, - ); + expect(await app.client.element('#transaction-item-operation-id-1 img') + .isVisible()).toEqual(true); expect( await app.client.element('#transaction-item-operation-id-1 img').getAttribute('src'), ).toEndWith('/assets/transaction_sent_icon.svg'); diff --git a/__tests__/e2e/sidebar.test.js b/__tests__/e2e/sidebar.test.js index f1f039a..d9f9000 100644 --- a/__tests__/e2e/sidebar.test.js +++ b/__tests__/e2e/sidebar.test.js @@ -9,6 +9,7 @@ beforeAll(async () => { await app.client.waitUntilWindowLoaded(); await app.client.waitUntilTextExists('#sidebar', 'Dashboard'); }); + afterAll(() => app.stop()); describe('Sidebar', () => { @@ -17,9 +18,8 @@ describe('Sidebar', () => { expect(await app.client.getUrl()).toEndWith('/'); - expect(await app.client.element('#sidebar a:nth-child(1)').getHTML()).toEqual( - expect.stringContaining('Dashboard'), - ); + expect(await app.client.element('#sidebar a:nth-child(1)') + .getHTML()).toEqual(expect.stringContaining('Dashboard')); expect(await app.client.element('#sidebar a:nth-child(1) img').getAttribute('src')).toEqual( expect.stringContaining('/assets/dashboard_icon_active.svg'), @@ -31,11 +31,11 @@ describe('Sidebar', () => { expect(await app.client.getUrl()).toEndWith('/send'); - expect(await app.client.element('#sidebar a:nth-child(2)').getHTML()).toEqual( - expect.stringContaining('Send'), - ); + expect(await app.client.element('#sidebar a:nth-child(2)') + .getHTML()).toEqual(expect.stringContaining('Send')); - expect(await app.client.element('#sidebar a:nth-child(2) img').getAttribute('src')).toEqual( + expect(await app.client.element('#sidebar a:nth-child(2) img') + .getAttribute('src')).toEqual( expect.stringContaining('/assets/send_icon_active.svg'), ); }); @@ -45,11 +45,11 @@ describe('Sidebar', () => { expect(await app.client.getUrl()).toEndWith('/receive'); - expect(await app.client.element('#sidebar a:nth-child(3)').getHTML()).toEqual( - expect.stringContaining('Receive'), - ); + expect(await app.client.element('#sidebar a:nth-child(3)') + .getHTML()).toEqual(expect.stringContaining('Receive')); - expect(await app.client.element('#sidebar a:nth-child(3) img').getAttribute('src')).toEqual( + expect(await app.client.element('#sidebar a:nth-child(3) img') + .getAttribute('src')).toEqual( expect.stringContaining('/assets/receive_icon_active.svg'), ); }); @@ -59,11 +59,11 @@ describe('Sidebar', () => { expect(await app.client.getUrl()).toEndWith('/transactions'); - expect(await app.client.element('#sidebar a:nth-child(4)').getHTML()).toEqual( - expect.stringContaining('Transactions'), - ); + expect(await app.client.element('#sidebar a:nth-child(4)') + .getHTML()).toEqual(expect.stringContaining('Transactions')); - expect(await app.client.element('#sidebar a:nth-child(4) img').getAttribute('src')).toEqual( + expect(await app.client.element('#sidebar a:nth-child(4) img') + .getAttribute('src')).toEqual( expect.stringContaining('/assets/transactions_icon_active.svg'), ); }); @@ -73,11 +73,11 @@ describe('Sidebar', () => { expect(await app.client.getUrl()).toEndWith('/settings'); - expect(await app.client.element('#sidebar a:nth-child(5)').getHTML()).toEqual( - expect.stringContaining('Settings'), - ); + expect(await app.client.element('#sidebar a:nth-child(5)') + .getHTML()).toEqual(expect.stringContaining('Settings')); - expect(await app.client.element('#sidebar a:nth-child(5) img').getAttribute('src')).toEqual( + expect(await app.client.element('#sidebar a:nth-child(5) img') + .getAttribute('src')).toEqual( expect.stringContaining('/assets/settings_icon_active.svg'), ); }); @@ -87,11 +87,11 @@ describe('Sidebar', () => { expect(await app.client.getUrl()).toEndWith('/console'); - expect(await app.client.element('#sidebar a:nth-child(6)').getHTML()).toEqual( - expect.stringContaining('Console'), - ); + expect(await app.client.element('#sidebar a:nth-child(6)') + .getHTML()).toEqual(expect.stringContaining('Console')); - expect(await app.client.element('#sidebar a:nth-child(6) img').getAttribute('src')).toEqual( + expect(await app.client.element('#sidebar a:nth-child(6) img') + .getAttribute('src')).toEqual( expect.stringContaining('/assets/console_icon_active.svg'), ); }); diff --git a/__tests__/e2e/startup.test.js b/__tests__/e2e/startup.test.js index 53aa671..3661adb 100644 --- a/__tests__/e2e/startup.test.js +++ b/__tests__/e2e/startup.test.js @@ -8,6 +8,7 @@ beforeAll(async () => { await app.start(); await app.client.waitUntilWindowLoaded(); }); + afterAll(() => app.stop()); describe('Startup', () => { diff --git a/__tests__/e2e/status-pill.test.js b/__tests__/e2e/status-pill.test.js index 04b34bf..501aa21 100644 --- a/__tests__/e2e/status-pill.test.js +++ b/__tests__/e2e/status-pill.test.js @@ -1,4 +1,5 @@ // @flow + import { getApp } from '../setup/utils'; const app = getApp(); diff --git a/__tests__/reducers/wallet-summary.test.js b/__tests__/reducers/wallet-summary.test.js index b7a9156..3c33392 100644 --- a/__tests__/reducers/wallet-summary.test.js +++ b/__tests__/reducers/wallet-summary.test.js @@ -1,4 +1,5 @@ // @flow + import walletSummaryReducer, { LOAD_WALLET_SUMMARY, LOAD_WALLET_SUMMARY_SUCCESS, @@ -80,9 +81,9 @@ describe('WalletSummary Reducer', () => { isLoading: false, addresses: [], transactions: [], - zecPrice: 0 + zecPrice: 0, }; expect(walletSummaryReducer(undefined, action)).toEqual(expectedState); }); -}); \ No newline at end of file +}); diff --git a/__tests__/setup/assetTransformer.js b/__tests__/setup/assetTransformer.js index 1f173b0..0ce28af 100644 --- a/__tests__/setup/assetTransformer.js +++ b/__tests__/setup/assetTransformer.js @@ -1,7 +1,9 @@ +// @flow + const path = require('path'); module.exports = { - process(filename) { - return 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';'; + process(filename: any) { + return `module.exports = ${JSON.stringify(path.basename(filename))};`; }, -}; \ No newline at end of file +}; diff --git a/__tests__/setup/jest.js b/__tests__/setup/jest.js index fe7baad..6481e32 100644 --- a/__tests__/setup/jest.js +++ b/__tests__/setup/jest.js @@ -1,4 +1,5 @@ // @flow + // eslint-disable-next-line import/no-unresolved require('jest-extended'); diff --git a/__tests__/setup/mockAPI.js b/__tests__/setup/mockAPI.js index 7a2f335..cfd7acb 100644 --- a/__tests__/setup/mockAPI.js +++ b/__tests__/setup/mockAPI.js @@ -1,4 +1,5 @@ // @flow + // eslint-disable-next-line import/no-extraneous-dependencies import 'babel-polyfill'; @@ -11,7 +12,7 @@ const sleep = (time: number) => new Promise(resolve => setTimeout(resolve, time) createTestServer({ httpPort: '18232', }).then(async (server) => { - console.log('[MOCK RPC API]', server.url); + console.log('[MOCK RPC API]', server.url); // eslint-disable-line server.get('/', (req, res) => { res.send('Zcash RPC'); diff --git a/__tests__/setup/utils.js b/__tests__/setup/utils.js index 1f34a86..ebc9830 100644 --- a/__tests__/setup/utils.js +++ b/__tests__/setup/utils.js @@ -1,4 +1,5 @@ // @flow + /* eslint-disable import/no-extraneous-dependencies */ import electron from 'electron'; import { Application } from 'spectron'; diff --git a/__tests__/utils/filter-object-null-keys.test.js b/__tests__/utils/filter-object-null-keys.test.js index b0bb3fd..6fc95ae 100644 --- a/__tests__/utils/filter-object-null-keys.test.js +++ b/__tests__/utils/filter-object-null-keys.test.js @@ -1,4 +1,5 @@ // @flow + import 'jest-dom/extend-expect'; import { filterObjectNullKeys } from '../../app/utils/filter-object-null-keys'; @@ -18,5 +19,5 @@ describe('filterObjectNullKeys', () => { }; expect(filterObjectNullKeys(initialState)).toEqual(expectedState); - }) -}) \ No newline at end of file + }); +}); diff --git a/__tests__/utils/format-number.test.js b/__tests__/utils/format-number.test.js index af44a55..155613c 100644 --- a/__tests__/utils/format-number.test.js +++ b/__tests__/utils/format-number.test.js @@ -1,4 +1,5 @@ // @flow + import { BigNumber } from 'bignumber.js'; import 'jest-dom/extend-expect'; @@ -34,4 +35,4 @@ describe('formatNumber', () => { expect(myBalanceInUsd).toEqual(expectedState); }); -}) \ No newline at end of file +}); diff --git a/__tests__/utils/timestamp.test.js b/__tests__/utils/timestamp.test.js index 5d912db..219b5a6 100644 --- a/__tests__/utils/timestamp.test.js +++ b/__tests__/utils/timestamp.test.js @@ -1,4 +1,5 @@ // @flow + import 'jest-dom/extend-expect'; import { getTimestamp } from '../../app/utils/timestamp'; @@ -8,6 +9,5 @@ describe('generate timestamp', () => { const now = getTimestamp(); expect(now).toEqual(expect.any(Number)); - }); -}) \ No newline at end of file +}); diff --git a/__tests__/utils/truncate-address.test.js b/__tests__/utils/truncate-address.test.js index 460ede5..3a0cee2 100644 --- a/__tests__/utils/truncate-address.test.js +++ b/__tests__/utils/truncate-address.test.js @@ -1,4 +1,5 @@ // @flow + import 'jest-dom/extend-expect'; import { truncateAddress } from '../../app/utils/truncate-address'; @@ -11,4 +12,4 @@ describe('truncateAddress', () => { expect(myAddress).toEqual(expectedState); }); -}) \ No newline at end of file +}); diff --git a/app/components/button.js b/app/components/button.js index 5a44bf7..8869843 100644 --- a/app/components/button.js +++ b/app/components/button.js @@ -1,13 +1,12 @@ // @flow -import React from 'react'; +import React, { type ElementProps } from 'react'; import styled from 'styled-components'; import { Link } from 'react-router-dom'; /* eslint-disable import/no-extraneous-dependencies */ /* eslint-disable max-len */ // $FlowFixMe import { darken } from 'polished'; -import type { ElementProps } from 'react'; const DefaultButton = styled.button` align-items: center; @@ -102,12 +101,18 @@ export const Button = ({ const buttonLabel = isLoading ? 'Loading...' : label; const component = variant === 'primary' ? ( - + {icon ? : null} {buttonLabel} ) : ( - + {icon ? : null} {buttonLabel} diff --git a/app/components/clipboard.js b/app/components/clipboard.js index 7f42e61..0c99bda 100644 --- a/app/components/clipboard.js +++ b/app/components/clipboard.js @@ -1,4 +1,5 @@ // @flow + import React, { PureComponent } from 'react'; import { Button } from './button'; diff --git a/app/components/confirm-dialog.js b/app/components/confirm-dialog.js index 3ac980c..844f7c6 100644 --- a/app/components/confirm-dialog.js +++ b/app/components/confirm-dialog.js @@ -1,5 +1,6 @@ // @flow -import React, { type Element } from 'react'; + +import React, { Fragment, type Element } from 'react'; import styled from 'styled-components'; import { TextComponent } from './text'; @@ -82,15 +83,21 @@ export const ConfirmDialogComponent = ({ {toggle => ( - + - + {children(handleClose(toggle))} {showButtons && ( - <> + - + )} )} diff --git a/app/components/divider.js b/app/components/divider.js index 7d00944..0d7e924 100644 --- a/app/components/divider.js +++ b/app/components/divider.js @@ -1,4 +1,5 @@ // @flow + import styled from 'styled-components'; export const Divider = styled.div` diff --git a/app/components/dropdown.js b/app/components/dropdown.js index 2eca400..b8e4bca 100644 --- a/app/components/dropdown.js +++ b/app/components/dropdown.js @@ -1,4 +1,5 @@ // @flow + import React, { type Node, Component } from 'react'; import styled from 'styled-components'; /* eslint-disable import/no-extraneous-dependencies */ @@ -99,16 +100,30 @@ export class DropdownComponent extends Component { } = this.props; const body = [ - this.setState(() => ({ isOpen: false }))}> + this.setState(() => ({ isOpen: false }))} + > {label && ( - - + + )} {options.map(({ label: optionLabel, onClick }) => ( - - @@ -123,7 +138,9 @@ export class DropdownComponent extends Component { tipSize={7} body={body} > - {renderTrigger(() => this.setState(state => ({ isOpen: !state.isOpen })), isOpen)} + {renderTrigger(() => this.setState(state => ({ + isOpen: !state.isOpen, + })), isOpen)} ); } diff --git a/app/components/empty-transactions.js b/app/components/empty-transactions.js index 6d5ce99..c1174df 100644 --- a/app/components/empty-transactions.js +++ b/app/components/empty-transactions.js @@ -1,4 +1,5 @@ // @flow + import React from 'react'; import styled from 'styled-components'; diff --git a/app/components/error-modal.js b/app/components/error-modal.js index 94f9ae0..34bbaa2 100644 --- a/app/components/error-modal.js +++ b/app/components/error-modal.js @@ -1,4 +1,5 @@ // @flow + import React, { PureComponent } from 'react'; import { createPortal } from 'react-dom'; import styled from 'styled-components'; @@ -78,17 +79,21 @@ export class ErrorModalComponent extends PureComponent { render() { const { isVisible, message, onRequestClose } = this.props; - return isVisible - ? createPortal( - - - - -