Browse Source

Merge pull request #144 from loeck/master

Add asc|desc for AccountOrders, clean DropDown, update dependencies
master
Meriadec Pillet 7 years ago
committed by GitHub
parent
commit
4a3e1f3724
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      package.json
  2. 8
      src/actions/accounts.js
  3. 111
      src/components/DashboardPage/AccountsOrder.js
  4. 3
      src/components/DashboardPage/index.js
  5. 114
      src/components/base/DropDown/index.js
  6. 2
      src/icons/ArrowDown.js
  7. 4
      static/i18n/en/translation.yml
  8. 6
      static/i18n/fr/translation.yml
  9. 159
      yarn.lock

10
package.json

@ -51,7 +51,7 @@
"@ledgerhq/hw-app-eth": "^4.0.0",
"@ledgerhq/hw-transport": "^4.0.0",
"@ledgerhq/hw-transport-node-hid": "^4.0.0",
"axios": "^0.17.1",
"axios": "^0.18.0",
"babel-runtime": "^6.26.0",
"bcryptjs": "^2.4.3",
"bitcoinjs-lib": "^3.3.2",
@ -76,10 +76,10 @@
"raven-js": "^3.22.3",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-i18next": "^7.3.6",
"react-i18next": "^7.4.0",
"react-mortal": "^3.2.0",
"react-motion": "^0.5.2",
"react-qr-reader": "^2.0.1",
"react-qr-reader": "^2.1.0",
"react-redux": "^5.0.7",
"react-router": "^4.2.0",
"react-router-dom": "^4.2.2",
@ -117,7 +117,7 @@
"electron": "1.8.2",
"electron-builder": "^20.0.5",
"electron-devtools-installer": "^2.2.3",
"electron-webpack": "1.12.1",
"electron-webpack": "1.13.0",
"eslint": "^4.18.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-config-prettier": "^2.9.0",
@ -125,7 +125,7 @@
"eslint-plugin-flowtype": "^2.45.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-react": "^7.6.1",
"eslint-plugin-react": "^7.7.0",
"flow-bin": "^0.66.0",
"flow-typed": "^2.3.0",
"hard-source-webpack-plugin": "^0.5.18",

8
src/actions/accounts.js

