From a39035d4e7476355fd61eac952406c1a3a684990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=ABck=20V=C3=A9zien?= Date: Thu, 22 Mar 2018 11:57:52 +0100 Subject: [PATCH] Finish integration for OperationDetails modal --- package.json | 6 +- src/components/AccountPage/index.js | 23 +- .../OperationsList/ConfirmationCheck.js | 38 ++- src/components/OperationsList/index.js | 15 +- src/components/base/Button/index.js | 9 +- src/components/modals/OperationDetails.js | 143 ++++++-- src/icons/Cross.js | 4 +- src/internals/accounts/sync.js | 2 +- src/main/menu.js | 14 + static/i18n/en/operationDetails.yml | 2 + yarn.lock | 316 +++++++++++++----- 11 files changed, 422 insertions(+), 150 deletions(-) create mode 100644 static/i18n/en/operationDetails.yml diff --git a/package.json b/package.json index 51a2b74b..34b948e1 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "raven-js": "^3.23.3", "react": "^16.2.0", "react-dom": "^16.2.0", - "react-i18next": "^7.5.0", + "react-i18next": "^7.5.1", "react-mortal": "^3.2.0", "react-motion": "^0.5.2", "react-qr-reader": "^2.1.0", @@ -118,7 +118,7 @@ "electron-devtools-installer": "^2.2.3", "electron-rebuild": "^1.7.3", "electron-webpack": "1.13.0", - "eslint": "^4.19.0", + "eslint": "^4.19.1", "eslint-config-airbnb": "^16.1.0", "eslint-config-prettier": "^2.9.0", "eslint-import-resolver-babel-module": "^4.0.0", @@ -130,7 +130,7 @@ "flow-typed": "^2.4.0", "hard-source-webpack-plugin": "^0.6.0", "husky": "^0.14.3", - "jest": "^22.4.2", + "jest": "^22.4.3", "js-yaml": "^3.10.0", "lint-staged": "^7.0.0", "node-loader": "^0.6.0", diff --git a/src/components/AccountPage/index.js b/src/components/AccountPage/index.js index 681b5c80..af7c391a 100644 --- a/src/components/AccountPage/index.js +++ b/src/components/AccountPage/index.js @@ -5,11 +5,14 @@ import { compose } from 'redux' import { connect } from 'react-redux' import { translate } from 'react-i18next' import { Redirect } from 'react-router' +import styled from 'styled-components' import { MODAL_SEND, MODAL_RECEIVE, MODAL_SETTINGS_ACCOUNT } from 'constants' import type { T, Account } from 'types/common' +import { darken } from 'styles/helpers' + import { getAccountById } from 'reducers/accounts' import { getCounterValue } from 'reducers/settings' import { openModal } from 'reducers/modals' @@ -32,6 +35,18 @@ import OperationsList from 'components/OperationsList' import AccountHeader from './AccountHeader' +const ButtonSettings = styled(Button).attrs({ + small: true, +})` + border: 2px solid ${p => p.theme.colors.grey}; + width: 30px; + padding: 0; + + &:active { + border: 2px solid ${p => darken(p.theme.colors.grey, 0.2)}; + } +` + const mapStateToProps = (state, props) => ({ account: getAccountById(state, props.match.params.id), counterValue: getCounterValue(state), @@ -91,15 +106,11 @@ class AccountPage extends PureComponent { {t('receive:title')} - + diff --git a/src/components/OperationsList/ConfirmationCheck.js b/src/components/OperationsList/ConfirmationCheck.js index f2ce085d..2acfb416 100644 --- a/src/components/OperationsList/ConfirmationCheck.js +++ b/src/components/OperationsList/ConfirmationCheck.js @@ -17,7 +17,7 @@ import Tooltip from 'components/base/Tooltip' const Container = styled(Box).attrs({ bg: p => p.isConfirmed - ? rgba(p.type === 'from' ? p.theme.colors.positiveGreen : p.theme.colors.grey, 0.1) + ? rgba(p.type === 'from' ? p.theme.colors.positiveGreen : p.theme.colors.grey, 0.2) : 'none', color: p => (p.type === 'from' ? p.theme.colors.positiveGreen : p.theme.colors.grey), align: 'center', @@ -47,33 +47,47 @@ const WrapperClock = styled(Box).attrs({ ` const ConfirmationCheck = ({ - type, confirmations, minConfirmations, t, + type, + withTooltip, + ...props }: { - type: 'to' | 'from', confirmations: number, minConfirmations: number, t: T, + type: 'to' | 'from', + withTooltip?: boolean, }) => { const isConfirmed = confirmations >= minConfirmations - return ( + + const renderContent = () => ( + + {type === 'from' ? : } + {!isConfirmed && ( + + + + )} + + ) + + return withTooltip ? ( isConfirmed ? t('operationsList:confirmed') : t('operationsList:notConfirmed') } > - - {type === 'from' ? : } - {!isConfirmed && ( - - - - )} - + {renderContent()} + ) : ( + renderContent() ) } +ConfirmationCheck.defaultProps = { + withTooltip: true, +} + export default ConfirmationCheck diff --git a/src/components/OperationsList/index.js b/src/components/OperationsList/index.js index 1696880c..55e5aeda 100644 --- a/src/components/OperationsList/index.js +++ b/src/components/OperationsList/index.js @@ -137,9 +137,16 @@ const Operation = ({ const time = moment(tx.receivedAt) const Icon = getIconByCoinType(account.currency.coinType) const type = tx.amount > 0 ? 'from' : 'to' + const cValue = counterValues + ? counterValues[time.format('YYYY-MM-DD')] * (tx.amount / 10 ** unit.magnitude) + : null return ( - onOperationClick({ operation: tx, account })}> + + onOperationClick({ operation: tx, account, type, counterValue: cValue, fiat: counterValue }) + } + > - {counterValues && ( + {cValue && ( { account={acc} counterValue={counterValue} counterValues={cValues} - key={`{${tx.id}${acc ? `-${acc.id}` : ''}`} + key={`${tx.id}${acc ? `-${acc.id}` : ''}`} minConfirmations={acc.settings.minConfirmations} onAccountClick={onAccountClick} onOperationClick={this.handleClickOperation} diff --git a/src/components/base/Button/index.js b/src/components/base/Button/index.js index ab57d741..47436049 100644 --- a/src/components/base/Button/index.js +++ b/src/components/base/Button/index.js @@ -12,7 +12,7 @@ import fontFamily from 'styles/styled/fontFamily' const Base = styled.button.attrs({ ff: 'Museo Sans|Regular', fontSize: 3, - px: p => (p.small ? 2 : 4), + px: p => (p.primary ? (p.small ? 2 : 4) : 1), })` ${space}; ${color}; @@ -20,8 +20,7 @@ const Base = styled.button.attrs({ ${fontWeight}; ${fontFamily}; border-radius: ${p => p.theme.radii[1]}px; - border: ${p => - p.primary ? 'none' : `2px solid ${p.disabled ? 'transparent' : p.theme.colors.grey}`}; + border: none; cursor: ${p => (p.disabled ? 'default' : 'pointer')}; height: ${p => (p.small ? 30 : 40)}px; outline: none; @@ -31,10 +30,6 @@ const Base = styled.button.attrs({ } &:active { - border: ${p => - p.primary - ? 'none' - : `2px solid ${p.disabled ? 'transparent' : darken(p.theme.colors.grey, 0.2)}`}; color: ${p => (p.primary ? '' : darken(p.theme.colors.grey, 0.2))}; background: ${p => (p.primary ? darken(p.theme.colors.wallet, 0.1) : '')}; } diff --git a/src/components/modals/OperationDetails.js b/src/components/modals/OperationDetails.js index 71ff9c6e..37543075 100644 --- a/src/components/modals/OperationDetails.js +++ b/src/components/modals/OperationDetails.js @@ -1,63 +1,148 @@ // @flow import React from 'react' +import { shell } from 'electron' +import { translate } from 'react-i18next' import styled from 'styled-components' +import moment from 'moment' + +import type { T } from 'types/common' import { MODAL_OPERATION_DETAILS } from 'constants' import Box from 'components/base/Box' import Button from 'components/base/Button' import Bar from 'components/base/Bar' +import FormattedVal from 'components/base/FormattedVal' import Modal, { ModalBody, ModalTitle, ModalFooter, ModalContent } from 'components/base/Modal' +import ConfirmationCheck from 'components/OperationsList/ConfirmationCheck' + +const Line = styled(Box).attrs({ + horizontal: true, +})`` -const ColLeft = styled(Box)` +const ColLeft = styled(Box).attrs({ + color: 'smoke', + ff: 'Open Sans', + fontSize: 4, +})` width: 95px; ` +const ColRight = styled(Box).attrs({ + fontSize: 4, + ff: 'Open Sans', + color: 'dark', + shrink: true, +})` + word-break: break-all; +` -const OperationDetails = () => ( +const CanSelect = styled.div` + user-select: text; +` + +const B = styled(Bar).attrs({ + color: 'lightGrey', + size: 1, +})`` + +const OperationDetails = ({ t }: { t: T }) => ( { - const { operation, account } = data + const { operation, account, type, counterValue, fiat } = data + + const { name, unit, settings: { minConfirmations } } = account + const { id, amount, confirmations, receivedAt, from, to } = operation + + const isConfirmed = confirmations >= minConfirmations return ( Operation details - - {operation.amount} + + + + + + + + + + - + Acccount - {account.name} - - - + {name} + + + Date - {operation.receivedAt} - - - + {moment(receivedAt).format('LLL')} + + + Status - {operation.confirmations} - - - + + + {isConfirmed + ? t('operationDetails:confirmed') + : t('operationDetails:notConfirmed')} + + ({confirmations}) + + + + From - {operation.from.join(',')} - - + {from.map(v => {v})} + + + To - {operation.to.join(',')} - - + {to.map(v => {v})} + + + Identifier - {operation.id} - + + {id} + + - - + + ) @@ -65,4 +150,4 @@ const OperationDetails = () => ( /> ) -export default OperationDetails +export default translate()(OperationDetails) diff --git a/src/icons/Cross.js b/src/icons/Cross.js index 545c0003..98840d0b 100644 --- a/src/icons/Cross.js +++ b/src/icons/Cross.js @@ -3,10 +3,10 @@ import React from 'react' export default ({ size, ...p }: { size: number }) => ( - + ) diff --git a/src/internals/accounts/sync.js b/src/internals/accounts/sync.js index 357772c3..866e787e 100644 --- a/src/internals/accounts/sync.js +++ b/src/internals/accounts/sync.js @@ -6,7 +6,7 @@ const network = networks[1] function syncAccount({ id, operations, ...currentAccount }) { const hdnode = getHDNode({ xpub58: id, network }) - const allTxsHash = operations.map(t => t.hash) + const allTxsHash = operations.map(t => t.id) return getAccount({ hdnode, network, allTxsHash, segwit: true, ...currentAccount }).then( account => ({ id, diff --git a/src/main/menu.js b/src/main/menu.js index 50e2d8e9..9d997036 100644 --- a/src/main/menu.js +++ b/src/main/menu.js @@ -21,6 +21,20 @@ const template = [ ], [], ), + ...[ + { + label: 'Edit', + submenu: [ + { label: 'Undo', accelerator: 'CmdOrCtrl+Z', selector: 'undo:' }, + { label: 'Redo', accelerator: 'Shift+CmdOrCtrl+Z', selector: 'redo:' }, + { type: 'separator' }, + { label: 'Cut', accelerator: 'CmdOrCtrl+X', selector: 'cut:' }, + { label: 'Copy', accelerator: 'CmdOrCtrl+C', selector: 'copy:' }, + { label: 'Paste', accelerator: 'CmdOrCtrl+V', selector: 'paste:' }, + { label: 'Select All', accelerator: 'CmdOrCtrl+A', selector: 'selectAll:' }, + ], + }, + ], ...props( process.platform === 'darwin' || __DEV__ || DEV_TOOLS, [ diff --git a/static/i18n/en/operationDetails.yml b/static/i18n/en/operationDetails.yml new file mode 100644 index 00000000..9890c32e --- /dev/null +++ b/static/i18n/en/operationDetails.yml @@ -0,0 +1,2 @@ +confirmed: Confirmed +notConfirmed: Not confirmed diff --git a/yarn.lock b/yarn.lock index 1085a6a4..d23dfa58 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1021,12 +1021,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.1.tgz#ff53ebca45957347f27ff4666a31499fbb4c4ddd" +babel-jest@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.3.tgz#4b7a0b6041691bbd422ab49b3b73654a49a6627a" dependencies: babel-plugin-istanbul "^4.1.5" - babel-preset-jest "^22.4.1" + babel-preset-jest "^22.4.3" babel-loader@^7.1.2: version "7.1.3" @@ -1070,9 +1070,9 @@ babel-plugin-istanbul@^4.1.5: istanbul-lib-instrument "^1.7.5" test-exclude "^4.1.1" -babel-plugin-jest-hoist@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.1.tgz#d712fe5da8b6965f3191dacddbefdbdf4fb66d63" +babel-plugin-jest-hoist@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz#7d8bcccadc2667f96a0dcc6afe1891875ee6c14a" babel-plugin-minify-builtins@^0.2.0: version "0.2.0" @@ -1633,11 +1633,11 @@ babel-preset-flow@^6.23.0: dependencies: babel-plugin-transform-flow-strip-types "^6.22.0" -babel-preset-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.1.tgz#efa2e5f5334242a9457a068452d7d09735db172a" +babel-preset-jest@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156" dependencies: - babel-plugin-jest-hoist "^22.4.1" + babel-plugin-jest-hoist "^22.4.3" babel-plugin-syntax-object-rest-spread "^6.13.0" babel-preset-minify@^0.2.0: @@ -4091,9 +4091,9 @@ eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@^4.19.0: - version "4.19.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.0.tgz#9e900efb5506812ac374557034ef6f5c3642fc4c" +eslint@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" @@ -4290,6 +4290,17 @@ expect@^22.4.0: jest-message-util "^22.4.0" jest-regex-util "^22.1.0" +expect@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^22.4.3" + jest-get-type "^22.4.3" + jest-matcher-utils "^22.4.3" + jest-message-util "^22.4.3" + jest-regex-util "^22.4.3" + express@^4.16.2: version "4.16.2" resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" @@ -5901,15 +5912,15 @@ isurl@^1.0.0-alpha5: has-to-string-tag-x "^1.2.0" is-object "^1.0.1" -jest-changed-files@^22.2.0: - version "22.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.2.0.tgz#517610c4a8ca0925bdc88b0ca53bd678aa8d019e" +jest-changed-files@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.4.3.tgz#8882181e022c38bd46a2e4d18d44d19d90a90fb2" dependencies: throat "^4.0.0" -jest-cli@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.2.tgz#e6546dc651e13d164481aa3e76e53ac4f4edab06" +jest-cli@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.3.tgz#bf16c4a5fb7edc3fa5b9bb7819e34139e88a72c7" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -5922,20 +5933,20 @@ jest-cli@^22.4.2: istanbul-lib-coverage "^1.1.1" istanbul-lib-instrument "^1.8.0" istanbul-lib-source-maps "^1.2.1" - jest-changed-files "^22.2.0" - jest-config "^22.4.2" - jest-environment-jsdom "^22.4.1" - jest-get-type "^22.1.0" - jest-haste-map "^22.4.2" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" - jest-resolve-dependencies "^22.1.0" - jest-runner "^22.4.2" - jest-runtime "^22.4.2" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - jest-validate "^22.4.2" - jest-worker "^22.2.2" + jest-changed-files "^22.4.3" + jest-config "^22.4.3" + jest-environment-jsdom "^22.4.3" + jest-get-type "^22.4.3" + jest-haste-map "^22.4.3" + jest-message-util "^22.4.3" + jest-regex-util "^22.4.3" + jest-resolve-dependencies "^22.4.3" + jest-runner "^22.4.3" + jest-runtime "^22.4.3" + jest-snapshot "^22.4.3" + jest-util "^22.4.3" + jest-validate "^22.4.3" + jest-worker "^22.4.3" micromatch "^2.3.11" node-notifier "^5.2.1" realpath-native "^1.0.0" @@ -5962,6 +5973,22 @@ jest-config@^22.4.2: jest-validate "^22.4.2" pretty-format "^22.4.0" +jest-config@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.3.tgz#0e9d57db267839ea31309119b41dc2fa31b76403" + dependencies: + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^22.4.3" + jest-environment-node "^22.4.3" + jest-get-type "^22.4.3" + jest-jasmine2 "^22.4.3" + jest-regex-util "^22.4.3" + jest-resolve "^22.4.3" + jest-util "^22.4.3" + jest-validate "^22.4.3" + pretty-format "^22.4.3" + jest-diff@^22.4.0: version "22.4.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.0.tgz#384c2b78519ca44ca126382df53f134289232525" @@ -5971,9 +5998,18 @@ jest-diff@^22.4.0: jest-get-type "^22.1.0" pretty-format "^22.4.0" -jest-docblock@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8" +jest-diff@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + +jest-docblock@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19" dependencies: detect-newline "^2.1.0" @@ -5985,6 +6021,14 @@ jest-environment-jsdom@^22.4.1: jest-util "^22.4.1" jsdom "^11.5.1" +jest-environment-jsdom@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz#d67daa4155e33516aecdd35afd82d4abf0fa8a1e" + dependencies: + jest-mock "^22.4.3" + jest-util "^22.4.3" + jsdom "^11.5.1" + jest-environment-node@^22.4.1: version "22.4.1" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.4.1.tgz#418850eb654596b8d6e36c2021cbedbc23df8e16" @@ -5992,19 +6036,30 @@ jest-environment-node@^22.4.1: jest-mock "^22.2.0" jest-util "^22.4.1" +jest-environment-node@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.4.3.tgz#54c4eaa374c83dd52a9da8759be14ebe1d0b9129" + dependencies: + jest-mock "^22.4.3" + jest-util "^22.4.3" + jest-get-type@^22.1.0: version "22.1.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9" -jest-haste-map@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4" +jest-get-type@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + +jest-haste-map@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^22.4.0" - jest-serializer "^22.4.0" - jest-worker "^22.2.2" + jest-docblock "^22.4.3" + jest-serializer "^22.4.3" + jest-worker "^22.4.3" micromatch "^2.3.11" sane "^2.0.0" @@ -6024,11 +6079,27 @@ jest-jasmine2@^22.4.2: jest-util "^22.4.1" source-map-support "^0.5.0" -jest-leak-detector@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.0.tgz#64da77f05b001c96d2062226e079f89989c4aa2f" +jest-jasmine2@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz#4daf64cd14c793da9db34a7c7b8dcfe52a745965" dependencies: - pretty-format "^22.4.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^22.4.3" + graceful-fs "^4.1.11" + is-generator-fn "^1.0.0" + jest-diff "^22.4.3" + jest-matcher-utils "^22.4.3" + jest-message-util "^22.4.3" + jest-snapshot "^22.4.3" + jest-util "^22.4.3" + source-map-support "^0.5.0" + +jest-leak-detector@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" + dependencies: + pretty-format "^22.4.3" jest-matcher-utils@^22.4.0: version "22.4.0" @@ -6038,6 +6109,14 @@ jest-matcher-utils@^22.4.0: jest-get-type "^22.1.0" pretty-format "^22.4.0" +jest-matcher-utils@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" + dependencies: + chalk "^2.0.1" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + jest-message-util@^22.4.0: version "22.4.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.4.0.tgz#e3d861df16d2fee60cb2bc8feac2188a42579642" @@ -6048,19 +6127,37 @@ jest-message-util@^22.4.0: slash "^1.0.0" stack-utils "^1.0.1" +jest-message-util@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.4.3.tgz#cf3d38aafe4befddbfc455e57d65d5239e399eb7" + dependencies: + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + stack-utils "^1.0.1" + jest-mock@^22.2.0: version "22.2.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.2.0.tgz#444b3f9488a7473adae09bc8a77294afded397a7" +jest-mock@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.4.3.tgz#f63ba2f07a1511772cdc7979733397df770aabc7" + jest-regex-util@^22.1.0: version "22.1.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.1.0.tgz#5daf2fe270074b6da63e5d85f1c9acc866768f53" -jest-resolve-dependencies@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz#340e4139fb13315cd43abc054e6c06136be51e31" +jest-regex-util@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.4.3.tgz#a826eb191cdf22502198c5401a1fc04de9cef5af" + +jest-resolve-dependencies@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" dependencies: - jest-regex-util "^22.1.0" + jest-regex-util "^22.4.3" jest-resolve@^22.4.2: version "22.4.2" @@ -6069,39 +6166,46 @@ jest-resolve@^22.4.2: browser-resolve "^1.11.2" chalk "^2.0.1" -jest-runner@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.2.tgz#19390ea9d99f768973e16f95a1efa351c0017e87" +jest-resolve@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" + dependencies: + browser-resolve "^1.11.2" + chalk "^2.0.1" + +jest-runner@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.3.tgz#298ddd6a22b992c64401b4667702b325e50610c3" dependencies: exit "^0.1.2" - jest-config "^22.4.2" - jest-docblock "^22.4.0" - jest-haste-map "^22.4.2" - jest-jasmine2 "^22.4.2" - jest-leak-detector "^22.4.0" - jest-message-util "^22.4.0" - jest-runtime "^22.4.2" - jest-util "^22.4.1" - jest-worker "^22.2.2" + jest-config "^22.4.3" + jest-docblock "^22.4.3" + jest-haste-map "^22.4.3" + jest-jasmine2 "^22.4.3" + jest-leak-detector "^22.4.3" + jest-message-util "^22.4.3" + jest-runtime "^22.4.3" + jest-util "^22.4.3" + jest-worker "^22.4.3" throat "^4.0.0" -jest-runtime@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.2.tgz#0de0444f65ce15ee4f2e0055133fc7c17b9168f3" +jest-runtime@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.3.tgz#b69926c34b851b920f666c93e86ba2912087e3d0" dependencies: babel-core "^6.0.0" - babel-jest "^22.4.1" + babel-jest "^22.4.3" babel-plugin-istanbul "^4.1.5" chalk "^2.0.1" convert-source-map "^1.4.0" exit "^0.1.2" graceful-fs "^4.1.11" - jest-config "^22.4.2" - jest-haste-map "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.2" + jest-config "^22.4.3" + jest-haste-map "^22.4.3" + jest-regex-util "^22.4.3" + jest-resolve "^22.4.3" + jest-util "^22.4.3" + jest-validate "^22.4.3" json-stable-stringify "^1.0.1" micromatch "^2.3.11" realpath-native "^1.0.0" @@ -6110,9 +6214,9 @@ jest-runtime@^22.4.2: write-file-atomic "^2.1.0" yargs "^10.0.3" -jest-serializer@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.0.tgz#b5d145b98c4b0d2c20ab686609adbb81fe23b566" +jest-serializer@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436" jest-snapshot@^22.4.0: version "22.4.0" @@ -6125,6 +6229,17 @@ jest-snapshot@^22.4.0: natural-compare "^1.4.0" pretty-format "^22.4.0" +jest-snapshot@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" + dependencies: + chalk "^2.0.1" + jest-diff "^22.4.3" + jest-matcher-utils "^22.4.3" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^22.4.3" + jest-util@^22.4.1: version "22.4.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.1.tgz#dd17c3bdb067f8e90591563ec0c42bf847dc249f" @@ -6137,6 +6252,18 @@ jest-util@^22.4.1: mkdirp "^0.5.1" source-map "^0.6.0" +jest-util@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.3.tgz#c70fec8eec487c37b10b0809dc064a7ecf6aafac" + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + jest-message-util "^22.4.3" + mkdirp "^0.5.1" + source-map "^0.6.0" + jest-validate@^22.4.0, jest-validate@^22.4.2: version "22.4.2" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.2.tgz#e789a4e056173bf97fe797a2df2d52105c57d4f4" @@ -6147,18 +6274,28 @@ jest-validate@^22.4.0, jest-validate@^22.4.2: leven "^2.1.0" pretty-format "^22.4.0" -jest-worker@^22.2.2: - version "22.2.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390" +jest-validate@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.3.tgz#0780954a5a7daaeec8d3c10834b9280865976b30" + dependencies: + chalk "^2.0.1" + jest-config "^22.4.3" + jest-get-type "^22.4.3" + leven "^2.1.0" + pretty-format "^22.4.3" + +jest-worker@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b" dependencies: merge-stream "^1.0.1" -jest@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.2.tgz#34012834a49bf1bdd3bc783850ab44e4499afc20" +jest@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.3.tgz#2261f4b117dc46d9a4a1a673d2150958dee92f16" dependencies: import-local "^1.0.0" - jest-cli "^22.4.2" + jest-cli "^22.4.3" js-base64@^2.1.9: version "2.4.3" @@ -8052,6 +8189,13 @@ pretty-format@^22.4.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" +pretty-format@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + private@^0.1.6, private@^0.1.7, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -8362,9 +8506,9 @@ react-html-attributes@^1.3.0: dependencies: html-element-attributes "^1.0.0" -react-i18next@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-7.5.0.tgz#96a92ba7492edb746975eae316534b42423362fe" +react-i18next@^7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-7.5.1.tgz#5fe4cdfd2ecba22cc967213d880ab4cdd2c2ce61" dependencies: hoist-non-react-statics "^2.3.1" html-parse-stringify2 "2.0.1"