@ -9,15 +9,17 @@ import type { Account } from 'types/common'
import { startSyncAccounts } from 'renderer/events'
function sortAccounts(accounts, orderAccounts) {
const [order, sort] = orderAccounts.split('|')
const accountsSorted = sortBy(accounts, a => {
if (orderAccounts === 'balance') {
if (order === 'balance') {
return a.data.balance
}
return a[orderAccounts]
return a[order]
})
if (orderAccounts === 'balance') {
if (sort === 'asc') {
accountsSorted.reverse()
}

111
src/components/DashboardPage/AccountsOrder.js

@ -6,7 +6,6 @@ import { translate } from 'react-i18next'
import { connect } from 'react-redux'
import type { MapStateToProps } from 'react-redux'
import type { T } from 'types/common'
import { getOrderAccounts } from 'reducers/settings'
@ -14,9 +13,13 @@ import { getOrderAccounts } from 'reducers/settings'
import { updateOrderAccounts } from 'actions/accounts'
import { saveSettings } from 'actions/settings'
import DropDown from 'components/base/DropDown'
import Box from 'components/base/Box'
import DropDown, { DropDownItem } from 'components/base/DropDown'
import Text from 'components/base/Text'
import IconAngleDown from 'icons/AngleDown'
import IconArrowDown from 'icons/ArrowDown'
import IconArrowUp from 'icons/ArrowUp'
const mapStateToProps: MapStateToProps<*, *, *> = state => ({
orderAccounts: getOrderAccounts(state),
@ -57,11 +60,38 @@ class AccountsOrder extends Component<Props, State> {
})
}
render() {
const { t } = this.props
getCurrentOrder = () => {
const { cachedValue } = this.state
if (cachedValue !== null) {
return cachedValue.split('|')[1]
}
return 'desc'
}
getCurrentValue = () => {
const { cachedValue } = this.state
const sortItems = [
if (cachedValue !== null) {
return cachedValue.split('|')[0]
}
return null
}
getReverseOrder = () => {
const currentOrder = this.getCurrentOrder()
return currentOrder === 'desc' ? 'asc' : 'desc'
}
getSortItems = () => {
const { t } = this.props
const currentOrder = this.getCurrentOrder()
return [
{
key: 'name',
label: t('orderAccounts.name'),
@ -74,21 +104,80 @@ class AccountsOrder extends Component<Props, State> {
key: 'type',
label: t('orderAccounts.type'),
},
]
].map(item => ({
...item,
key: `${item.key}|${currentOrder}`,
}))
}
renderItem = ({ item, isHighlighted, isActive }) => {
const [, order] = item.key.split('|')
return (
<DropDownItem
alignItems="center"
justifyContent="flex-start"
horizontal
isHighlighted={isHighlighted}
isActive={isActive}
flow={2}
>
<Box grow>{item.label}</Box>
{isActive && (
<Box alignItems="center" justifyContent="center" color="dodgerBlue">
{order === 'desc' ? (
<IconArrowUp height={14} width={14} />
) : (
<IconArrowDown height={14} width={14} />
)}
</Box>
)}
</DropDownItem>
)
}
render() {
const { t } = this.props
const { cachedValue } = this.state
const sortItems = this.getSortItems()
return (
<DropDown
onChange={item => this.setAccountOrder(item.key)}
flow={1}
horizontal
items={sortItems}
renderItem={this.renderItem}
keepOpenOnChange
onStateChange={({ selectedItem: item }) => {
if (!item) {
return
}
const currentAccountOrder = this.getCurrentValue()
const [accountOrder] = item.key.split('|')
const order =
currentAccountOrder === accountOrder ? this.getReverseOrder() : this.getCurrentOrder()
this.setAccountOrder(`${accountOrder}|${order}`)
}}
value={sortItems.find(item => item.key === cachedValue)}
>
<Text ff="Open Sans|SemiBold" fontSize={4}>
{'Sort by'}
</Text>
<Box
alignItems="center"
color="dark"
ff="Open Sans|SemiBold"
fontSize={4}
flow={1}
color="dark"
fontSize={4}
horizontal
alignItems="center"
>
<Text color="dark">{t(`orderAccounts.${cachedValue || 'balance'}`)}</Text>
<Text color="dark">{t(`orderAccounts.${this.getCurrentValue() || 'balance'}`)}</Text>
<IconAngleDown height={7} width={8} />
</Box>
</DropDown>
)
}

3
src/components/DashboardPage/index.js

@ -250,9 +250,6 @@ class DashboardPage extends PureComponent<Props, State> {
{'Accounts'}
</Text>
<Box ml="auto" horizontal flow={1}>
<Text ff="Open Sans|SemiBold" fontSize={4}>
{'Sort by'}
</Text>
<AccountsOrder />
</Box>
</Box>

114
src/components/base/DropDown/index.js

@ -7,19 +7,6 @@ import Downshift from 'downshift'
import Box from 'components/base/Box'
type ItemType = {
key: string,
label: any,
}
type Props = {
children: any,
offsetTop: number | string,
items: Array<ItemType>,
value?: ItemType | null,
onChange?: ItemType => void,
}
const Trigger = styled(Box)`
outline: none;
cursor: pointer;
@ -29,23 +16,24 @@ const Drop = styled(Box).attrs({
bg: 'white',
boxShadow: 0,
borderRadius: 1,
p: 2,
})`
position: absolute;
top: 100%;
right: 0;
> * + * {
border-top: 1px solid ${p => p.theme.colors.argile};
}
`
const Item = styled(Box).attrs({
py: 2,
fontSize: 3,
px: 4,
bg: p => (p.isHighlighted ? 'pearl' : ''),
export const DropDownItem = styled(Box).attrs({
borderRadius: 1,
justifyContent: 'center',
ff: p => (p.isActive ? 'Open Sans|SemiBold' : 'Open Sans'),
fontSize: 4,
px: 3,
color: p => (p.isHighlighted || p.isActive ? 'dark' : 'warnGrey'),
bg: p => (p.isActive ? 'cream' : ''),
})`
cursor: pointer;
height: 40px;
white-space: nowrap;
`
@ -53,30 +41,89 @@ function itemToString(item) {
return item ? item.label : ''
}
export type DropDownItemType = {
key: string,
label: any,
}
type Props = {
children: any,
items: Array<DropDownItemType>,
keepOpenOnChange?: boolean,
offsetTop: number | string,
onChange?: DropDownItemType => void,
onStateChange?: Function,
renderItem: Object => any,
value?: DropDownItemType | null,
}
class DropDown extends PureComponent<Props> {
static defaultProps = {
keepOpenOnChange: false,
value: null,
onChange: noop,
onStateChange: noop,
offsetTop: 1,
renderItem: ({
item,
isHighlighted,
isActive,
}: {
item: DropDownItemType,
isHighlighted: boolean,
isActive: boolean,
}) => (
<DropDownItem isHighlighted={isHighlighted} isActive={isActive}>
{item.label}
</DropDownItem>
),
}
renderItems = (items: Array<ItemType>, selectedItem: ItemType, downshiftProps: Object) => {
const { offsetTop } = this.props
handleStateChange = (state: Object, changes: Object) => {
const { keepOpenOnChange, onStateChange } = this.props
if (onStateChange) {
onStateChange(changes)
}
switch (changes.type) {
case Downshift.stateChangeTypes.keyDownEscape:
case Downshift.stateChangeTypes.mouseUp:
case Downshift.stateChangeTypes.clickButton:
return changes
default:
return {
...changes,
...(keepOpenOnChange
? {
isOpen: true,
}
: {}),
}
}
}
renderItems = (
items: Array<DropDownItemType>,
selectedItem: DropDownItemType,
downshiftProps: Object,
) => {
const { offsetTop, renderItem } = this.props
const { getItemProps, highlightedIndex } = downshiftProps
return (
<Drop mt={offsetTop}>
{items.map((item, i) => {
const { key, label, ...props } = item
const { key } = item
return (
<Item
isHighlighted={highlightedIndex === i}
key={item.key}
{...getItemProps({ item })}
{...props}
>
{item.label}
</Item>
<Box key={key} {...getItemProps({ item })}>
{renderItem({
item,
isHighlighted: highlightedIndex === i,
isActive: item === selectedItem,
})}
</Box>
)
})}
</Drop>
@ -88,6 +135,7 @@ class DropDown extends PureComponent<Props> {
return (
<Downshift
onChange={onChange}
stateReducer={this.handleStateChange}
itemToString={itemToString}
selectedItem={value}
render={({

2
src/icons/ArrowDown.js

@ -6,7 +6,7 @@ export default (props: Object) => (
<svg viewBox="0 0 16 16" {...props}>
<path
fill="currentColor"
transform={`rotate(180, ${props.height / 2}, ${props.width / 2})`}
transform="matrix(1, 0, 0, -1, 0, 16)"
d="M7.25 3.81L4.53 6.53a.75.75 0 0 1-1.06-1.06l4-4a.75.75 0 0 1 1.06 0l4 4a.75.75 0 0 1-1.06 1.06L8.75 3.81V14a.75.75 0 1 1-1.5 0V3.81z"
/>
</svg>

4
static/i18n/en/translation.yml

@ -9,9 +9,9 @@ language:
fr: French
orderAccounts:
name: Name
name: Alphabetic
balance: Balance
type: Type
type: Cryptocurrency
sidebar:
menu: Menu

6
static/i18n/fr/translation.yml

@ -9,9 +9,9 @@ language:
fr: Français
orderAccounts:
name: Nom
balance: Solde
type: Type
name: Alphabetic
balance: Balance
type: Cryptocurrency
sidebar:
menu: Menu

159
yarn.lock

@ -389,7 +389,7 @@
version "8.9.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.9.4.tgz#dfd327582a06c114eb6e0441fa3d6fab35edad48"
"@types/webpack-env@^1.13.4":
"@types/webpack-env@^1.13.5":
version "1.13.5"
resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.5.tgz#ca854e9fbdbcdf45d7376882875f28e2c60593f8"
@ -460,7 +460,7 @@ ajv@^4.9.1:
co "^4.6.0"
json-stable-stringify "^1.0.1"
ajv@^5.0.0, ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0, ajv@^5.5.0:
ajv@^5.0.0, ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0:
version "5.5.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
dependencies:
@ -795,6 +795,13 @@ axios@^0.17.1:
follow-redirects "^1.2.5"
is-buffer "^1.1.5"
axios@^0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102"
dependencies:
follow-redirects "^1.3.0"
is-buffer "^1.1.5"
axobject-query@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0"
@ -809,7 +816,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
babel-core@^6.24.1, babel-core@^6.26.0:
babel-core@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
dependencies:
@ -1025,14 +1032,6 @@ babel-messages@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
babel-minify-webpack-plugin@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/babel-minify-webpack-plugin/-/babel-minify-webpack-plugin-0.2.0.tgz#ef9694d11a1b8ab8f3204d89f5c9278dd28fc2a9"
dependencies:
babel-core "^6.24.1"
babel-preset-minify "^0.2.0"
webpack-sources "^1.0.1"
babel-plugin-check-es2015-constants@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
@ -2832,7 +2831,7 @@ css-color-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
css-hot-loader@^1.3.6:
css-hot-loader@^1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/css-hot-loader/-/css-hot-loader-1.3.7.tgz#e08a2343d3f5e22043da50d86bbb4310f535be0e"
dependencies:
@ -3338,36 +3337,7 @@ ejs@^2.5.7:
version "2.5.7"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
electron-builder-lib@20.0.5:
version "20.0.5"
resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.0.5.tgz#dd1e673eae548fe6c2f73bd066be5d68469c4e19"
dependencies:
"7zip-bin" "~3.1.0"
app-builder-bin "1.3.5"
async-exit-hook "^2.0.1"
bluebird-lst "^1.0.5"
builder-util "5.3.0"
builder-util-runtime "4.0.5"
chromium-pickle-js "^0.2.0"
debug "^3.1.0"
ejs "^2.5.7"
electron-osx-sign "0.4.8"
electron-publish "20.0.5"
fs-extra-p "^4.5.0"
hosted-git-info "^2.5.0"
is-ci "^1.1.0"
isbinaryfile "^3.0.2"
js-yaml "^3.10.0"
lazy-val "^1.0.3"
minimatch "^3.0.4"
normalize-package-data "^2.4.0"
plist "^2.1.0"
read-config-file "3.0.0"
sanitize-filename "^1.6.1"
semver "^5.5.0"
temp-file "^3.1.1"
electron-builder-lib@~20.0.5:
electron-builder-lib@20.0.6, electron-builder-lib@~20.0.5:
version "20.0.6"
resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.0.6.tgz#1484108626312026cf5c2188aefe0c33f40bad81"
dependencies:
@ -3397,17 +3367,17 @@ electron-builder-lib@~20.0.5:
temp-file "^3.1.1"
electron-builder@^20.0.5:
version "20.0.5"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-20.0.5.tgz#17a0fae426f19fdbf71efba7c06d9ea29e077382"
version "20.0.6"
resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-20.0.6.tgz#74393c405e70947511e2ca71431f66bab8f3e82a"
dependencies:
bluebird-lst "^1.0.5"
builder-util "5.3.0"
builder-util-runtime "4.0.5"
chalk "^2.3.0"
dmg-builder "4.1.0"
electron-builder-lib "20.0.5"
electron-builder-lib "20.0.6"
electron-download-tf "4.3.4"
fs-extra-p "^4.5.0"
fs-extra-p "^4.5.2"
is-ci "^1.1.0"
lazy-val "^1.0.3"
read-config-file "3.0.0"
@ -3467,17 +3437,6 @@ electron-osx-sign@0.4.8:
minimist "^1.2.0"
plist "^2.1.0"
electron-publish@20.0.5:
version "20.0.5"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-20.0.5.tgz#e2f37d86ee641e56ac3c04ecb88774a157b3764e"
dependencies:
bluebird-lst "^1.0.5"
builder-util "^5.3.0"
builder-util-runtime "^4.0.5"
chalk "^2.3.0"
fs-extra-p "^4.5.0"
mime "^2.2.0"
electron-publish@20.0.6:
version "20.0.6"
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-20.0.6.tgz#24a3c508428eea31813e064f80468f626dff1d87"
@ -3524,32 +3483,32 @@ electron-webpack-js@~1.2.0:
babel-plugin-syntax-dynamic-import "^6.18.0"
babel-preset-env "^1.6.1"
electron-webpack@1.12.1:
version "1.12.1"
resolved "https://registry.yarnpkg.com/electron-webpack/-/electron-webpack-1.12.1.tgz#34e424b9d2c5ccc9adac3019173f6899d89f4498"
electron-webpack@1.13.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/electron-webpack/-/electron-webpack-1.13.0.tgz#f123dd94e660d966cce45950bf39f8af10755e78"
dependencies:
"@types/webpack-env" "^1.13.4"
"@types/webpack-env" "^1.13.5"
async-exit-hook "^2.0.1"
babel-minify-webpack-plugin "^0.2.0"
bluebird-lst "^1.0.5"
chalk "^2.3.0"
chalk "^2.3.1"
crocket "^0.9.11"
css-hot-loader "^1.3.6"
css-hot-loader "^1.3.7"
css-loader "^0.28.9"
debug "^3.1.0"
electron-devtools-installer "^2.2.3"
electron-webpack-js "~1.2.0"
extract-text-webpack-plugin "^3.0.2"
file-loader "^1.1.6"
fs-extra-p "^4.5.0"
file-loader "^1.1.7"
fs-extra-p "^4.5.2"
html-loader "^0.5.5"
html-webpack-plugin "^2.30.1"
lazy-val "^1.0.3"
node-loader "^0.6.0"
read-config-file "^2.1.1"
read-config-file "^3.0.0"
semver "^5.5.0"
source-map-support "^0.5.3"
style-loader "^0.20.1"
style-loader "^0.20.2"
uglifyjs-webpack-plugin "^1.2.0"
url-loader "^0.6.2"
virtual-module-webpack-plugin "^0.3.0"
webpack-dev-server "^2.11.1"
@ -3811,9 +3770,9 @@ eslint-plugin-jsx-a11y@^6.0.3:
emoji-regex "^6.1.0"
jsx-ast-utils "^2.0.0"
eslint-plugin-react@^7.6.1:
version "7.6.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.6.1.tgz#5d0e908be599f0c02fbf4eef0c7ed6f29dff7633"
eslint-plugin-react@^7.7.0:
version "7.7.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160"
dependencies:
doctrine "^2.0.2"
has "^1.0.1"
@ -4191,6 +4150,13 @@ file-loader@^1.1.6:
loader-utils "^1.0.2"
schema-utils "^0.3.0"
file-loader@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.7.tgz#0a3ad0fe81695feeed6f2dac324fce500c30f0a0"
dependencies:
loader-utils "^1.0.2"
schema-utils "^0.4.5"
filename-regex@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
@ -4302,7 +4268,7 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1"
readable-stream "^2.0.4"
follow-redirects@^1.2.5:
follow-redirects@^1.2.5, follow-redirects@^1.3.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa"
dependencies:
@ -5624,9 +5590,9 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
"jsqr@git+https://github.com/cozmo/jsQR.git":
jsqr@^1.0.1:
version "1.0.1"
resolved "git+https://github.com/cozmo/jsQR.git#1fb946a235abdc7709f04cd0e4aa316a3b6eae70"
resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.0.1.tgz#254994e6513bf23ba9ce10578fe6f6781f7f01de"
jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1:
version "2.0.1"
@ -5699,7 +5665,6 @@ ledger-test-library@KhalilBellakrid/ledger-test-library:
resolved "https://codeload.github.com/KhalilBellakrid/ledger-test-library/tar.gz/250c9fc992f498360f6396d4ed3ea1bb7637d863"
dependencies:
axios "^0.17.1"
bindings "^1.3.0"
nan "^2.6.2"
prebuild-install "^2.2.2"
@ -7583,9 +7548,9 @@ react-html-attributes@^1.3.0:
dependencies:
html-element-attributes "^1.0.0"
react-i18next@^7.3.6:
version "7.3.6"
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-7.3.6.tgz#3e4fdd0be7735aa53343720684247ba7f6cfd51a"
react-i18next@^7.4.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-7.4.0.tgz#07a336e49fc8f2599d08136d73134e3dc4830b49"
dependencies:
hoist-non-react-statics "2.3.1"
html-parse-stringify2 "2.0.1"
@ -7643,13 +7608,13 @@ react-portal@^4.1.2:
dependencies:
prop-types "^15.5.8"
react-qr-reader@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/react-qr-reader/-/react-qr-reader-2.0.1.tgz#f7be785e8c880d7e68423fc129802994f70b6b58"
react-qr-reader@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/react-qr-reader/-/react-qr-reader-2.1.0.tgz#f429c196675a710926da1cc9057223b79358da75"
dependencies:
jsqr "https://github.com/cozmo/jsQR.git"
jsqr "^1.0.1"
prop-types "^15.5.8"
webrtc-adapter "^5.0.6"
webrtc-adapter "^6.1.1"
react-redux@^5.0.5, react-redux@^5.0.7:
version "5.0.7"
@ -7779,7 +7744,7 @@ reactcss@^1.2.0:
dependencies:
lodash "^4.0.1"
read-config-file@3.0.0:
read-config-file@3.0.0, read-config-file@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-3.0.0.tgz#771def5184a7f76abaf6b2c82f20cb983775b8ea"
dependencies:
@ -7793,20 +7758,6 @@ read-config-file@3.0.0:
json5 "^0.5.1"
lazy-val "^1.0.3"
read-config-file@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-2.1.1.tgz#bd6c2b93e97a82a35f71a3c9eb43161e16692054"
dependencies:
ajv "^5.5.0"
ajv-keywords "^2.1.0"
bluebird-lst "^1.0.5"
dotenv "^4.0.0"
dotenv-expand "^4.0.1"
fs-extra-p "^4.5.0"
js-yaml "^3.10.0"
json5 "^0.5.1"
lazy-val "^1.0.3"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@ -8275,7 +8226,7 @@ schema-utils@^0.3.0:
dependencies:
ajv "^5.0.0"
schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3:
schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3, schema-utils@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
dependencies:
@ -8857,7 +8808,7 @@ style-loader@^0.19.1:
loader-utils "^1.0.2"
schema-utils "^0.3.0"
style-loader@^0.20.1:
style-loader@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.2.tgz#851b373c187890331776e9cde359eea9c95ecd00"
dependencies:
@ -9225,7 +9176,7 @@ uglifyjs-webpack-plugin@^0.4.6:
uglify-js "^2.8.29"
webpack-sources "^1.0.1"
uglifyjs-webpack-plugin@^1.1.6:
uglifyjs-webpack-plugin@^1.1.6, uglifyjs-webpack-plugin@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.0.tgz#f706fa4c655000a086b4a97c7d835ed0f6e9b0ef"
dependencies:
@ -9603,9 +9554,9 @@ webpack@^3.10.0, webpack@^3.11.0:
webpack-sources "^1.0.1"
yargs "^8.0.2"
webrtc-adapter@^5.0.6:
version "5.0.6"
resolved "https://registry.yarnpkg.com/webrtc-adapter/-/webrtc-adapter-5.0.6.tgz#7946fca194dadf869bb6c8cae1011dfda03f40c7"
webrtc-adapter@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/webrtc-adapter/-/webrtc-adapter-6.1.1.tgz#83ab2a7e2a364a9a9fd7cd3cad807e2eeb5edec6"
dependencies:
rtcpeerconnection-shim "^1.1.13"
sdp "^2.3.0"

Loading…
Cancel
Save