Browse Source

Merge pull request #862 from mrfelton/refactor/containers-and-routing

Refactor containers and routing
renovate/lint-staged-8.x
JimmyMow 6 years ago
committed by GitHub
parent
commit
029da87a20
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      app/components/Activity/Activity.js
  2. 1
      app/components/Activity/InvoiceModal/InvoiceModal.scss
  3. 99
      app/components/App/App.js
  4. 8
      app/components/App/App.scss
  5. 25
      app/components/Contacts/Network/Network.scss
  6. 19
      app/components/LoadingBolt/LoadingBolt.js
  7. 2
      app/components/LoadingBolt/LoadingBolt.scss
  8. 7
      app/components/Onboarding/Autopilot/Autopilot.scss
  9. 2
      app/components/Onboarding/ConnectionType/ConnectionType.scss
  10. 3
      app/components/Onboarding/FormContainer/FormContainer.js
  11. 15
      app/components/Onboarding/FormContainer/FormContainer.scss
  12. 23
      app/components/Onboarding/Onboarding.js
  13. 0
      app/components/Onboarding/Onboarding.scss
  14. 2
      app/components/Onboarding/Signup/Signup.scss
  15. 37
      app/components/Syncing/Syncing.js
  16. 32
      app/components/Syncing/Syncing.scss
  17. 0
      app/components/Syncing/index.js
  18. 0
      app/components/Syncing/messages.js
  19. 4
      app/components/UI/GlobalStyle.js
  20. 4
      app/components/UI/Range.js
  21. 17
      app/components/UI/Titlebar.js
  22. 3
      app/components/withLoading/index.js
  23. 34
      app/components/withLoading/withLoading.js
  24. 12
      app/containers/Activity.js
  25. 53
      app/containers/App.js
  26. 186
      app/containers/Onboarding.js
  27. 373
      app/containers/Root.js
  28. 21
      app/containers/Syncing.js
  29. 3
      app/index.js
  30. 8
      app/lib/zap/controller.js
  31. 9
      app/reducers/error.js
  32. 13
      app/reducers/index.js
  33. 12
      app/reducers/info.js
  34. 46
      app/reducers/loading.js
  35. 5
      app/reducers/onboarding.js
  36. 3
      app/reducers/ticker.js
  37. 12
      app/store/configureStore.dev.js
  38. 10
      app/store/configureStore.prod.js
  39. 20
      app/translations/af-ZA.json
  40. 20
      app/translations/ar-SA.json
  41. 20
      app/translations/bg-BG.json
  42. 20
      app/translations/ca-ES.json
  43. 20
      app/translations/cs-CZ.json
  44. 20
      app/translations/da-DK.json
  45. 20
      app/translations/de-DE.json
  46. 20
      app/translations/el-GR.json
  47. 20
      app/translations/en.json
  48. 20
      app/translations/es-ES.json
  49. 20
      app/translations/fi-FI.json
  50. 20
      app/translations/fr-FR.json
  51. 20
      app/translations/ga-IE.json
  52. 20
      app/translations/he-IL.json
  53. 20
      app/translations/hi-IN.json
  54. 20
      app/translations/hr-HR.json
  55. 20
      app/translations/hu-HU.json
  56. 20
      app/translations/it-IT.json
  57. 20
      app/translations/ja-JP.json
  58. 20
      app/translations/ko-KR.json
  59. 20
      app/translations/nl-NL.json
  60. 20
      app/translations/no-NO.json
  61. 20
      app/translations/pl-PL.json
  62. 20
      app/translations/pt-BR.json
  63. 20
      app/translations/pt-PT.json
  64. 20
      app/translations/ro-RO.json
  65. 20
      app/translations/ru-RU.json
  66. 20
      app/translations/sr-SP.json
  67. 20
      app/translations/sv-SE.json
  68. 20
      app/translations/tr-TR.json
  69. 20
      app/translations/uk-UA.json
  70. 20
      app/translations/vi-VN.json
  71. 20
      app/translations/zh-CN.json
  72. 20
      app/translations/zh-TW.json
  73. 1
      package.json
  74. 3
      test/unit/components/LoadingBolt.spec.js
  75. 3
      test/unit/zap/controller.spec.js
  76. 438
      yarn.lock

9
app/components/Activity/Activity.js

@ -17,8 +17,8 @@ import styles from './Activity.scss'
import messages from './messages'
class Activity extends Component {
constructor(props, context) {
super(props, context)
constructor(props) {
super(props)
this.renderActivity = this.renderActivity.bind(this)
this.state = {
@ -90,6 +90,7 @@ class Activity extends Component {
activity: { filters, filter, filterPulldown, searchActive, searchText, showExpiredRequests },
changeFilter,
currentActivity,
currentTicker,
showExpiredToggle,
toggleExpiredRequests,
@ -104,7 +105,7 @@ class Activity extends Component {
intl
} = this.props
if (balance.channelBalance === null || balance.walletBalance === null) {
if (!currentTicker || balance.channelBalance === null || balance.walletBalance === null) {
return null
}
@ -242,7 +243,7 @@ Activity.propTypes = {
fetchChannels: PropTypes.func.isRequired,
ticker: PropTypes.object.isRequired,
currentTicker: PropTypes.object.isRequired,
currentTicker: PropTypes.object,
network: PropTypes.object.isRequired,
showActivityModal: PropTypes.func.isRequired,

1
app/components/Activity/InvoiceModal/InvoiceModal.scss

@ -14,7 +14,6 @@
padding: 30px 0;
.left {
width: 25%;
padding: 0 60px;
text-align: center;

99
app/components/App/App.js

@ -1,27 +1,55 @@
import React, { Component } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import GlobalError from 'components/GlobalError'
import Form from 'components/Form'
import ChannelForm from 'components/Contacts/ChannelForm'
import Network from 'components/Contacts/Network'
import AddChannel from 'components/Contacts/AddChannel'
import ReceiveModal from 'components/Wallet/ReceiveModal'
import ActivityModal from 'components/Activity/ActivityModal'
import Activity from 'containers/Activity'
import { Box } from 'rebass'
import styles from './App.scss'
class App extends Component {
componentWillMount() {
const { fetchInfo, fetchSuggestedNodes, fetchDescribeNetwork } = this.props
// fetch node info
fetchInfo()
// fetch suggested nodes list from zap.jackmallers.com/suggested-peers
fetchSuggestedNodes()
// fetch LN network from nides POV
fetchDescribeNetwork()
class App extends React.Component {
static propTypes = {
form: PropTypes.object.isRequired,
formProps: PropTypes.object.isRequired,
closeForm: PropTypes.func.isRequired,
currentTheme: PropTypes.string.isRequired,
currentTicker: PropTypes.object,
contactsFormProps: PropTypes.object,
networkTabProps: PropTypes.object,
activityModalProps: PropTypes.object,
receiveModalProps: PropTypes.object,
channelFormProps: PropTypes.object,
fetchInfo: PropTypes.func.isRequired,
fetchDescribeNetwork: PropTypes.func.isRequired,
fetchSuggestedNodes: PropTypes.func.isRequired
}
componentDidMount() {
const {
currentTicker,
fetchInfo,
fetchSuggestedNodes,
fetchTicker,
fetchDescribeNetwork
} = this.props
// If we don't yet have any ticker information then it must be our first time mounting this component.
if (!currentTicker) {
// fetch ticker data.
fetchTicker()
// fetch node info.
fetchInfo()
// fetch suggested nodes list from zap.jackmallers.com/suggested-peers.
fetchSuggestedNodes()
// fetch LN network from nodes POV.
fetchDescribeNetwork()
}
}
render() {
@ -29,20 +57,13 @@ class App extends Component {
currentTheme,
currentTicker,
form,
formProps,
closeForm,
error: { error },
clearError,
contactsFormProps,
networkTabProps,
receiveModalProps,
activityModalProps,
channelFormProps,
children
channelFormProps
} = this.props
if (!currentTicker) {
@ -50,48 +71,22 @@ class App extends Component {
}
return (
<div className={`${currentTheme}`}>
<div className={styles.titleBar} />
<GlobalError error={error} clearError={clearError} />
<Box width={1} className={`${currentTheme}`}>
<ChannelForm {...channelFormProps} />
<ReceiveModal {...receiveModalProps} />
<ActivityModal {...activityModalProps} />
<div className={styles.content}>{children}</div>
<Box className={styles.content}>
<Activity />
</Box>
{contactsFormProps.contactsform.isOpen ? (
<AddChannel {...contactsFormProps} />
) : (
<Network {...networkTabProps} />
)}
<Form formType={form.formType} formProps={formProps} closeForm={closeForm} />
</div>
</Box>
)
}
}
App.propTypes = {
form: PropTypes.object.isRequired,
formProps: PropTypes.object.isRequired,
closeForm: PropTypes.func.isRequired,
error: PropTypes.object.isRequired,
currentTheme: PropTypes.string.isRequired,
currentTicker: PropTypes.object,
contactsFormProps: PropTypes.object,
networkTabProps: PropTypes.object,
activityModalProps: PropTypes.object,
receiveModalProps: PropTypes.object,
channelFormProps: PropTypes.object,
fetchInfo: PropTypes.func.isRequired,
clearError: PropTypes.func.isRequired,
fetchDescribeNetwork: PropTypes.func.isRequired,
fetchSuggestedNodes: PropTypes.func.isRequired,
children: PropTypes.object.isRequired
}
export default App

8
app/components/App/App.scss

@ -9,11 +9,3 @@
background: var(--lightBackground);
padding-top: 20px;
}
.titleBar {
height: 20px;
width: 100%;
position: absolute;
user-select: none;
-webkit-app-region: drag;
}

25
app/components/Contacts/Network/Network.scss

@ -112,7 +112,7 @@
ul {
margin-top: 20px;
height: calc(100vh - 202px);
height: calc(100vh - 200px);
overflow-y: auto;
overflow-x: hidden;
}
@ -241,12 +241,7 @@
width: 10px;
border: 1px solid rgba(235, 184, 100, 0.1);
border-left-color: rgba(235, 184, 100, 0.4);
-webkit-border-radius: 999px;
-moz-border-radius: 999px;
border-radius: 999px;
-webkit-animation: animation-rotate 1000ms linear infinite;
-moz-animation: animation-rotate 1000ms linear infinite;
-o-animation: animation-rotate 1000ms linear infinite;
animation: animation-rotate 1000ms linear infinite;
display: inline-block;
@ -256,24 +251,6 @@
}
}
@-webkit-keyframes animation-rotate {
100% {
-webkit-transform: rotate(360deg);
}
}
@-moz-keyframes animation-rotate {
100% {
-moz-transform: rotate(360deg);
}
}
@-o-keyframes animation-rotate {
100% {
-o-transform: rotate(360deg);
}
}
@keyframes animation-rotate {
100% {
transform: rotate(360deg);

19
app/components/LoadingBolt/LoadingBolt.js

@ -8,15 +8,21 @@ import messages from './messages'
import styles from './LoadingBolt.scss'
class LoadingBolt extends React.PureComponent {
class LoadingBolt extends React.Component {
static propTypes = {
isLoading: PropTypes.bool.isRequired,
theme: PropTypes.object.isRequired
}
render() {
const { theme, visible = true } = this.props
const { theme, isLoading = true } = this.props
return (
<div>
<Transition enter={{ opacity: 1 }} leave={{ opacity: 0 }} native>
{visible &&
{isLoading &&
(springStyles => (
<animated.div style={springStyles} className={`${styles.container} ${theme}`}>
<animated.div style={springStyles} className={`${styles.container} ${theme.name}`}>
<div className={styles.content}>
<CloudLightning height="155px" width="150px" />
<h1>
@ -31,9 +37,4 @@ class LoadingBolt extends React.PureComponent {
}
}
LoadingBolt.propTypes = {
visible: PropTypes.bool,
theme: PropTypes.string.isRequired
}
export default LoadingBolt

2
app/components/LoadingBolt/LoadingBolt.scss

@ -21,7 +21,7 @@
.content {
position: relative;
top: calc(50% - 125px);
top: calc(50% - 175px);
min-height: 250px;
color: var(--primaryText);

7
app/components/Onboarding/Autopilot/Autopilot.scss

@ -35,16 +35,15 @@
}
div {
width: 150px;
width: 30%;
text-align: center;
display: inline-block;
display: flex;
padding: 20px;
border: 1px solid var(--primaryText);
border-radius: 5px;
font-weight: 200;
cursor: pointer;
transition: all 0.25s;
margin-bottom: 20px;
margin: 15px 20px 10px 0;
}
.label {

2
app/components/Onboarding/ConnectionType/ConnectionType.scss

@ -21,7 +21,7 @@
}
.button {
width: 20%;
width: 30%;
text-align: center;
display: flex;
padding: 20px;

3
app/components/Onboarding/FormContainer/FormContainer.js

@ -11,8 +11,7 @@ import messages from './messages'
import styles from './FormContainer.scss'
const FormContainer = ({ title, description, back, next, children, theme }) => (
<div className={styles.container}>
<div className={styles.titleBar} />
<div className={`${styles.container} ${theme}`}>
<header className={styles.header}>
<section>
{theme === 'light' ? (

15
app/components/Onboarding/FormContainer/FormContainer.scss

@ -6,14 +6,6 @@
background: var(--lightBackground);
}
.titleBar {
height: 20px;
width: 100%;
position: absolute;
user-select: none;
-webkit-app-region: drag;
}
.header {
display: flex;
flex-direction: row;
@ -35,7 +27,8 @@
.info {
color: var(--primaryText);
margin-bottom: 20px;
padding: 20px 40px;
padding: 10px 40px 20px;
height: 16vh;
h1 {
font-size: 22px;
@ -53,7 +46,7 @@
position: relative;
background: var(--darkestBackground);
height: 100vh;
padding: 40px 40px;
padding: 20px 40px;
}
.footer {
@ -61,7 +54,7 @@
bottom: 0;
padding: 25px 40px;
color: var(--primaryText);
width: calc(100% - 80px);
width: 100%;
.buttonsContainer {
display: flex;

23
app/components/Onboarding/Onboarding.js

@ -1,8 +1,9 @@
import React from 'react'
import PropTypes from 'prop-types'
import { Redirect } from 'react-router-dom'
import { FormattedMessage } from 'react-intl'
import LoadingBolt from 'components/LoadingBolt'
import { Box } from 'rebass'
import messages from './messages'
import FormContainer from './FormContainer'
@ -18,7 +19,6 @@ import RecoverForm from './RecoverForm'
import NewWalletSeed from './NewWalletSeed'
import ReEnterSeed from './ReEnterSeed'
import NewWalletPassword from './NewWalletPassword'
import styles from './Onboarding.scss'
const Onboarding = ({
onboarding: {
@ -31,10 +31,9 @@ const Onboarding = ({
connectionMacaroon,
alias,
autopilot,
startingLnd,
createWalletPassword,
seed,
fetchingSeed
onboarded
},
theme,
connectionTypeProps,
@ -288,19 +287,15 @@ const Onboarding = ({
<ReEnterSeed {...reEnterSeedProps} />
</FormContainer>
)
default:
return <LoadingBolt theme={theme} />
}
}
if (startingLnd) {
return <LoadingBolt theme={theme} />
}
if (fetchingSeed) {
return <LoadingBolt theme={theme} />
}
return <div className={`${styles.container} ${theme}`}>{renderStep()}</div>
return (
<Box width={1}>
{renderStep()}
{onboarded && <Redirect to={connectionType === 'local' ? '/syncing' : '/app'} />}
</Box>
)
}
Onboarding.propTypes = {

0
app/components/Onboarding/Onboarding.scss

2
app/components/Onboarding/Signup/Signup.scss

@ -35,7 +35,7 @@
}
div {
width: 185px;
width: 30%;
display: inline-block;
padding: 20px;
border: 1px solid var(--primaryText);

37
app/components/Onboarding/Syncing/Syncing.js → app/components/Syncing/Syncing.js

@ -1,5 +1,6 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { Redirect } from 'react-router-dom'
import QRCode from 'qrcode.react'
import copy from 'copy-to-clipboard'
import Copy from 'components/Icon/Copy'
@ -11,6 +12,17 @@ import messages from './messages'
import styles from './Syncing.scss'
class Syncing extends Component {
static propTypes = {
address: PropTypes.string.isRequired,
theme: PropTypes.object.isRequired,
hasSynced: PropTypes.bool,
syncStatus: PropTypes.string.isRequired,
syncPercentage: PropTypes.number,
blockHeight: PropTypes.number,
lndBlockHeight: PropTypes.number,
lndCfilterHeight: PropTypes.number
}
state = {
timer: null,
syncMessageDetail: null,
@ -51,6 +63,10 @@ class Syncing extends Component {
} = this.props
let { syncMessageDetail, syncMessageExtraDetail } = this.state
if (syncStatus === 'complete') {
return <Redirect to="/app" />
}
const copyClicked = () => {
copy(address)
showNotification('Noice', 'Successfully copied to clipboard')
@ -81,17 +97,11 @@ class Syncing extends Component {
}
}
if (typeof hasSynced === 'undefined') {
return null
}
return (
<div className={`${styles.container} ${theme}`}>
<div className={styles.titleBar} />
<div className={`${styles.container} ${theme.name}`}>
<div className={styles.content}>
<header>
{theme === 'light' ? (
{theme.name === 'light' ? (
<ZapLogoBlack width="70px" height="32px" />
) : (
<ZapLogo width="70px" height="32px" />
@ -176,15 +186,4 @@ class Syncing extends Component {
}
}
Syncing.propTypes = {
address: PropTypes.string.isRequired,
theme: PropTypes.string.isRequired,
hasSynced: PropTypes.bool,
syncStatus: PropTypes.string.isRequired,
syncPercentage: PropTypes.number,
blockHeight: PropTypes.number,
lndBlockHeight: PropTypes.number,
lndCfilterHeight: PropTypes.number
}
export default injectIntl(Syncing)

32
app/components/Onboarding/Syncing/Syncing.scss → app/components/Syncing/Syncing.scss

@ -2,17 +2,11 @@
.container {
position: relative;
width: 100%;
height: 100vh;
background: var(--darkestBackground);
}
.titleBar {
height: 20px;
-webkit-user-select: none;
-webkit-app-region: drag;
background: var(--darkestBackground);
}
.content {
color: var(--primaryText);
text-align: center;
@ -89,6 +83,7 @@
padding: 40px 0;
background: var(--lightestBackground);
position: absolute;
height: 31vh;
width: 100%;
bottom: 0;
@ -127,36 +122,13 @@
.spinner {
border: 1px solid rgba(0, 0, 0, 0.1);
border-left-color: rgba(0, 0, 0, 0.4);
-webkit-border-radius: 999px;
-moz-border-radius: 999px;
border-radius: 999px;
margin: 0 auto;
height: 75px;
width: 75px;
-webkit-animation: animation-rotate 1000ms linear infinite;
-moz-animation: animation-rotate 1000ms linear infinite;
-o-animation: animation-rotate 1000ms linear infinite;
animation: animation-rotate 1000ms linear infinite;
}
@-webkit-keyframes animation-rotate {
100% {
-webkit-transform: rotate(360deg);
}
}
@-moz-keyframes animation-rotate {
100% {
-moz-transform: rotate(360deg);
}
}
@-o-keyframes animation-rotate {
100% {
-o-transform: rotate(360deg);
}
}
@keyframes animation-rotate {
100% {
transform: rotate(360deg);

0
app/components/Onboarding/Syncing/index.js → app/components/Syncing/index.js

0
app/components/Onboarding/Syncing/messages.js → app/components/Syncing/messages.js

4
app/components/UI/GlobalStyle.js

@ -4,8 +4,12 @@ const GlobalStyle = createGlobalStyle`
html {
box-sizing: border-box;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
position: relative;
box-sizing: border-box;
overflow-y: hidden;
margin: 0;
padding: 0;

4
app/components/UI/Range.js

@ -31,11 +31,11 @@ const Range = asField(({ fieldState, fieldApi, ...props }) => {
const { onChange, onBlur, initialValue, forwardedRef, ...rest } = props
return (
<Input
{...rest}
type="range"
min={0}
max={100}
step={1}
{...rest}
type="range"
ref={forwardedRef}
value={value || initialValue || '0'}
onChange={e => {

17
app/components/UI/Titlebar.js

@ -0,0 +1,17 @@
import styled from 'styled-components'
/**
* @render react
* @name Titlebar
* @example
* <Titlebar/>
*/
const Titlebar = styled.div`
height: 20px;
width: 100%;
position: absolute;
user-select: none;
-webkit-app-region: drag;
`
export default Titlebar

3
app/components/withLoading/index.js

@ -0,0 +1,3 @@
import withLoading from './withLoading'
export default withLoading

34
app/components/withLoading/withLoading.js

@ -0,0 +1,34 @@
import React from 'react'
import PropTypes from 'prop-types'
import { withTheme } from 'styled-components'
import LoadingBolt from 'components/LoadingBolt'
const LoadingBoltWithTheme = withTheme(LoadingBolt)
/**
* A HOC that will display the LoadingBolt component whilast the wrapped component is loading.
* @param {React.Component} Component Component to wrap
*/
const withLoading = Component =>
class extends React.Component {
static displayName = 'withLoading'
static propTypes = {
isLoading: PropTypes.bool.isRequired
}
/**
* Render the loading bolt ontop of the wrapped component for as long as needed.
*/
render() {
const { isLoading, theme, children, ...rest } = this.props
return (
<React.Fragment>
<LoadingBoltWithTheme isLoading={isLoading} />
<Component {...rest}>{children}</Component>
</React.Fragment>
)
}
}
export default withLoading

12
app/containers/Activity.js

@ -1,4 +1,5 @@
import { connect } from 'react-redux'
import { setLocale } from 'reducers/locale'
import { setCurrency, setFiatTicker, tickerSelectors } from 'reducers/ticker'
import { fetchBalance } from 'reducers/balance'
@ -18,13 +19,9 @@ import {
} from 'reducers/activity'
import { walletAddress, openWalletModal } from 'reducers/address'
import { setFormType } from 'reducers/form'
import { payFormSelectors } from 'reducers/payform'
import { setWalletCurrencyFilters } from 'reducers/info'
import { setSettingsOpen, setActiveSubMenu, disableSubMenu } from 'reducers/settings'
import { setTheme, themeSelectors } from 'reducers/theme'
import Activity from 'components/Activity'
@ -59,23 +56,16 @@ const mapDispatchToProps = {
const mapStateToProps = state => ({
activity: state.activity,
balance: state.balance,
address: state.address,
info: state.info,
payment: state.payment,
transaction: state.transaction,
invoice: state.invoice,
invoices: invoiceSelectors.invoices(state),
ticker: state.ticker,
network: state.network,
settings: state.settings,
currentLocale: state.intl.locale,
locales: state.locale,

53
app/containers/App.js

@ -1,18 +1,14 @@
import { withRouter } from 'react-router-dom'
import { withRouter } from 'react-router'
import { connect } from 'react-redux'
import get from 'lodash.get'
import { btc } from 'lib/utils'
import { themeSelectors } from 'reducers/theme'
import { setCurrency, tickerSelectors } from 'reducers/ticker'
import { setCurrency, tickerSelectors, fetchTicker } from 'reducers/ticker'
import { closeWalletModal } from 'reducers/address'
import { fetchInfo } from 'reducers/info'
import { fetchInfo, infoSelectors } from 'reducers/info'
import { setFormType } from 'reducers/form'
import {
setPayAmount,
setPayInput,
@ -20,22 +16,16 @@ import {
updatePayErrors,
payFormSelectors
} from 'reducers/payform'
import {
setRequestAmount,
setRequestMemo,
setRequestCurrencyFilters,
requestFormSelectors
} from 'reducers/requestform'
import { sendCoins } from 'reducers/transaction'
import { payInvoice } from 'reducers/payment'
import { createInvoice, fetchInvoice } from 'reducers/invoice'
import { lndSelectors } from 'reducers/lnd'
import {
fetchChannels,
fetchSuggestedNodes,
@ -48,7 +38,6 @@ import {
updateChannelSearchQuery,
setSelectedChannel
} from 'reducers/channels'
import {
openContactsForm,
closeContactsForm,
@ -65,13 +54,9 @@ import {
updateManualFormErrors,
setContactsCurrencyFilters
} from 'reducers/contactsform'
import { fetchBalance } from 'reducers/balance'
import { fetchDescribeNetwork } from 'reducers/network'
import { clearError } from 'reducers/error'
import {
hideActivityModal,
setActivityModalCurrencyFilters,
@ -79,43 +64,35 @@ import {
} from 'reducers/activity'
import App from 'components/App'
import withLoading from 'components/withLoading'
const mapDispatchToProps = {
setCurrency,
closeWalletModal,
fetchInfo,
setFormType,
setPayAmount,
setPayInput,
setCurrencyFilters,
updatePayErrors,
setRequestAmount,
setRequestMemo,
setRequestCurrencyFilters,
sendCoins,
payInvoice,
createInvoice,
fetchInvoice,
clearError,
fetchBalance,
fetchChannels,
fetchSuggestedNodes,
fetchTicker,
openChannel,
closeChannel,
toggleFilterPulldown,
changeFilter,
updateChannelSearchQuery,
setSelectedChannel,
openContactsForm,
closeContactsForm,
openSubmitChannelForm,
@ -130,18 +107,14 @@ const mapDispatchToProps = {
updateManualFormErrors,
setContactsCurrencyFilters,
setChannelFormType,
fetchDescribeNetwork,
hideActivityModal,
setActivityModalCurrencyFilters
}
const mapStateToProps = state => ({
activity: state.activity,
lnd: state.lnd,
ticker: state.ticker,
address: state.address,
info: state.info,
@ -151,25 +124,27 @@ const mapStateToProps = state => ({
channels: state.channels,
contactsform: state.contactsform,
balance: state.balance,
form: state.form,
payform: state.payform,
requestform: state.requestform,
invoice: state.invoice,
error: state.error,
network: state.network,
settings: state.settings,
activityModalItem: activitySelectors.activityModalItem(state),
isLoading:
infoSelectors.infoLoading(state) ||
tickerSelectors.tickerLoading(state) ||
state.balance.channelBalance === null ||
state.balance.walletBalance === null,
activityModalItem: activitySelectors.activityModalItem(state),
currentTheme: themeSelectors.currentTheme(state),
currentTicker: tickerSelectors.currentTicker(state),
currentCurrencyFilters: tickerSelectors.currentCurrencyFilters(state),
currencyName: tickerSelectors.currencyName(state),
isOnchain: payFormSelectors.isOnchain(state),
isLn: payFormSelectors.isLn(state),
currentAmount: payFormSelectors.currentAmount(state),
@ -491,5 +466,5 @@ export default withRouter(
mapStateToProps,
mapDispatchToProps,
mergeProps
)(App)
)(withLoading(App))
)

186
app/containers/Onboarding.js

@ -0,0 +1,186 @@
import { connect } from 'react-redux'
import { themeSelectors } from 'reducers/theme'
import {
setConnectionType,
setConnectionString,
setConnectionHost,
setConnectionCert,
setConnectionMacaroon,
updateAlias,
updatePassword,
setAutopilot,
changeStep,
startLnd,
createWallet,
updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation,
submitNewWallet,
recoverOldWallet,
onboardingSelectors,
unlockWallet,
setSignupCreate,
setSignupImport,
updateReEnterSeedInput,
updateRecoverSeedInput,
setReEnterSeedIndexes
} from 'reducers/onboarding'
import Onboarding from 'components/Onboarding'
const mapDispatchToProps = {
setConnectionType,
setConnectionString,
setConnectionHost,
setConnectionCert,
setConnectionMacaroon,
updateAlias,
updatePassword,
updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation,
setAutopilot,
changeStep,
startLnd,
createWallet,
submitNewWallet,
recoverOldWallet,
unlockWallet,
setSignupCreate,
setSignupImport,
updateReEnterSeedInput,
updateRecoverSeedInput,
setReEnterSeedIndexes
}
const mapStateToProps = state => ({
currentTheme: themeSelectors.currentTheme(state),
onboarding: state.onboarding,
passwordIsValid: onboardingSelectors.passwordIsValid(state),
passwordMinCharsError: onboardingSelectors.passwordMinCharsError(state),
showCreateWalletPasswordConfirmationError: onboardingSelectors.showCreateWalletPasswordConfirmationError(
state
),
reEnterSeedChecker: onboardingSelectors.reEnterSeedChecker(state),
connectionStringIsValid: onboardingSelectors.connectionStringIsValid(state),
connectionHostIsValid: onboardingSelectors.connectionHostIsValid(state)
})
const mergeProps = (stateProps, dispatchProps, ownProps) => {
const connectionTypeProps = {
connectionType: stateProps.onboarding.connectionType,
setConnectionType: dispatchProps.setConnectionType
}
const connectionDetailProps = {
connectionHostIsValid: stateProps.connectionHostIsValid,
connectionStringIsValid: stateProps.connectionStringIsValid,
connectionString: stateProps.onboarding.connectionString,
connectionHost: stateProps.onboarding.connectionHost,
connectionCert: stateProps.onboarding.connectionCert,
connectionMacaroon: stateProps.onboarding.connectionMacaroon,
setConnectionString: dispatchProps.setConnectionString,
setConnectionHost: dispatchProps.setConnectionHost,
setConnectionCert: dispatchProps.setConnectionCert,
setConnectionMacaroon: dispatchProps.setConnectionMacaroon,
startLndHostError: stateProps.onboarding.startLndHostError,
startLndCertError: stateProps.onboarding.startLndCertError,
startLndMacaroonError: stateProps.onboarding.startLndMacaroonError
}
const connectionConfirmProps = {
connectionHost: stateProps.onboarding.connectionHost
}
const aliasProps = {
updateAlias: dispatchProps.updateAlias,
alias: stateProps.onboarding.alias
}
const autopilotProps = {
autopilot: stateProps.onboarding.autopilot,
setAutopilot: dispatchProps.setAutopilot
}
const initWalletProps = {
hasSeed: stateProps.onboarding.hasSeed,
loginProps: {
password: stateProps.onboarding.password,
passwordIsValid: stateProps.passwordIsValid,
hasSeed: stateProps.onboarding.hasSeed,
existingWalletDir: stateProps.onboarding.existingWalletDir,
unlockingWallet: stateProps.onboarding.unlockingWallet,
unlockWalletError: stateProps.onboarding.unlockWalletError,
updatePassword: dispatchProps.updatePassword,
createWallet: dispatchProps.createWallet,
unlockWallet: dispatchProps.unlockWallet
},
signupProps: {
signupForm: stateProps.onboarding.signupForm,
setSignupCreate: dispatchProps.setSignupCreate,
setSignupImport: dispatchProps.setSignupImport
}
}
const newWalletSeedProps = {
seed: stateProps.onboarding.seed
}
const newWalletPasswordProps = {
createWalletPassword: stateProps.onboarding.createWalletPassword,
createWalletPasswordConfirmation: stateProps.onboarding.createWalletPasswordConfirmation,
showCreateWalletPasswordConfirmationError: stateProps.showCreateWalletPasswordConfirmationError,
passwordMinCharsError: stateProps.passwordMinCharsError,
updateCreateWalletPassword: dispatchProps.updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation: dispatchProps.updateCreateWalletPasswordConfirmation
}
const recoverFormProps = {
recoverSeedInput: stateProps.onboarding.recoverSeedInput,
updateRecoverSeedInput: dispatchProps.updateRecoverSeedInput
}
const reEnterSeedProps = {
seed: stateProps.onboarding.seed,
reEnterSeedInput: stateProps.onboarding.reEnterSeedInput,
seedIndexesArr: stateProps.onboarding.seedIndexesArr,
reEnterSeedChecker: stateProps.reEnterSeedChecker,
updateReEnterSeedInput: dispatchProps.updateReEnterSeedInput,
setReEnterSeedIndexes: dispatchProps.setReEnterSeedIndexes
}
const onboardingProps = {
onboarding: stateProps.onboarding,
theme: stateProps.currentTheme,
changeStep: dispatchProps.changeStep,
startLnd: dispatchProps.startLnd,
submitNewWallet: dispatchProps.submitNewWallet,
recoverOldWallet: dispatchProps.recoverOldWallet,
connectionTypeProps,
connectionDetailProps,
connectionConfirmProps,
aliasProps,
autopilotProps,
initWalletProps,
newWalletSeedProps,
newWalletPasswordProps,
recoverFormProps,
reEnterSeedProps
}
return {
...stateProps,
...dispatchProps,
...ownProps,
...onboardingProps
}
}
export default connect(
mapStateToProps,
mapDispatchToProps,
mergeProps
)(Onboarding)

373
app/containers/Root.js

@ -1,320 +1,107 @@
import React, { Component } from 'react'
import { connect } from 'react-redux'
import { ConnectedRouter } from 'react-router-redux'
import { Switch, Route } from 'react-router'
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import { Redirect, Route, Switch } from 'react-router-dom'
import { ConnectedRouter } from 'connected-react-router'
import { ThemeProvider } from 'styled-components'
import GlobalStyle from 'components/UI/GlobalStyle'
import GlobalError from 'components/GlobalError'
import { clearError } from 'reducers/error'
import {
setConnectionType,
setConnectionString,
setConnectionHost,
setConnectionCert,
setConnectionMacaroon,
updateAlias,
updatePassword,
setAutopilot,
changeStep,
startLnd,
createWallet,
updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation,
submitNewWallet,
recoverOldWallet,
onboardingSelectors,
unlockWallet,
setSignupCreate,
setSignupImport,
updateReEnterSeedInput,
updateRecoverSeedInput,
setReEnterSeedIndexes
} from 'reducers/onboarding'
import { fetchTicker, tickerSelectors } from 'reducers/ticker'
import { clearError, errorSelectors } from 'reducers/error'
import { loadingSelectors, setLoading } from 'reducers/loading'
import { themeSelectors } from 'reducers/theme'
import { lndSelectors } from 'reducers/lnd'
import { walletAddress } from 'reducers/address'
import LoadingBolt from 'components/LoadingBolt'
import Onboarding from 'components/Onboarding'
import Syncing from 'components/Onboarding/Syncing'
import App from './App'
import Activity from './Activity'
const mapDispatchToProps = {
clearError,
setConnectionType,
setConnectionString,
setConnectionHost,
setConnectionCert,
setConnectionMacaroon,
updateAlias,
updatePassword,
updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation,
setAutopilot,
changeStep,
startLnd,
createWallet,
submitNewWallet,
recoverOldWallet,
unlockWallet,
setSignupCreate,
setSignupImport,
walletAddress,
updateReEnterSeedInput,
updateRecoverSeedInput,
setReEnterSeedIndexes,
fetchTicker
}
const mapStateToProps = state => ({
lnd: state.lnd,
onboarding: state.onboarding,
address: state.address,
info: state.info,
balance: state.balance,
currentTheme: themeSelectors.currentTheme(state),
currentThemeSettings: themeSelectors.currentThemeSettings(state),
currentTicker: tickerSelectors.currentTicker(state),
error: state.error,
syncPercentage: lndSelectors.syncPercentage(state),
passwordIsValid: onboardingSelectors.passwordIsValid(state),
passwordMinCharsError: onboardingSelectors.passwordMinCharsError(state),
showCreateWalletPasswordConfirmationError: onboardingSelectors.showCreateWalletPasswordConfirmationError(
state
),
reEnterSeedChecker: onboardingSelectors.reEnterSeedChecker(state),
connectionStringIsValid: onboardingSelectors.connectionStringIsValid(state),
connectionHostIsValid: onboardingSelectors.connectionHostIsValid(state)
})
const mergeProps = (stateProps, dispatchProps, ownProps) => {
const syncingProps = {
blockHeight: stateProps.lnd.blockHeight,
syncStatus: stateProps.lnd.syncStatus,
lndBlockHeight: stateProps.lnd.lndBlockHeight,
lndCfilterHeight: stateProps.lnd.lndCfilterHeight,
hasSynced: stateProps.info.hasSynced,
syncPercentage: stateProps.syncPercentage,
address: stateProps.address.address,
theme: stateProps.currentTheme
}
const connectionTypeProps = {
connectionType: stateProps.onboarding.connectionType,
setConnectionType: dispatchProps.setConnectionType
}
const connectionDetailProps = {
connectionHostIsValid: stateProps.connectionHostIsValid,
connectionStringIsValid: stateProps.connectionStringIsValid,
connectionString: stateProps.onboarding.connectionString,
connectionHost: stateProps.onboarding.connectionHost,
connectionCert: stateProps.onboarding.connectionCert,
connectionMacaroon: stateProps.onboarding.connectionMacaroon,
setConnectionString: dispatchProps.setConnectionString,
setConnectionHost: dispatchProps.setConnectionHost,
setConnectionCert: dispatchProps.setConnectionCert,
setConnectionMacaroon: dispatchProps.setConnectionMacaroon,
startLndHostError: stateProps.onboarding.startLndHostError,
startLndCertError: stateProps.onboarding.startLndCertError,
startLndMacaroonError: stateProps.onboarding.startLndMacaroonError
}
const connectionConfirmProps = {
connectionHost: stateProps.onboarding.connectionHost
}
import Page from 'components/UI/Page'
import Titlebar from 'components/UI/Titlebar'
import GlobalError from 'components/GlobalError'
import GlobalStyle from 'components/UI/GlobalStyle'
import withLoading from 'components/withLoading'
const aliasProps = {
updateAlias: dispatchProps.updateAlias,
alias: stateProps.onboarding.alias
}
import Onboarding from './Onboarding'
import Syncing from './Syncing'
import App from './App'
const autopilotProps = {
autopilot: stateProps.onboarding.autopilot,
setAutopilot: dispatchProps.setAutopilot
// Wrap the apge with our isLoading HOC so that the app displays the loading graphic whhen it first mounts.
const PageWithLoading = withLoading(Page)
// The minimum amount of time that we will show the loading component when the app mounts.
const SPLASH_SCREEN_TIME = 1500
/**
* Root component that deals with mounting the app and managing top level routing.
*/
class Root extends React.Component {
static propTypes = {
clearError: PropTypes.func.isRequired,
currentThemeSettings: PropTypes.object.isRequired,
error: PropTypes.string,
history: PropTypes.object.isRequired,
isLoading: PropTypes.bool.isRequired,
setLoading: PropTypes.func.isRequired
}
const initWalletProps = {
hasSeed: stateProps.onboarding.hasSeed,
loginProps: {
password: stateProps.onboarding.password,
passwordIsValid: stateProps.passwordIsValid,
hasSeed: stateProps.onboarding.hasSeed,
existingWalletDir: stateProps.onboarding.existingWalletDir,
unlockingWallet: stateProps.onboarding.unlockingWallet,
unlockWalletError: stateProps.onboarding.unlockWalletError,
updatePassword: dispatchProps.updatePassword,
createWallet: dispatchProps.createWallet,
unlockWallet: dispatchProps.unlockWallet
},
signupProps: {
signupForm: stateProps.onboarding.signupForm,
setSignupCreate: dispatchProps.setSignupCreate,
setSignupImport: dispatchProps.setSignupImport
/**
* Initialise component state props.
*/
constructor(props) {
super(props)
this.state = {
timer: null
}
}
const newWalletSeedProps = {
seed: stateProps.onboarding.seed
}
const newWalletPasswordProps = {
createWalletPassword: stateProps.onboarding.createWalletPassword,
createWalletPasswordConfirmation: stateProps.onboarding.createWalletPasswordConfirmation,
showCreateWalletPasswordConfirmationError: stateProps.showCreateWalletPasswordConfirmationError,
passwordMinCharsError: stateProps.passwordMinCharsError,
updateCreateWalletPassword: dispatchProps.updateCreateWalletPassword,
updateCreateWalletPasswordConfirmation: dispatchProps.updateCreateWalletPasswordConfirmation
}
const recoverFormProps = {
recoverSeedInput: stateProps.onboarding.recoverSeedInput,
updateRecoverSeedInput: dispatchProps.updateRecoverSeedInput
/**
* // Show the loading bold briefly before showing the user the app.
*/
componentDidMount() {
const { setLoading } = this.props
const timer = setTimeout(() => setLoading(false), SPLASH_SCREEN_TIME)
this.setState({ timer })
}
const reEnterSeedProps = {
seed: stateProps.onboarding.seed,
reEnterSeedInput: stateProps.onboarding.reEnterSeedInput,
seedIndexesArr: stateProps.onboarding.seedIndexesArr,
reEnterSeedChecker: stateProps.reEnterSeedChecker,
updateReEnterSeedInput: dispatchProps.updateReEnterSeedInput,
setReEnterSeedIndexes: dispatchProps.setReEnterSeedIndexes
}
const onboardingProps = {
onboarding: stateProps.onboarding,
theme: stateProps.currentTheme,
changeStep: dispatchProps.changeStep,
startLnd: dispatchProps.startLnd,
submitNewWallet: dispatchProps.submitNewWallet,
recoverOldWallet: dispatchProps.recoverOldWallet,
connectionTypeProps,
connectionDetailProps,
connectionConfirmProps,
aliasProps,
autopilotProps,
initWalletProps,
newWalletSeedProps,
newWalletPasswordProps,
recoverFormProps,
reEnterSeedProps
}
return {
...stateProps,
...dispatchProps,
...ownProps,
onboardingProps,
syncingProps
}
}
class Root extends Component {
componentWillMount() {
const { fetchTicker } = this.props
fetchTicker()
/**
* Remove the timer when the component unmounts.
*/
componentWillUnmount() {
const { timer } = this.state
clearTimeout(timer)
}
render() {
const {
balance,
clearError,
currentThemeSettings,
currentTicker,
error: { error },
history,
lnd,
onboardingProps,
syncingProps
} = this.props
if (!onboardingProps.onboarding.onboarded) {
return (
<React.Fragment>
<GlobalStyle />
<ThemeProvider theme={currentThemeSettings}>
<div>
<LoadingBolt
theme={onboardingProps.theme}
visible={!onboardingProps.onboarding.onboarding}
/>
<GlobalError error={error} clearError={clearError} />
<Onboarding {...onboardingProps} />
<Syncing {...syncingProps} />
</div>
</ThemeProvider>
</React.Fragment>
)
}
// If we are syncing show the syncing screen.
if (
lnd.lightningGrpcActive &&
onboardingProps.onboarding.connectionType === 'local' &&
lnd.syncStatus !== 'complete'
) {
return (
<React.Fragment>
<GlobalStyle />
<ThemeProvider theme={currentThemeSettings}>
<Syncing {...syncingProps} />
</ThemeProvider>
</React.Fragment>
)
}
const { clearError, currentThemeSettings, error, history, isLoading } = this.props
return (
<React.Fragment>
<GlobalStyle />
<ConnectedRouter history={history}>
<ThemeProvider theme={currentThemeSettings}>
<div>
<LoadingBolt
theme={onboardingProps.theme}
visible={
(!lnd.lightningGrpcActive && !lnd.walletUnlockerGrpcActive) ||
!currentTicker ||
balance.channelBalance === null ||
balance.walletBalance === null
}
/>
<App>
<Switch>
<Route path="/" component={Activity} />
</Switch>
</App>
</div>
</ThemeProvider>
</ConnectedRouter>
</React.Fragment>
<ConnectedRouter history={history}>
<ThemeProvider theme={currentThemeSettings}>
<React.Fragment>
<GlobalStyle />
<Titlebar />
<GlobalError error={error} clearError={clearError} />
<PageWithLoading isLoading={isLoading}>
<Switch>
<Route exact path="/" render={() => <Redirect to="/onboarding" />} />
<Route exact path="/onboarding" component={Onboarding} />
<Route exact path="/syncing" component={Syncing} />
<Route exact path="/app" component={App} />
</Switch>
</PageWithLoading>
</React.Fragment>
</ThemeProvider>
</ConnectedRouter>
)
}
}
Root.propTypes = {
balance: PropTypes.object.isRequired,
clearError: PropTypes.func.isRequired,
error: PropTypes.object.isRequired,
fetchTicker: PropTypes.func.isRequired,
currentThemeSettings: PropTypes.object.isRequired,
currentTicker: PropTypes.object,
history: PropTypes.object.isRequired,
lnd: PropTypes.object.isRequired,
onboardingProps: PropTypes.object.isRequired,
syncingProps: PropTypes.object.isRequired
const mapStateToProps = state => ({
currentTheme: themeSelectors.currentTheme(state),
currentThemeSettings: themeSelectors.currentThemeSettings(state),
error: errorSelectors.getErrorState(state),
isLoading: loadingSelectors.isLoading(state)
})
const mapDispatchToProps = {
clearError,
setLoading
}
export default connect(
mapStateToProps,
mapDispatchToProps,
mergeProps
mapDispatchToProps
)(Root)

21
app/containers/Syncing.js

@ -0,0 +1,21 @@
import { connect } from 'react-redux'
import { withTheme } from 'styled-components'
import { infoSelectors } from 'reducers/info'
import { lndSelectors } from 'reducers/lnd'
import { onboardingSelectors } from 'reducers/onboarding'
import Syncing from 'components/Syncing'
import withLoading from 'components/withLoading'
const mapStateToProps = state => ({
address: state.address.address,
hasSynced: infoSelectors.hasSynced(state),
syncStatus: state.lnd.syncStatus,
syncPercentage: lndSelectors.syncPercentage(state),
blockHeight: state.lnd.blockHeight,
lndBlockHeight: state.lnd.lndBlockHeight,
lndCfilterHeight: state.lnd.lndCfilterHeight,
isLoading: infoSelectors.infoLoading(state) || onboardingSelectors.startingLnd(state)
})
export default connect(mapStateToProps)(withLoading(withTheme(Syncing)))

3
app/index.js

@ -5,6 +5,8 @@ import jstz from 'jstimezonedetect'
import { configureStore, history } from './store/configureStore'
import { getLocale } from './lib/i18n'
import Root from './containers/Root'
// Load global styles.
import './styles/app.global.scss'
// Register supported locales.
@ -25,6 +27,7 @@ const initialState = {
}
}
// Set up the redux store.
const store = configureStore(initialState)
const MOUNT_NODE = document.getElementById('root')

8
app/lib/zap/controller.js

@ -54,7 +54,6 @@ class ZapController {
neutrino: Neutrino
lightning: Lightning
walletUnlocker: WalletUnlocker
splashScreenTime: number
lndConfig: LndConfig
fsm: StateMachine
@ -83,9 +82,6 @@ class ZapController {
// Variable to hold the main window instance.
this.mainWindow = mainWindow
// Time for the splash screen to remain visible.
this.splashScreenTime = 1500
// Initialise the controler with the current active config.
this.lndConfig = new LndConfig()
this.lndConfig.load()
@ -108,8 +104,8 @@ class ZapController {
this.mainWindow.show()
this.mainWindow.focus()
// Show the splash screen and then start onboarding.
setTimeout(() => this.startOnboarding(), this.splashScreenTime)
// Start the onboarding process.
this.startOnboarding()
})
// When the window is closed, just hide it unless we are force closing.

9
app/reducers/error.js

@ -35,6 +35,15 @@ const ACTION_HANDLERS = {
[CLEAR_ERROR]: () => initialState
}
// ------------------------------------
// Selectors
// ------------------------------------
const errorSelectors = {}
errorSelectors.getErrorState = state => state.error.error
export { errorSelectors }
// ------------------------------------
// Reducer
// ------------------------------------

13
app/reducers/index.js

@ -1,5 +1,5 @@
import { combineReducers } from 'redux'
import { routerReducer as router } from 'react-router-redux'
// import { routerReducer as router } from 'react-router-redux'
import { intlReducer as intl } from 'react-intl-redux'
import locale from './locale'
import theme from './theme'
@ -11,27 +11,27 @@ import balance from './balance'
import payment from './payment'
import peers from './peers'
import channels from './channels'
import contactsform from './contactsform'
import form from './form'
import payform from './payform'
import requestform from './requestform'
import invoice from './invoice'
import address from './address'
import transaction from './transaction'
import activity from './activity'
import network from './network'
import error from './error'
import loading from './loading'
import settings from './settings'
const rootReducer = combineReducers({
router,
// Third party reducers.
// router,
intl,
locale,
theme,
// Custom reducers
onboarding,
lnd,
ticker,
@ -41,17 +41,16 @@ const rootReducer = combineReducers({
peers,
channels,
contactsform,
form,
payform,
requestform,
invoice,
address,
transaction,
activity,
network,
error,
loading,
settings
})

12
app/reducers/info.js

@ -43,11 +43,6 @@ export const fetchInfo = () => async dispatch => {
// Receive IPC event for info
export const receiveInfo = (event, data) => (dispatch, getState) => {
dispatch({ type: RECEIVE_INFO, data })
// Now that we have the node info, get the current wallet address.
dispatch(walletAddress('np2wkh'))
// Determine the node's current sync state.
const state = getState()
if (typeof state.info.hasSynced === 'undefined') {
@ -56,6 +51,11 @@ export const receiveInfo = (event, data) => (dispatch, getState) => {
store.set(`${data.identity_pubkey}.hasSynced`, hasSynced)
dispatch(setHasSynced(hasSynced))
}
dispatch({ type: RECEIVE_INFO, data })
// Now that we have the node info, get the current wallet address.
dispatch(walletAddress('np2wkh'))
}
const networks = {
@ -109,6 +109,8 @@ const initialState = {
const infoSelectors = {}
infoSelectors.testnetSelector = state => state.info.data.testnet
infoSelectors.networkSelector = state => state.info.network
infoSelectors.infoLoading = state => state.info.infoLoading
infoSelectors.hasSynced = state => state.info.hasSynced
export { infoSelectors }

46
app/reducers/loading.js

@ -0,0 +1,46 @@
// ------------------------------------
// Initial State
// ------------------------------------
const initialState = {
isLoading: true
}
// ------------------------------------
// Constants
// ------------------------------------
export const SET_LOADING = 'SET_LOADING'
// ------------------------------------
// Actions
// ------------------------------------
export function setLoading(isLoading) {
return {
type: SET_LOADING,
isLoading
}
}
// ------------------------------------
// Action Handlers
// ------------------------------------
const ACTION_HANDLERS = {
[SET_LOADING]: (state, { isLoading }) => ({ ...state, isLoading })
}
// ------------------------------------
// Selectors
// ------------------------------------
const loadingSelectors = {}
loadingSelectors.isLoading = state => state.loading.isLoading
export { loadingSelectors }
// ------------------------------------
// Reducer
// ------------------------------------
export default function loadingReducer(state = initialState, action) {
const handler = ACTION_HANDLERS[action.type]
return handler ? handler(state, action) : state
}

5
app/reducers/onboarding.js

@ -229,7 +229,6 @@ export function setReEnterSeedIndexes() {
* the process of creating or unlocking a wallet.
*/
export const lndWalletUnlockerStarted = () => dispatch => {
dispatch(lndStarted())
ipcRenderer.send('walletUnlocker', { msg: 'genSeed' })
dispatch({ type: FETCH_SEED })
}
@ -239,8 +238,8 @@ export const lndWalletUnlockerStarted = () => dispatch => {
* early as possible.
*/
export const lndWalletStarted = () => dispatch => {
dispatch(lndStarted())
dispatch(fetchInfo())
dispatch(lndStarted())
}
export const submitNewWallet = (
@ -455,6 +454,8 @@ const connectionStringSelector = state => state.onboarding.connectionString
const connectionTypeSelector = state => state.onboarding.connectionType
const connectionHostSelector = state => state.onboarding.connectionHost
onboardingSelectors.startingLnd = state => state.onboarding.startingLnd
onboardingSelectors.passwordIsValid = createSelector(
passwordSelector,
password => password.length >= 8

3
app/reducers/ticker.js

@ -100,6 +100,9 @@ const currencyFiltersSelector = state => state.ticker.currencyFilters
const currencySelector = state => state.ticker.currency
const bitcoinTickerSelector = state => state.ticker.btcTicker
const litecoinTickerSelector = state => state.ticker.ltcTicker
const tickerLoading = state => state.ticker.tickerLoading
tickerSelectors.tickerLoading = tickerLoading
tickerSelectors.currentTicker = createSelector(
cryptoSelector,

12
app/store/configureStore.dev.js

@ -1,12 +1,12 @@
import { createStore, applyMiddleware, compose } from 'redux'
import thunk from 'redux-thunk'
import { createHashHistory } from 'history'
import { routerMiddleware, routerActions } from 'react-router-redux'
import { createMemoryHistory } from 'history'
import { connectRouter, routerActions, routerMiddleware } from 'connected-react-router'
import { createLogger } from 'redux-logger'
import rootReducer from '../reducers'
import ipc from '../reducers/ipc'
export const history = createHashHistory()
export const history = createMemoryHistory()
export const configureStore = initialState => {
// Redux Configuration
@ -46,11 +46,13 @@ export const configureStore = initialState => {
const enhancer = composeEnhancers(...enhancers)
// Create Store
const store = createStore(rootReducer, initialState, enhancer)
const store = createStore(connectRouter(history)(rootReducer), initialState, enhancer)
if (module.hot) {
// eslint-disable-next-line global-require
module.hot.accept('../reducers', () => store.replaceReducer(require('../reducers')))
module.hot.accept('../reducers', () =>
store.replaceReducer(connectRouter(history)(require('../reducers')))
)
}
return store

10
app/store/configureStore.prod.js

@ -1,11 +1,11 @@
import { createStore, applyMiddleware, compose } from 'redux'
import thunk from 'redux-thunk'
import { createBrowserHistory } from 'history'
import { routerMiddleware } from 'react-router-redux'
import { createHashHistory } from 'history'
import { connectRouter, routerMiddleware } from 'connected-react-router'
import rootReducer from '../reducers'
import ipc from '../reducers/ipc'
export const history = createBrowserHistory({ basename: window.location.pathname })
export const history = createHashHistory({ basename: window.location.pathname })
export function configureStore(initialState) {
const middleware = []
@ -13,8 +13,8 @@ export function configureStore(initialState) {
middleware.push(thunk)
// Router Middleware
const router = routerMiddleware(history)
middleware.push(router)
middleware.push(ipc)
@ -22,5 +22,5 @@ export function configureStore(initialState) {
enhancers.push(applyMiddleware(...middleware))
const enhancer = compose(...enhancers)
return createStore(rootReducer, initialState, enhancer)
return createStore(connectRouter(history)(rootReducer), initialState, enhancer)
}

20
app/translations/af-ZA.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/ar-SA.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/bg-BG.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "дума",
"components.Onboarding.Signup.signup_create": "Създай нов портфейл",
"components.Onboarding.Signup.signup_import": "Възстановяване на съществуващ портфейл",
"components.Onboarding.Syncing.block_progress": "Блок {currentBlock} от {totalBlocks}",
"components.Onboarding.Syncing.filter_progress": "Филтър {currentFilter} от {totalFilters}",
"components.Onboarding.Syncing.fund_description": "Можете да внесете пари във вашия портфейл докато чакате синхронизирането.",
"components.Onboarding.Syncing.fund_title": "Внеси пари в Zap портфейла",
"components.Onboarding.Syncing.grab_coffee": "Изглежда, че зареждането може да отнеме повече време. По-добре си направи едно кафе и опитай по-късно!",
"components.Onboarding.Syncing.preparing": "Подготвяне…",
"components.Onboarding.Syncing.sync_caption": "Синхронизиране с blockchain-a",
"components.Onboarding.Syncing.sync_description": "Моля, изчакайте известно време, докато ние зареждаме последните данни от blockchain.",
"components.Onboarding.Syncing.sync_title": "Добре дошъл отново в Zap портфейла!",
"components.Onboarding.Syncing.waiting_for_peers": "Изчакване за връзки…",
"components.Syncing.block_progress": "Блок {currentBlock} от {totalBlocks}",
"components.Syncing.filter_progress": "Филтър {currentFilter} от {totalFilters}",
"components.Syncing.fund_description": "Можете да внесете пари във вашия портфейл докато чакате синхронизирането.",
"components.Syncing.fund_title": "Внеси пари в Zap портфейла",
"components.Syncing.grab_coffee": "Изглежда, че зареждането може да отнеме повече време. По-добре си направи едно кафе и опитай по-късно!",
"components.Syncing.preparing": "Подготвяне…",
"components.Syncing.sync_caption": "Синхронизиране с blockchain-a",
"components.Syncing.sync_description": "Моля, изчакайте известно време, докато ние зареждаме последните данни от blockchain.",
"components.Syncing.sync_title": "Добре дошъл отново в Zap портфейла!",
"components.Syncing.waiting_for_peers": "Изчакване за връзки…",
"components.Onboarding.alias_description": "Задайте псевдоним, с който ще ви разпознават, в Lightning мрежата",
"components.Onboarding.alias_title": "Как да ви наричаме?",
"components.Onboarding.autopilot_description": "Автопилотът е автоматичен мрежови мениджър. Вместо ръчно да изграждате мрежа от хора за извършване на плащания, разрешете автопилота за да може автоматично да се свържете към Lightning мрежата използвайки 60 % от вашия баланс.",

20
app/translations/ca-ES.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/cs-CZ.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "slovo",
"components.Onboarding.Signup.signup_create": "Vytvořit novou peněženku",
"components.Onboarding.Signup.signup_import": "Importovat existující peněženku",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Během sycnrhonizace si zatím můžete dobít vaši peněženku.",
"components.Onboarding.Syncing.fund_title": "Dobijte vaši Zap peněženku",
"components.Onboarding.Syncing.grab_coffee": "Vypadá to, že to nějakou dobu potrvá - dejte si kávu a nebo to zkuste později!",
"components.Onboarding.Syncing.preparing": "Příprava…",
"components.Onboarding.Syncing.sync_caption": "Synchronizace blockchainu",
"components.Onboarding.Syncing.sync_description": "Prosím čekejte, načítají se aktuální data z blockhainu.",
"components.Onboarding.Syncing.sync_title": "Vítejte zpět do peněženky Zap!",
"components.Onboarding.Syncing.waiting_for_peers": "Čekání na peery…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Během sycnrhonizace si zatím můžete dobít vaši peněženku.",
"components.Syncing.fund_title": "Dobijte vaši Zap peněženku",
"components.Syncing.grab_coffee": "Vypadá to, že to nějakou dobu potrvá - dejte si kávu a nebo to zkuste později!",
"components.Syncing.preparing": "Příprava…",
"components.Syncing.sync_caption": "Synchronizace blockchainu",
"components.Syncing.sync_description": "Prosím čekejte, načítají se aktuální data z blockhainu.",
"components.Syncing.sync_title": "Vítejte zpět do peněženky Zap!",
"components.Syncing.waiting_for_peers": "Čekání na peery…",
"components.Onboarding.alias_description": "Zvolte si přezdívku, aby vás ostatní našli rychleji na Lightning Network",
"components.Onboarding.alias_title": "Jak vám máme říkat?",
"components.Onboarding.autopilot_description": "Autopilot je váš automatický manažer spojení. Místo manuálního přidávání lidí za vás autopilot automaticky vytvoří spojení do Lightning Network. Využije k tomu 60 % vašich prostředků.",

20
app/translations/da-DK.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/de-DE.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "wort",
"components.Onboarding.Signup.signup_create": "Neues Wallet erstellen",
"components.Onboarding.Signup.signup_import": "Bestehendes Wallet importieren",
"components.Onboarding.Syncing.block_progress": "Block {currentBlock} von {totalBlocks}",
"components.Onboarding.Syncing.filter_progress": "Überweisungsfilter {currentFilter} von {totalFilters}",
"components.Onboarding.Syncing.fund_description": "Während der Synchronisation kannst du gleich dein Wallet aufladen.",
"components.Onboarding.Syncing.fund_title": "Lade dein Zap Wallet auf",
"components.Onboarding.Syncing.grab_coffee": "Sieht aus als könnte dies eine Weile dauern. Schnapp dir einen Kaffee oder versuche es später erneut!",
"components.Onboarding.Syncing.preparing": "Wird vorbereitet…",
"components.Onboarding.Syncing.sync_caption": "Synchronisierung mit der Blockchain",
"components.Onboarding.Syncing.sync_description": "Bitte hab Geduld während wir deine aktuellen Daten aus der Blockchain sammeln.",
"components.Onboarding.Syncing.sync_title": "Willkommen zurück in deiner Zap Wallet!",
"components.Onboarding.Syncing.waiting_for_peers": "Warte auf Verbindungen…",
"components.Syncing.block_progress": "Block {currentBlock} von {totalBlocks}",
"components.Syncing.filter_progress": "Überweisungsfilter {currentFilter} von {totalFilters}",
"components.Syncing.fund_description": "Während der Synchronisation kannst du gleich dein Wallet aufladen.",
"components.Syncing.fund_title": "Lade dein Zap Wallet auf",
"components.Syncing.grab_coffee": "Sieht aus als könnte dies eine Weile dauern. Schnapp dir einen Kaffee oder versuche es später erneut!",
"components.Syncing.preparing": "Wird vorbereitet…",
"components.Syncing.sync_caption": "Synchronisierung mit der Blockchain",
"components.Syncing.sync_description": "Bitte hab Geduld während wir deine aktuellen Daten aus der Blockchain sammeln.",
"components.Syncing.sync_title": "Willkommen zurück in deiner Zap Wallet!",
"components.Syncing.waiting_for_peers": "Warte auf Verbindungen…",
"components.Onboarding.alias_description": "Gib deinen Benutzernamen ein, um anderen zu helfen, sich mit dir über das Lightning Network zu verbinden",
"components.Onboarding.alias_title": "Wie sollen wir dich nennen?",
"components.Onboarding.autopilot_description": "Autopilot ist ein automatischer Netzwerkverwalter. Anstatt manuell neue Leute hinzuzufügen um dein Zahlungsnetzwerk zu kreieren, kannst du Autopilot aktivieren um automatisch 60% deines Guthabens für Verbindungen zum Lightning Netzwerk zu verwenden.",

20
app/translations/el-GR.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "λέξη",
"components.Onboarding.Signup.signup_create": "Δημιουργήστε νέο πορτοφόλι",
"components.Onboarding.Signup.signup_import": "Εισαγωγή υπάρχουσας πορτοφόλι",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Μπορεί επίσης να χρηματοδοτήσει το πορτοφόλι σας ενώ περιμένετε να συγχρονιστεί.",
"components.Onboarding.Syncing.fund_title": "Χρηματοδοτήστε το πορτοφόλι σας Zap",
"components.Onboarding.Syncing.grab_coffee": "Αυτό μπορεί να διαρκέσει λίγο. Μπορεί να θέλετε να πιείτε έναν καφέ ή να δοκιμάσετε αργότερα!",
"components.Onboarding.Syncing.preparing": "Προετοιμασία…",
"components.Onboarding.Syncing.sync_caption": "Συγχρονισμός με το blockchain",
"components.Onboarding.Syncing.sync_description": "Παρακαλώ περιμένετε λίγο ενώ φέρουμε όλα τα τελευταία σας δεδομένα από το blockchain.",
"components.Onboarding.Syncing.sync_title": "Καλώς ήρθατε πίσω στο πορτοφόλι σας Zap!",
"components.Onboarding.Syncing.waiting_for_peers": "Αναμονή για συνομηλίκους…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Μπορεί επίσης να χρηματοδοτήσει το πορτοφόλι σας ενώ περιμένετε να συγχρονιστεί.",
"components.Syncing.fund_title": "Χρηματοδοτήστε το πορτοφόλι σας Zap",
"components.Syncing.grab_coffee": "Αυτό μπορεί να διαρκέσει λίγο. Μπορεί να θέλετε να πιείτε έναν καφέ ή να δοκιμάσετε αργότερα!",
"components.Syncing.preparing": "Προετοιμασία…",
"components.Syncing.sync_caption": "Συγχρονισμός με το blockchain",
"components.Syncing.sync_description": "Παρακαλώ περιμένετε λίγο ενώ φέρουμε όλα τα τελευταία σας δεδομένα από το blockchain.",
"components.Syncing.sync_title": "Καλώς ήρθατε πίσω στο πορτοφόλι σας Zap!",
"components.Syncing.waiting_for_peers": "Αναμονή για συνομηλίκους…",
"components.Onboarding.alias_description": "Ορίστε το ψευδώνυμό σας για να βοηθήσει άλλους να συνδεθεί μαζί σας στο δίκτυο Lightning",
"components.Onboarding.alias_title": "Τι να σας καλέσουμε;",
"components.Onboarding.autopilot_description": "Ο αυτόματος πιλότος είναι ένας αυτόματος διαχειριστής δικτύου. Αντί να προσθέσετε με μη αυτόματα άτομα για να δημιουργήσετε το δίκτυό σας για να πραγματοποιήσετε πληρωμές, ενεργοποιήστε τον αυτόματο πιλότο για αυτόματη σύνδεση στο δίκτυο Lightning Network χρησιμοποιώντας το 60% του υπολοίπου σας.",

20
app/translations/en.json

@ -108,16 +108,6 @@
"components.Onboarding.RecoverForm.word_placeholder": "word",
"components.Onboarding.Signup.signup_create": "Create new wallet",
"components.Onboarding.Signup.signup_import": "Import existing wallet",
"components.Onboarding.Syncing.block_progress": "Block {currentBlock} of {totalBlocks}",
"components.Onboarding.Syncing.filter_progress": "Commitment Filter {currentFilter} of {totalFilters}",
"components.Onboarding.Syncing.fund_description": "Might as well fund your wallet while you’re waiting to sync.",
"components.Onboarding.Syncing.fund_title": "Fund your Zap wallet",
"components.Onboarding.Syncing.grab_coffee": "It looks like this could take some time - you might want to grab a coffee or try again later!",
"components.Onboarding.Syncing.preparing": "Preparing…",
"components.Onboarding.Syncing.sync_caption": "Syncing to the blockchain",
"components.Onboarding.Syncing.sync_description": "Please wait a while whilst we fetch all of your latest data from the blockchain.",
"components.Onboarding.Syncing.sync_title": "Welcome back to your Zap wallet!",
"components.Onboarding.Syncing.waiting_for_peers": "Waiting for peers…",
"components.Onboarding.alias_description": "Set your nickname to help others connect with you on the Lightning Network",
"components.Onboarding.alias_title": "What should we call you?",
"components.Onboarding.autopilot_description": "Autopilot is an automatic network manager. Instead of manually adding people to build your network to make payments, enable autopilot to automatically connect you to the Lightning Network using 60% of your balance.",
@ -150,6 +140,16 @@
"components.Settings.Theme.dark": "Dark",
"components.Settings.Theme.light": "Light",
"components.Settings.Theme.title": "Theme",
"components.Syncing.block_progress": "Block {currentBlock} of {totalBlocks}",
"components.Syncing.filter_progress": "Commitment Filter {currentFilter} of {totalFilters}",
"components.Syncing.fund_description": "Might as well fund your wallet while you’re waiting to sync.",
"components.Syncing.fund_title": "Fund your Zap wallet",
"components.Syncing.grab_coffee": "It looks like this could take some time - you might want to grab a coffee or try again later!",
"components.Syncing.preparing": "Preparing…",
"components.Syncing.sync_caption": "Syncing to the blockchain",
"components.Syncing.sync_description": "Please wait a while whilst we fetch all of your latest data from the blockchain.",
"components.Syncing.sync_title": "Welcome back to your Zap wallet!",
"components.Syncing.waiting_for_peers": "Waiting for peers…",
"components.Wallet.ReceiveModal.bitcoin_address": "Bitcoin Address",
"components.Wallet.ReceiveModal.copy_address": "Copy address",
"components.Wallet.ReceiveModal.copy_pubkey": "Copy Pubkey",

20
app/translations/es-ES.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "palabra",
"components.Onboarding.Signup.signup_create": "Crear nueva cartera",
"components.Onboarding.Signup.signup_import": "Importar cartera existente",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Podría agregar fondos a su carteta mientras espera a que sincronice.",
"components.Onboarding.Syncing.fund_title": "Agregue fondos a su cartera Zap",
"components.Onboarding.Syncing.grab_coffee": "¡Parece que esto podría tomar algún tiempo - puede tomar un café o intentarlo más tarde!",
"components.Onboarding.Syncing.preparing": "Preparando…",
"components.Onboarding.Syncing.sync_caption": "Sincronizando la cadena de bloques",
"components.Onboarding.Syncing.sync_description": "Por favor, espere un momento mientras buscamos todos sus datos más recientes en la cadena de bloques.",
"components.Onboarding.Syncing.sync_title": "¡Bienvenido de nuevo a su cartera Zap!",
"components.Onboarding.Syncing.waiting_for_peers": "Esperando por los pares…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Podría agregar fondos a su carteta mientras espera a que sincronice.",
"components.Syncing.fund_title": "Agregue fondos a su cartera Zap",
"components.Syncing.grab_coffee": "¡Parece que esto podría tomar algún tiempo - puede tomar un café o intentarlo más tarde!",
"components.Syncing.preparing": "Preparando…",
"components.Syncing.sync_caption": "Sincronizando la cadena de bloques",
"components.Syncing.sync_description": "Por favor, espere un momento mientras buscamos todos sus datos más recientes en la cadena de bloques.",
"components.Syncing.sync_title": "¡Bienvenido de nuevo a su cartera Zap!",
"components.Syncing.waiting_for_peers": "Esperando por los pares…",
"components.Onboarding.alias_description": "Configura tu apodo para ayudar a otros a conectarse contigo en Lightning Network",
"components.Onboarding.alias_title": "¿Como deberíamos llamarle?",
"components.Onboarding.autopilot_description": "El piloto automatico es un gestor de red automático. En lugar de agregar gente para construir su red para realizar pagos, active el piloto automático para que le conecte automáticamente a la Lightning Network usando el 60% de su balance.",

20
app/translations/fi-FI.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/fr-FR.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "mot",
"components.Onboarding.Signup.signup_create": "Créer un nouveau portefeuille",
"components.Onboarding.Signup.signup_import": "Importer un portefeuille existant",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Vous pourriez approvisionner votre portefeuille en attendant la synchronisation.",
"components.Onboarding.Syncing.fund_title": "Approvisionner votre portefeuille Zap",
"components.Onboarding.Syncing.grab_coffee": "Il semble que cela pourrait prendre un certain temps - vous pouvez prendre un café ou réessayer plus tard !",
"components.Onboarding.Syncing.preparing": "Préparation…",
"components.Onboarding.Syncing.sync_caption": "Synchronisation à la blockchain en cours",
"components.Onboarding.Syncing.sync_description": "Veuillez patienter un peu pendant que nous récupérons toutes vos dernières données depuis la blockchain.",
"components.Onboarding.Syncing.sync_title": "Bienvenue dans votre portefeuille Zap !",
"components.Onboarding.Syncing.waiting_for_peers": "En attente de pairs…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Vous pourriez approvisionner votre portefeuille en attendant la synchronisation.",
"components.Syncing.fund_title": "Approvisionner votre portefeuille Zap",
"components.Syncing.grab_coffee": "Il semble que cela pourrait prendre un certain temps - vous pouvez prendre un café ou réessayer plus tard !",
"components.Syncing.preparing": "Préparation…",
"components.Syncing.sync_caption": "Synchronisation à la blockchain en cours",
"components.Syncing.sync_description": "Veuillez patienter un peu pendant que nous récupérons toutes vos dernières données depuis la blockchain.",
"components.Syncing.sync_title": "Bienvenue dans votre portefeuille Zap !",
"components.Syncing.waiting_for_peers": "En attente de pairs…",
"components.Onboarding.alias_description": "Choisissez un pseudo afin que les autres utilisateurs du Lightning Network puissent se connecter à vous",
"components.Onboarding.alias_title": "Comment devrions nous vous appeler ?",
"components.Onboarding.autopilot_description": "Autopilot est un gestionnaire de réseau automatique. Au lieu d’ajouter manuellement des gens pour construire votre réseau afin d'effectuer des paiements, activez Autopilot pour vous connecter automatiquement au Lightning Networks à l’aide de 60% de votre solde.",

20
app/translations/ga-IE.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "focal",
"components.Onboarding.Signup.signup_create": "Déan sparán nua",
"components.Onboarding.Signup.signup_import": "Iompórtáil sparán reatha",
"components.Onboarding.Syncing.block_progress": "Block {currentBlock} of {totalBlocks}",
"components.Onboarding.Syncing.filter_progress": "Commitment Filter {currentFilter} of {totalFilters}",
"components.Onboarding.Syncing.fund_description": "Fad is go bhfuil tú ag fanacht le sync, d'fhéadfá do sparán a mhaoiniú.",
"components.Onboarding.Syncing.fund_title": "Maoinigh do sparán Zap",
"components.Onboarding.Syncing.grab_coffee": "Breathnaíonn sé nach go dtógfadh sé seo roinnt ama - b'fhéidir gur mhaith leat coffee a fháil agus iarracht a dhéanamh arís ina dhiaidh sin!",
"components.Onboarding.Syncing.preparing": "Ag ullmhú…",
"components.Onboarding.Syncing.sync_caption": "Syncing chuig an blockchain",
"components.Onboarding.Syncing.sync_description": "Fan ar feadh tamaill le do thoil agus faighimid do chuid sonraí is déanaí ón blockchain.",
"components.Onboarding.Syncing.sync_title": "Fáilte ar ais go dtí do sparán Zap!",
"components.Onboarding.Syncing.waiting_for_peers": "Ag fanacht le nasc…",
"components.Syncing.block_progress": "Block {currentBlock} of {totalBlocks}",
"components.Syncing.filter_progress": "Commitment Filter {currentFilter} of {totalFilters}",
"components.Syncing.fund_description": "Fad is go bhfuil tú ag fanacht le sync, d'fhéadfá do sparán a mhaoiniú.",
"components.Syncing.fund_title": "Maoinigh do sparán Zap",
"components.Syncing.grab_coffee": "Breathnaíonn sé nach go dtógfadh sé seo roinnt ama - b'fhéidir gur mhaith leat coffee a fháil agus iarracht a dhéanamh arís ina dhiaidh sin!",
"components.Syncing.preparing": "Ag ullmhú…",
"components.Syncing.sync_caption": "Syncing chuig an blockchain",
"components.Syncing.sync_description": "Fan ar feadh tamaill le do thoil agus faighimid do chuid sonraí is déanaí ón blockchain.",
"components.Syncing.sync_title": "Fáilte ar ais go dtí do sparán Zap!",
"components.Syncing.waiting_for_peers": "Ag fanacht le nasc…",
"components.Onboarding.alias_description": "Socraigh do leasainm chun cuidiú le daoine eile ceangal leat ar an Líonra Lightning",
"components.Onboarding.alias_title": "Cad ba cheart dúinn glaoch ort?",
"components.Onboarding.autopilot_description": "Is bainisteoir líonra uathoibríoch é autopilot. In ionad daoine a chur ar láimh chun do líonra a thógáil chun íocaíochtaí a dhéanamh, cuirfidh tú ar chumas autopilot chun tú féin a nascadh go huathoibríoch leis an Líonra Lightning ag baint úsáide as 60% d'iarmhéid.",

20
app/translations/he-IL.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/hi-IN.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/hr-HR.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "riječ",
"components.Onboarding.Signup.signup_create": "Stvori novi novčanik",
"components.Onboarding.Signup.signup_import": "Uvezi postojeći novčanik",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Mogli biste financirati svoj novčanik dok čekate sinkronizaciju.",
"components.Onboarding.Syncing.fund_title": "Financirajte svoj Zap novčanik",
"components.Onboarding.Syncing.grab_coffee": "Izgleda da ovo može potrajati neko vrijeme - možda želite zgrabiti kavu ili pokušajte kasnije!",
"components.Onboarding.Syncing.preparing": "Priprema...",
"components.Onboarding.Syncing.sync_caption": "Sinkronizacija na blokčein",
"components.Onboarding.Syncing.sync_description": "Molimo pričekajte dok ne dohvatimo sve vaše najnovije podatke sa blokčeina.",
"components.Onboarding.Syncing.sync_title": "Dobro došli natrag u vaš Zap novčanik!",
"components.Onboarding.Syncing.waiting_for_peers": "Čekanje na kolege...",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Mogli biste financirati svoj novčanik dok čekate sinkronizaciju.",
"components.Syncing.fund_title": "Financirajte svoj Zap novčanik",
"components.Syncing.grab_coffee": "Izgleda da ovo može potrajati neko vrijeme - možda želite zgrabiti kavu ili pokušajte kasnije!",
"components.Syncing.preparing": "Priprema...",
"components.Syncing.sync_caption": "Sinkronizacija na blokčein",
"components.Syncing.sync_description": "Molimo pričekajte dok ne dohvatimo sve vaše najnovije podatke sa blokčeina.",
"components.Syncing.sync_title": "Dobro došli natrag u vaš Zap novčanik!",
"components.Syncing.waiting_for_peers": "Čekanje na kolege...",
"components.Onboarding.alias_description": "Postavite svoj nadimak da pomognete drugima povezati se sa vama na Lightning Network",
"components.Onboarding.alias_title": "Kako da te zovemo?",
"components.Onboarding.autopilot_description": "Autopilot je automatski mrežni menadžer. Umjesto ručnog dodavanja ljudi u vašu mrežu za plaćanje, omogućite autopilot da vas automatski spoji na Lightning Network koristeći 60% vašeg salda.",

20
app/translations/hu-HU.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/it-IT.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/ja-JP.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "単語",
"components.Onboarding.Signup.signup_create": "新しいウォレットを作成します。",
"components.Onboarding.Signup.signup_import": "既存のウォレットをインポートします。",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "待っている間、あなたの財布を資金も可能性があります同期します。",
"components.Onboarding.Syncing.fund_title": "Zapウォレットの資金",
"components.Onboarding.Syncing.grab_coffee": "時間がかかりそうです - コーヒーでも入れるか後でやり直して!",
"components.Onboarding.Syncing.preparing": "準備中…",
"components.Onboarding.Syncing.sync_caption": "ブロックチェーンに同期中",
"components.Onboarding.Syncing.sync_description": "ブロックチェーンからの最新データの全てを取得する間、しばらくお待ちください。",
"components.Onboarding.Syncing.sync_title": "おかえりなさい、Zapウォレットへ!",
"components.Onboarding.Syncing.waiting_for_peers": "仲間を待っています…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "待っている間、あなたの財布を資金も可能性があります同期します。",
"components.Syncing.fund_title": "Zapウォレットの資金",
"components.Syncing.grab_coffee": "時間がかかりそうです - コーヒーでも入れるか後でやり直して!",
"components.Syncing.preparing": "準備中…",
"components.Syncing.sync_caption": "ブロックチェーンに同期中",
"components.Syncing.sync_description": "ブロックチェーンからの最新データの全てを取得する間、しばらくお待ちください。",
"components.Syncing.sync_title": "おかえりなさい、Zapウォレットへ!",
"components.Syncing.waiting_for_peers": "仲間を待っています…",
"components.Onboarding.alias_description": "ライトニングネットワークでのあなたと他者の接続のためにあなたのニックネームを設定して下さい。",
"components.Onboarding.alias_title": "私たちはあなたを何と呼べばいいですか?",
"components.Onboarding.autopilot_description": "自動操縦装置は自動ネットワークマネージャーです。支払いをするネットワークを構築する人々を手動で追加するには、代わりにあなたの資金の60%を使用して雷のネットワークに自動的に接続する自動操縦を有効にします。",

20
app/translations/ko-KR.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/nl-NL.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "woord",
"components.Onboarding.Signup.signup_create": "Maak een nieuwe portemonnee aan",
"components.Onboarding.Signup.signup_import": "Importeer een bestaande portefeuille",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Misschien kan je tijdens het wachten alvast Bitcoin storten.",
"components.Onboarding.Syncing.fund_title": "Stort naar je Zap portemonnee",
"components.Onboarding.Syncing.grab_coffee": "Het lijkt erop dat dit even kan duren - een goed moment voor een kop koffie of probeer het later!",
"components.Onboarding.Syncing.preparing": "Voorbereiden…",
"components.Onboarding.Syncing.sync_caption": "Synchroniseren met de blockchain",
"components.Onboarding.Syncing.sync_description": "Wacht alsjeblieft even terwijl we je laatste data uit de blockchain halen.",
"components.Onboarding.Syncing.sync_title": "Welkom terug in je Zap portemonnee!",
"components.Onboarding.Syncing.waiting_for_peers": "Wachten op verbindingen…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Misschien kan je tijdens het wachten alvast Bitcoin storten.",
"components.Syncing.fund_title": "Stort naar je Zap portemonnee",
"components.Syncing.grab_coffee": "Het lijkt erop dat dit even kan duren - een goed moment voor een kop koffie of probeer het later!",
"components.Syncing.preparing": "Voorbereiden…",
"components.Syncing.sync_caption": "Synchroniseren met de blockchain",
"components.Syncing.sync_description": "Wacht alsjeblieft even terwijl we je laatste data uit de blockchain halen.",
"components.Syncing.sync_title": "Welkom terug in je Zap portemonnee!",
"components.Syncing.waiting_for_peers": "Wachten op verbindingen…",
"components.Onboarding.alias_description": "Stel je bijnaam in om anderen met je te laten verbinden op het Lightning Netwerk",
"components.Onboarding.alias_title": "Hoe heet je?",
"components.Onboarding.autopilot_description": "Autopilot is een automatische netwerk manager. In plaats van handmatig met mensen te verbinden voor betalingen op het Lightning Netwerk, kan je de automatische piloot inschakelen. Deze zal automatisch verbindingen voor je aanleggen en hiervoor 60% van je balans inzetten.",

20
app/translations/no-NO.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/pl-PL.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/pt-BR.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "palavra",
"components.Onboarding.Signup.signup_create": "Criar nova carteira",
"components.Onboarding.Signup.signup_import": "Importar carteira existente",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Might as well fund your wallet while you’re waiting to sync.",
"components.Onboarding.Syncing.fund_title": "Envie fundos para sua carteira Zap",
"components.Onboarding.Syncing.grab_coffee": "Parece que isso pode levar algum tempo - você pode ir tomar um café ou tentar novamente mais tarde!",
"components.Onboarding.Syncing.preparing": "Preparando…",
"components.Onboarding.Syncing.sync_caption": "Sincronizar com a blockchain",
"components.Onboarding.Syncing.sync_description": "Por favor, aguarde enquanto buscamos todos os seus dados mais recentes na blockchain.",
"components.Onboarding.Syncing.sync_title": "Bem-vindo de volta à sua carteira Zap!",
"components.Onboarding.Syncing.waiting_for_peers": "Esperando por seus pares…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Might as well fund your wallet while you’re waiting to sync.",
"components.Syncing.fund_title": "Envie fundos para sua carteira Zap",
"components.Syncing.grab_coffee": "Parece que isso pode levar algum tempo - você pode ir tomar um café ou tentar novamente mais tarde!",
"components.Syncing.preparing": "Preparando…",
"components.Syncing.sync_caption": "Sincronizar com a blockchain",
"components.Syncing.sync_description": "Por favor, aguarde enquanto buscamos todos os seus dados mais recentes na blockchain.",
"components.Syncing.sync_title": "Bem-vindo de volta à sua carteira Zap!",
"components.Syncing.waiting_for_peers": "Esperando por seus pares…",
"components.Onboarding.alias_description": "Defina seu apelido para ajudar outros a se conectarem com você na Lightning Network",
"components.Onboarding.alias_title": "Como deveríamos chamá-lo?",
"components.Onboarding.autopilot_description": "Autopilot é um gerenciador automático de rede. Em vez de adicionar manualmente pessoas para construir sua rede de pagamentos, ative o piloto automático para conectá-lo automaticamente à Lightning Network usando 60% de seu saldo.",

20
app/translations/pt-PT.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/ro-RO.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "cuvânt",
"components.Onboarding.Signup.signup_create": "Creeaza un nou portofel",
"components.Onboarding.Signup.signup_import": "Importa un portofel existent",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Poti trimite fonduri in timp ce portofelul se sincronizeaza.",
"components.Onboarding.Syncing.fund_title": "Adauga fonduri pentru portofelul Zap",
"components.Onboarding.Syncing.grab_coffee": "Se pare ca dureaza putin - poate vrei sa iei o cana de cafea si sa incerci mai tarziu!",
"components.Onboarding.Syncing.preparing": "Se pregateste…",
"components.Onboarding.Syncing.sync_caption": "Ne sincronizam cu blockchainul",
"components.Onboarding.Syncing.sync_description": "Te rog sa astepti pana cand sincronizam datele din blockchain.",
"components.Onboarding.Syncing.sync_title": "Bine ai revenit la portofelul tau Zap!",
"components.Onboarding.Syncing.waiting_for_peers": "Asteptam conexiunea cu peers...",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Poti trimite fonduri in timp ce portofelul se sincronizeaza.",
"components.Syncing.fund_title": "Adauga fonduri pentru portofelul Zap",
"components.Syncing.grab_coffee": "Se pare ca dureaza putin - poate vrei sa iei o cana de cafea si sa incerci mai tarziu!",
"components.Syncing.preparing": "Se pregateste…",
"components.Syncing.sync_caption": "Ne sincronizam cu blockchainul",
"components.Syncing.sync_description": "Te rog sa astepti pana cand sincronizam datele din blockchain.",
"components.Syncing.sync_title": "Bine ai revenit la portofelul tau Zap!",
"components.Syncing.waiting_for_peers": "Asteptam conexiunea cu peers...",
"components.Onboarding.alias_description": "Setaţi nickname-ul pentru ii ajuta pe alţii sa se conecteze cu tine pe reţeaua Lightning",
"components.Onboarding.alias_title": "Cum te numesti?",
"components.Onboarding.autopilot_description": "Pilotul automat este un manager de reţea automat. În loc de adăugarea manuală a nodurilor pentru a efectua plăţi, permite pilotului automat sa se conecteze automat la rețeaua Lightning folosind 60 % din balanta.",

20
app/translations/ru-RU.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "слово",
"components.Onboarding.Signup.signup_create": "Создать новый кошелёк",
"components.Onboarding.Signup.signup_import": "Импорт существующего кошелька",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Также можете пополнить свой кошелёк, пока ждете синхронизации.",
"components.Onboarding.Syncing.fund_title": "Пополните ваш Zap кошелёк",
"components.Onboarding.Syncing.grab_coffee": "Похоже, это может занять некоторое время - а вы можете выпить кофе или повторить попытку позже!",
"components.Onboarding.Syncing.preparing": "Подготовка…",
"components.Onboarding.Syncing.sync_caption": "Синхронизация с блокчейном",
"components.Onboarding.Syncing.sync_description": "Пожалуйста, немного подождите, пока мы соберём все ваши последние данные из блокчейна.",
"components.Onboarding.Syncing.sync_title": "Добро пожаловать обратно в ваш Zap кошелёк!",
"components.Onboarding.Syncing.waiting_for_peers": "Ожидание подключений…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Также можете пополнить свой кошелёк, пока ждете синхронизации.",
"components.Syncing.fund_title": "Пополните ваш Zap кошелёк",
"components.Syncing.grab_coffee": "Похоже, это может занять некоторое время - а вы можете выпить кофе или повторить попытку позже!",
"components.Syncing.preparing": "Подготовка…",
"components.Syncing.sync_caption": "Синхронизация с блокчейном",
"components.Syncing.sync_description": "Пожалуйста, немного подождите, пока мы соберём все ваши последние данные из блокчейна.",
"components.Syncing.sync_title": "Добро пожаловать обратно в ваш Zap кошелёк!",
"components.Syncing.waiting_for_peers": "Ожидание подключений…",
"components.Onboarding.alias_description": "Укажите ваш никнейм, чтобы помочь остальным соединиться с вами через сеть Lightning",
"components.Onboarding.alias_title": "Как нам вас называть?",
"components.Onboarding.autopilot_description": "Autopilot является автоматическим сетевым менеджером (менеджером сети). Вместо ручного добавления людей для постройки вашей сети осуществления платежей, включите автопилот автоматически подключить вас к сети Lightning, используя 60% вашего баланса.",

20
app/translations/sr-SP.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/sv-SE.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "ord",
"components.Onboarding.Signup.signup_create": "Skapa ny wallet",
"components.Onboarding.Signup.signup_import": "Importera befintlig wallet",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Passa på att fylla din wallet medans du väntar på att synca.",
"components.Onboarding.Syncing.fund_title": "Fyll din Zap-wallet",
"components.Onboarding.Syncing.grab_coffee": "Det verkar som att detta kan ta lite tid - gå och hämta kaffe eller försök igen senare!",
"components.Onboarding.Syncing.preparing": "Förbereder…",
"components.Onboarding.Syncing.sync_caption": "Syncar med blockkedjan",
"components.Onboarding.Syncing.sync_description": "Vänta en stund medan vi hämtar all din senaste data från blockkedjan.",
"components.Onboarding.Syncing.sync_title": "Välkommen tillbaka till din Zap-wallet!",
"components.Onboarding.Syncing.waiting_for_peers": "Väntar på peers…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Passa på att fylla din wallet medans du väntar på att synca.",
"components.Syncing.fund_title": "Fyll din Zap-wallet",
"components.Syncing.grab_coffee": "Det verkar som att detta kan ta lite tid - gå och hämta kaffe eller försök igen senare!",
"components.Syncing.preparing": "Förbereder…",
"components.Syncing.sync_caption": "Syncar med blockkedjan",
"components.Syncing.sync_description": "Vänta en stund medan vi hämtar all din senaste data från blockkedjan.",
"components.Syncing.sync_title": "Välkommen tillbaka till din Zap-wallet!",
"components.Syncing.waiting_for_peers": "Väntar på peers…",
"components.Onboarding.alias_description": "Ange ditt smeknamn för att hjälpa andra kontakta dig i Lightning Nätverket",
"components.Onboarding.alias_title": "Vad ska vi kalla dig?",
"components.Onboarding.autopilot_description": "Autopilot är en automatisk nätverkshanterare. Istället för att lägga till personer till ditt nätverk manuellt så kan du aktivera autopiloten för att automatiskt ansluta dig till Lightning Network med 60% av ditt tillgängliga saldo.",

20
app/translations/tr-TR.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "kelime",
"components.Onboarding.Signup.signup_create": "Yeni cüzdan oluştur",
"components.Onboarding.Signup.signup_import": "Varolan cüzdanı geri yükle",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Senkronizasyonu beklerken, cüzdanınıza para yatırmak isteyebilirsiniz.",
"components.Onboarding.Syncing.fund_title": "Zap cüzdanınıza para yatırın",
"components.Onboarding.Syncing.grab_coffee": "Bu biraz zaman alabilir - bir çay koymak veya daha sonra yeniden bakmak isteyebilirsiniz gibi görünüyor!",
"components.Onboarding.Syncing.preparing": "Hazırlanıyor…",
"components.Onboarding.Syncing.sync_caption": "Blockchain'e senkronize ediliyor",
"components.Onboarding.Syncing.sync_description": "Lütfen en son verilerinizi blok zincirinden alırken bir süre bekleyin.",
"components.Onboarding.Syncing.sync_title": "Zap cüzdanına tekrar hoş geldiniz!",
"components.Onboarding.Syncing.waiting_for_peers": "Eş bağlantıları için bekleniyor…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Senkronizasyonu beklerken, cüzdanınıza para yatırmak isteyebilirsiniz.",
"components.Syncing.fund_title": "Zap cüzdanınıza para yatırın",
"components.Syncing.grab_coffee": "Bu biraz zaman alabilir - bir çay koymak veya daha sonra yeniden bakmak isteyebilirsiniz gibi görünüyor!",
"components.Syncing.preparing": "Hazırlanıyor…",
"components.Syncing.sync_caption": "Blockchain'e senkronize ediliyor",
"components.Syncing.sync_description": "Lütfen en son verilerinizi blok zincirinden alırken bir süre bekleyin.",
"components.Syncing.sync_title": "Zap cüzdanına tekrar hoş geldiniz!",
"components.Syncing.waiting_for_peers": "Eş bağlantıları için bekleniyor…",
"components.Onboarding.alias_description": "Yıldırım ağında sizi başkalarına tanımlamak için kullanılacak bir rumuz ayarla",
"components.Onboarding.alias_title": "Rumuzunuz?",
"components.Onboarding.autopilot_description": "Otomatik pilot bir otomatik ağ yöneticisidir. Ödeme yapmak için ağ bağlantılarınızı manuel olarak tek tek eklemek yerine, bakiyenizin % 60'ını kullanarak otomatik olarak ağa bağlanmak için otomatik pilotu etkinleştirin.",

20
app/translations/uk-UA.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "слово",
"components.Onboarding.Signup.signup_create": "Створити новий гаманець",
"components.Onboarding.Signup.signup_import": "Імпортувати наявний гаманець",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "Також можуть фінансувати ваш гаманець, поки ви чекаєте синхронізації.",
"components.Onboarding.Syncing.fund_title": "Поповнити ваш гаманець",
"components.Onboarding.Syncing.grab_coffee": "Схоже, це може зайняти деякий час, - ви можете випити чашечку кави чи спробувати пізніше!",
"components.Onboarding.Syncing.preparing": "Підготовка…",
"components.Onboarding.Syncing.sync_caption": "Синхронізація з блокчейном",
"components.Onboarding.Syncing.sync_description": "Будь ласка, зачекайте деякий час, поки ми виберемо всі ваші останні дані з блокчейну.",
"components.Onboarding.Syncing.sync_title": "Ласкаво просимо назад до Zap гаманця!",
"components.Onboarding.Syncing.waiting_for_peers": "Чекаємо підключення…",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "Також можуть фінансувати ваш гаманець, поки ви чекаєте синхронізації.",
"components.Syncing.fund_title": "Поповнити ваш гаманець",
"components.Syncing.grab_coffee": "Схоже, це може зайняти деякий час, - ви можете випити чашечку кави чи спробувати пізніше!",
"components.Syncing.preparing": "Підготовка…",
"components.Syncing.sync_caption": "Синхронізація з блокчейном",
"components.Syncing.sync_description": "Будь ласка, зачекайте деякий час, поки ми виберемо всі ваші останні дані з блокчейну.",
"components.Syncing.sync_title": "Ласкаво просимо назад до Zap гаманця!",
"components.Syncing.waiting_for_peers": "Чекаємо підключення…",
"components.Onboarding.alias_description": "Встановіть Нікнейм для допомоги іншим зв'язатися з вами в мережі Блискавка",
"components.Onboarding.alias_title": "Як до вас звертатися?",
"components.Onboarding.autopilot_description": "Автопілот це автоматичний менеджер мережі. Замість того, щоб вручну додавати людей до створення мережі для здійснення платежів, увімкніть автопілот для автоматично з'єднання з використовуючи 60% від вашого балансу.",

20
app/translations/vi-VN.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "",
"components.Onboarding.Signup.signup_import": "",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "",
"components.Onboarding.Syncing.fund_title": "",
"components.Onboarding.Syncing.grab_coffee": "",
"components.Onboarding.Syncing.preparing": "",
"components.Onboarding.Syncing.sync_caption": "",
"components.Onboarding.Syncing.sync_description": "",
"components.Onboarding.Syncing.sync_title": "",
"components.Onboarding.Syncing.waiting_for_peers": "",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "",
"components.Syncing.fund_title": "",
"components.Syncing.grab_coffee": "",
"components.Syncing.preparing": "",
"components.Syncing.sync_caption": "",
"components.Syncing.sync_description": "",
"components.Syncing.sync_title": "",
"components.Syncing.waiting_for_peers": "",
"components.Onboarding.alias_description": "",
"components.Onboarding.alias_title": "",
"components.Onboarding.autopilot_description": "",

20
app/translations/zh-CN.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "助记词",
"components.Onboarding.Signup.signup_create": "创建钱包",
"components.Onboarding.Signup.signup_import": "导入现有钱包",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "不如在您等待同步Blockchain的时候为您的钱包充值资金。",
"components.Onboarding.Syncing.fund_title": "充值您的Zap钱包",
"components.Onboarding.Syncing.grab_coffee": "看起来这可能需要一些时间。您可以去喝一杯咖啡, 或稍后再试一次!",
"components.Onboarding.Syncing.preparing": "准备中。。。",
"components.Onboarding.Syncing.sync_caption": "同步到 blockchain中..。",
"components.Onboarding.Syncing.sync_description": "请稍候, 我们从 blockchain 中获取您的最新数据。",
"components.Onboarding.Syncing.sync_title": "欢迎回到你的Zap钱包!",
"components.Onboarding.Syncing.waiting_for_peers": "等待peer..。",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "不如在您等待同步Blockchain的时候为您的钱包充值资金。",
"components.Syncing.fund_title": "充值您的Zap钱包",
"components.Syncing.grab_coffee": "看起来这可能需要一些时间。您可以去喝一杯咖啡, 或稍后再试一次!",
"components.Syncing.preparing": "准备中。。。",
"components.Syncing.sync_caption": "同步到 blockchain中..。",
"components.Syncing.sync_description": "请稍候, 我们从 blockchain 中获取您的最新数据。",
"components.Syncing.sync_title": "欢迎回到你的Zap钱包!",
"components.Syncing.waiting_for_peers": "等待peer..。",
"components.Onboarding.alias_description": "设置您的昵称, 以帮助他人与您连接在闪电网络上",
"components.Onboarding.alias_title": "我们该叫您什么?",
"components.Onboarding.autopilot_description": "Autopilot是一个自动网络管理器。而不用手动添加他人来建立您的支付网络, 使Autopilot自动连接到闪电网络将会使用您60%的余额。",

20
app/translations/zh-TW.json

@ -108,16 +108,16 @@
"components.Onboarding.RecoverForm.word_placeholder": "",
"components.Onboarding.Signup.signup_create": "创建钱包",
"components.Onboarding.Signup.signup_import": "导入现有钱包",
"components.Onboarding.Syncing.block_progress": "",
"components.Onboarding.Syncing.filter_progress": "",
"components.Onboarding.Syncing.fund_description": "不如在您等待同步Blockchain的时候为您的钱包充值资金。",
"components.Onboarding.Syncing.fund_title": "充值您的Zap钱包",
"components.Onboarding.Syncing.grab_coffee": "看起来这可能需要一些时间。您可以去喝一杯咖啡, 或稍后再试一次!",
"components.Onboarding.Syncing.preparing": "准备中。。。",
"components.Onboarding.Syncing.sync_caption": "同步到 blockchain中..。",
"components.Onboarding.Syncing.sync_description": "请稍候, 我们从 blockchain 中获取您的最新数据。",
"components.Onboarding.Syncing.sync_title": "欢迎回到你的Zap钱包!",
"components.Onboarding.Syncing.waiting_for_peers": "等待peer..。",
"components.Syncing.block_progress": "",
"components.Syncing.filter_progress": "",
"components.Syncing.fund_description": "不如在您等待同步Blockchain的时候为您的钱包充值资金。",
"components.Syncing.fund_title": "充值您的Zap钱包",
"components.Syncing.grab_coffee": "看起来这可能需要一些时间。您可以去喝一杯咖啡, 或稍后再试一次!",
"components.Syncing.preparing": "准备中。。。",
"components.Syncing.sync_caption": "同步到 blockchain中..。",
"components.Syncing.sync_description": "请稍候, 我们从 blockchain 中获取您的最新数据。",
"components.Syncing.sync_title": "欢迎回到你的Zap钱包!",
"components.Syncing.waiting_for_peers": "等待peer..。",
"components.Onboarding.alias_description": "设置您的昵称, 以帮助他人与您连接在闪电网络上",
"components.Onboarding.alias_title": "我们该叫您什么?",
"components.Onboarding.autopilot_description": "Autopilot是一个自动网络管理器。而不用手动添加他人来建立您的支付网络, 使Autopilot自动连接到闪电网络将会使用您60%的余额。",

1
package.json

@ -305,6 +305,7 @@
"@rebass/components": "^4.0.0-1",
"axios": "^0.18.0",
"bitcoinjs-lib": "^4.0.1",
"connected-react-router": "^4.5.0",
"copy-to-clipboard": "^3.0.8",
"country-data-lookup": "^0.0.3",
"debug": "^4.1.0",

3
test/unit/components/LoadingBolt.spec.js

@ -3,12 +3,13 @@ import { configure } from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
import LoadingBolt from 'components/LoadingBolt'
import CloudLightning from 'components/Icon/CloudLightning'
import { dark } from 'themes'
import { mountWithIntl } from '../__helpers__/intl-enzyme-test-helper'
configure({ adapter: new Adapter() })
describe('component.LoadingBolt', () => {
const el = mountWithIntl(<LoadingBolt theme="dark" />)
const el = mountWithIntl(<LoadingBolt theme={dark} isLoading />)
it('should show defaults', () => {
expect(el.find(CloudLightning)).toHaveLength(1)
expect(el.text()).toContain('loading')

3
test/unit/zap/controller.spec.js

@ -14,9 +14,6 @@ describe('ZapController', function() {
it('should set the "lndConfig" property to a new LndConfig instance', () => {
expect(this.controller.lndConfig).toBeInstanceOf(LndConfig)
})
it('should set the "splashScreenTime" property to 500', () => {
expect(this.controller.splashScreenTime).toEqual(1500)
})
it('should set the "mainWindow" property to undefined', () => {
expect(this.controller.mainWindow).toBeUndefined()
})

438
yarn.lock

@ -703,6 +703,14 @@
pirates "^4.0.0"
source-map-support "^0.5.9"
"@babel/runtime-corejs2@^7.0.0-rc.1":
version "7.1.2"
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.1.2.tgz#8695811a3fd8091f54f274b9320334e5e8c62200"
integrity sha512-drxaPByExlcRDKW4ZLubUO4ZkI8/8ax9k9wve1aEthdLKFzjB7XRkOQ0xoTIWGxqdDnWDElkjYq77bt7yrcYJQ==
dependencies:
core-js "^2.5.7"
regenerator-runtime "^0.12.0"
"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2":
version "7.1.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3"
@ -1019,9 +1027,9 @@
integrity sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw==
"@octokit/rest@^15.2.6":
version "15.13.1"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.13.1.tgz#68b12ff0e470ad70c90e99bbb69f16bcdf62edb4"
integrity sha512-r6aRAZaaUZkTqtI4seaSamvgqmYswXpxclIqUrwtFtOuRAnE7l0aeWU252vQ/mxd1wKZWMq1oFChzk0/qzcYcg==
version "15.15.1"
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-15.15.1.tgz#7863f50f7c5753211ea3e29e10b84c93159e9e37"
integrity sha512-TnuzjE880qbknEFAVqEr3VeOcE0yXo0kJEW+EK8TASpzMbykKCydei6WUmDSV3bq7aI+llkMrBYes1kIjpU7fA==
dependencies:
before-after-hook "^1.1.0"
btoa-lite "^1.0.0"
@ -1117,16 +1125,16 @@
uuid "^3.2.1"
"@storybook/addon-actions@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-4.0.0-rc.0.tgz#c23d5ccb8311f0b13649c877586433b0385a8040"
integrity sha512-LDBLOiH9F2tuD3YvUobThPsZmsKXavG5qdnLYT41XZasDRxNeEiQRC4ydnlAAio/amT9UI8GfSFyS0QrdNlGOg==
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-4.0.0-rc.1.tgz#672ae2fdef62304b5f35bb18a1e98a420cfafee9"
integrity sha512-IO4JQryYu8K8yQe5byOAJPjK2FxmIhl53kx8CD3SqXj9nfasYh4fNtxkTwJ/Lur3kgh+OBi0wNpSt8go+KG7Mg==
dependencies:
"@emotion/core" "^0.13.1"
"@emotion/provider" "^0.11.2"
"@emotion/styled" "^0.10.6"
"@storybook/addons" "4.0.0-rc.0"
"@storybook/components" "4.0.0-rc.0"
"@storybook/core-events" "4.0.0-rc.0"
"@storybook/addons" "4.0.0-rc.1"
"@storybook/components" "4.0.0-rc.1"
"@storybook/core-events" "4.0.0-rc.1"
deep-equal "^1.0.1"
global "^4.3.2"
lodash "^4.17.11"
@ -1160,14 +1168,14 @@
util-deprecate "^1.0.2"
"@storybook/addon-info@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-4.0.0-rc.0.tgz#7038287cfe8ef2cbed6425fa8f719d3d708afe83"
integrity sha512-mORmnghDrSc1ZrtkNrR6O2Mui2q6uzAm4ptXKqDTkpOsa6zoFhIcKn7P4gAkwjOUccSPxtdpLTVTldDf/wWR/Q==
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-4.0.0-rc.1.tgz#30e76f0991678e9b6203af34c746f7744865b23f"
integrity sha512-mCawdYJkm6GuQS9Q60qcGpeCGwFlYw0BcvjNPAbMAnZjjtGG74mCrCBrOqmmsl7/m0YT20Gnkxpmvj7qHxR0Ng==
dependencies:
"@emotion/styled" "^0.10.6"
"@storybook/addons" "4.0.0-rc.0"
"@storybook/client-logger" "4.0.0-rc.0"
"@storybook/components" "4.0.0-rc.0"
"@storybook/addons" "4.0.0-rc.1"
"@storybook/client-logger" "4.0.0-rc.1"
"@storybook/components" "4.0.0-rc.1"
core-js "2.5.7"
global "^4.3.2"
marksy "^6.1.0"
@ -1188,32 +1196,32 @@
prop-types "^15.6.1"
"@storybook/addon-links@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-4.0.0-rc.0.tgz#2a157310544c7a21af7fabc78f17cd65ccfba899"
integrity sha512-FOHWv5H6lQZ384SAkHdx9eS37jKBzvX+glg1Cb6yOpj1DU2ApSbvLNZt8XgDQXXGefE20qU5Ev3jGFO4M8VEcw==
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-4.0.0-rc.1.tgz#608dcfacf15a2ebe07bd192cd8ac981c46fd35df"
integrity sha512-qIYSnH0cr4W5C06N2VOj3EC9iLm24phO0FjrHsZTGO9c7K+3wS7hJLuL3Gq/bFhOeJJx1IDJ75v8YZmXZPgjUA==
dependencies:
"@storybook/addons" "4.0.0-rc.0"
"@storybook/components" "4.0.0-rc.0"
"@storybook/core-events" "4.0.0-rc.0"
"@storybook/addons" "4.0.0-rc.1"
"@storybook/components" "4.0.0-rc.1"
"@storybook/core-events" "4.0.0-rc.1"
global "^4.3.2"
prop-types "^15.6.2"
"@storybook/addon-options@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/addon-options/-/addon-options-4.0.0-rc.0.tgz#23c78da8a120ba1c4cc7af72c1b258e3d0d41ee9"
integrity sha512-+HdZF6MZ9KTT8NBCiSFyoxOFJtJZJVDk9wCjAJcoIeimn2ZVS9yRVi7JWUunGxXzVjDvXbl0YvNsgkV/13iJPg==
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/addon-options/-/addon-options-4.0.0-rc.1.tgz#0b2ba8c195c0a3615f451f15b0dee6a51454f865"
integrity sha512-rrJaKWll7gdcCH+8n/VoGBC0BGAyTeQwlQTW1JENwHzUH8pP0t/tJgZ+9OPdNHd3xUwwSB1UIsq7bsS/WjHMPw==
dependencies:
"@storybook/addons" "4.0.0-rc.0"
"@storybook/addons" "4.0.0-rc.1"
util-deprecate "^1.0.2"
"@storybook/addon-storysource@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/addon-storysource/-/addon-storysource-4.0.0-rc.0.tgz#ec2ce80e0fa93069ec86adff199ba061efc802dc"
integrity sha512-Qpoir2YsiaNvVx96JcMD67rHx6wOpFi13FSJcQgxvxpvYUKKEzn0bVLWupnZ8SZNHCy9SBqGPV+IV2voDEmwXQ==
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/addon-storysource/-/addon-storysource-4.0.0-rc.1.tgz#6033c6ecb8294d521e904327736dfa2a3fa2b4b6"
integrity sha512-YDPGGfQX1nnoHw5dN0sboHMAiDgWX2Ki4Wkk0dsb6Bmn4bC+VUnJGEApNAzMzeUQSPpb1qTRvM3uCLAEXHVUsg==
dependencies:
"@babel/runtime" "^7.1.2"
"@storybook/addons" "4.0.0-rc.0"
"@storybook/components" "4.0.0-rc.0"
"@storybook/addons" "4.0.0-rc.1"
"@storybook/components" "4.0.0-rc.1"
estraverse "^4.2.0"
loader-utils "^1.1.0"
prettier "^1.14.3"
@ -1225,13 +1233,13 @@
resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.4.11.tgz#f3e27c46d80ad1f171888c4aad0a19a8a032d072"
integrity sha512-Uf01aZ1arcpG1prrrCrBCUYW63lDaoG+r/i3TNo1iG9ZaNc+2UHWeuiEedLfHg0fi/q7UnqMNWDiyO3AkEwwrA==
"@storybook/addons@4.0.0-rc.0", "@storybook/addons@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-4.0.0-rc.0.tgz#dabb2d0eff62aa8d1229fbd9af8f1b4b2527dbca"
integrity sha512-VlNxni2uuU9lfLVKzAzbUCiP8I1xtXSHq0b6G7nTctr5Bx8j4T8tssESk1Vnc6Q+o19SARs9gM1GuN4Edq8uWg==
"@storybook/addons@4.0.0-rc.1", "@storybook/addons@^4.0.0-rc.0":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-4.0.0-rc.1.tgz#c4dd29c0c0aa08e0755d73a37201873b777537e4"
integrity sha512-kdNXSC+IfT0PEyVDUKqSxFggJJGRBMcWUQe0TVZGGTW7+dq3yPe5v3y2yiq4DK0RB0FiM+J7uT9pUsVNvEqFiQ==
dependencies:
"@storybook/channels" "4.0.0-rc.0"
"@storybook/components" "4.0.0-rc.0"
"@storybook/channels" "4.0.0-rc.1"
"@storybook/components" "4.0.0-rc.1"
global "^4.3.2"
util-deprecate "^1.0.2"
@ -1244,12 +1252,12 @@
global "^4.3.2"
json-stringify-safe "^5.0.1"
"@storybook/channel-postmessage@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-4.0.0-rc.0.tgz#485b900cbe7b774cff1b5bd57f6bf8b0052ec498"
integrity sha512-zG325xhhvXhKNGcnIg6AQTmMyqoINpI1Hm9ic9NN7j1IM17VVR5L/sFXxp4vWPCIJw9QXm3m3urzcJXMl2IWyw==
"@storybook/channel-postmessage@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-4.0.0-rc.1.tgz#950d217b4d1c34ec928daf1f8d447c48fe90cf02"
integrity sha512-VeNvCxmk8YdeIPmUuqrlP6cs7GWg8zsPEkGIgrJwgQC6a1Jmi2v1JZllSj7eofBLdJZ2F4UJfLNU7Zp5wk3k9w==
dependencies:
"@storybook/channels" "4.0.0-rc.0"
"@storybook/channels" "4.0.0-rc.1"
global "^4.3.2"
json-stringify-safe "^5.0.1"
@ -1258,20 +1266,20 @@
resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.4.11.tgz#853ec40fdfa6c3ae8cff23f0cd86b77a719823f5"
integrity sha512-49A79anI04nhMsNzyk5cF8fa3+HKZkb9RLshtaqvQmM7olQxCrks6cIdE2Y1zMBuyZxX1ARhcBCFVw+PUxkJjA==
"@storybook/channels@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-4.0.0-rc.0.tgz#9e92b40316196d756926fadebb913a3e4d3ba8ee"
integrity sha512-BxYKBnIR/l7L3Lrtng1oAzpOkF4VFa7HF4Mqx9MD/Dlr4kiOKuAuYMDXhVFTvuZ3A0qgJQ3CEMQavZ9WMul13g==
"@storybook/channels@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-4.0.0-rc.1.tgz#319caa14a5774381de4b3d41f090788a9d8c62a0"
integrity sha512-ZoOFvm5SgPC2ML/iI3M/eulkvWh5DSWO0/6FhHgIb9QEsbt6M27jv47tTDUfbEMYMXk9N26N9bCOYb2paqssRQ==
"@storybook/client-logger@3.4.11":
version "3.4.11"
resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-3.4.11.tgz#b592ea227f9f330f50925f7c1c266cc658cbc704"
integrity sha512-rQ1f0ItOd8l4JX0cJpP976jU6c1+yOl1DfNcitL+1/dG4wwuvaB3j4rhe8VwTiFjYe6arm3hMeRzu5mUTVbSVg==
"@storybook/client-logger@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-4.0.0-rc.0.tgz#6f49c36dcc83e3d5b8949975d4c7836a5bca9391"
integrity sha512-EYfoWjlQ5oJTIA8nbNW84n0D39YD4lHRo7jM34GgYCXLeuZQYLxV9FqbedZlFCFny8CSJEHWPeLGzn0DEW+GxQ==
"@storybook/client-logger@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-4.0.0-rc.1.tgz#f60cce37bba545b2bbf8b3b98e5f955f2cb9e6b6"
integrity sha512-tT3gMQELEA1N7iqKb5lL74JlEa5pOXHIVGK5PuF72Eh9t4YU3emAt2nHEtfYdkQnjP1PrAvyOgjCtRdrtLVKEw==
"@storybook/components@3.4.11", "@storybook/components@^3.4.11":
version "3.4.11"
@ -1282,10 +1290,10 @@
glamorous "^4.12.1"
prop-types "^15.6.1"
"@storybook/components@4.0.0-rc.0", "@storybook/components@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/components/-/components-4.0.0-rc.0.tgz#69eeb4a87e401351a13aaad53e4a06bb2e8f5a94"
integrity sha512-1NG1mKkIv5aiFM9fQz+wZP32/XpUhYe2NqrWrdxBNEla9prAKByol+RKXk/dJUyYBXSQVjSDgoVjDnOW0ZPitQ==
"@storybook/components@4.0.0-rc.1", "@storybook/components@^4.0.0-rc.0":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/components/-/components-4.0.0-rc.1.tgz#666a2822d57a2fae32f1ef262dca68e04f6bb6d8"
integrity sha512-Y/AQGvTXy2iKumtYpJtXKdt21p/1pZoL2NXNZ8RXbONWfFcosnmIWGkFM0xYD613MWD9SoAZGtFmxWrQZSu/2Q==
dependencies:
"@emotion/core" "^0.13.1"
"@emotion/provider" "^0.11.2"
@ -1298,10 +1306,10 @@
react-textarea-autosize "^7.0.4"
render-fragment "^0.1.1"
"@storybook/core-events@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-4.0.0-rc.0.tgz#c88d009ce2da5d533b85c6174e5d9b2a3218fcee"
integrity sha512-Lv3XSC70zN0icdQhD9MxjZKgGJoosK7OCYDzJHNlrkveQRVctiyC+CTeRFwTBfmIj6LM3Lts7MFga+j2u6MAgg==
"@storybook/core-events@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-4.0.0-rc.1.tgz#9f523c9ad1e66ce2dde021d449d1911534b61eee"
integrity sha512-Whma1DtNRJmQ8ol5RTYw7ZBLSA+yNbmtFpyTgQ37MQDQRpjFWt3DsHWC1vLWQC0M14Dh6K5fcAxo6hIU9zxG+A==
"@storybook/core@3.4.11":
version "3.4.11"
@ -1336,10 +1344,10 @@
webpack-dev-middleware "^1.12.2"
webpack-hot-middleware "^2.22.1"
"@storybook/core@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/core/-/core-4.0.0-rc.0.tgz#144ef80bcc9026f402c3a2407f1ac55a9a76ee1e"
integrity sha512-0rtwTV0Dai1+GbzFPfnUBn+tHABVwPK+Gl1tcg4OZ0/cEhA7EQ1lW2BYwFnQMj6QggTTlqxFEkgC+R6pU8Pv3Q==
"@storybook/core@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/core/-/core-4.0.0-rc.1.tgz#abbaab93d7dfefb71e558adcdd35774d85569901"
integrity sha512-2R57gkDTQ9BXsBc1p0+stEpOLc4p5LpocyeIcIONYBjcI54i+aQXDC4WamaGRVFVlrZh3xe2BUmRqw9owJLlaQ==
dependencies:
"@babel/plugin-proposal-class-properties" "^7.1.0"
"@babel/plugin-transform-regenerator" "^7.0.0"
@ -1349,19 +1357,20 @@
"@emotion/core" "^0.13.1"
"@emotion/provider" "^0.11.2"
"@emotion/styled" "^0.10.6"
"@storybook/addons" "4.0.0-rc.0"
"@storybook/channel-postmessage" "4.0.0-rc.0"
"@storybook/client-logger" "4.0.0-rc.0"
"@storybook/core-events" "4.0.0-rc.0"
"@storybook/node-logger" "4.0.0-rc.0"
"@storybook/ui" "4.0.0-rc.0"
"@storybook/addons" "4.0.0-rc.1"
"@storybook/channel-postmessage" "4.0.0-rc.1"
"@storybook/client-logger" "4.0.0-rc.1"
"@storybook/core-events" "4.0.0-rc.1"
"@storybook/node-logger" "4.0.0-rc.1"
"@storybook/ui" "4.0.0-rc.1"
airbnb-js-shims "^1 || ^2"
autoprefixer "^9.2.0"
autoprefixer "^9.2.1"
babel-plugin-macros "^2.4.2"
babel-preset-minify "^0.5.0"
boxen "^2.0.0"
case-sensitive-paths-webpack-plugin "^2.1.2"
chalk "^2.4.1"
cli-table3 "0.5.1"
commander "^2.19.0"
common-tags "^1.8.0"
core-js "^2.5.7"
@ -1395,7 +1404,6 @@
shelljs "^0.8.2"
style-loader "^0.23.1"
svg-url-loader "^2.3.2"
tty-table "^2.6.9"
url-loader "^1.1.2"
webpack "^4.20.2"
webpack-dev-middleware "^3.4.0"
@ -1417,10 +1425,10 @@
dependencies:
npmlog "^4.1.2"
"@storybook/node-logger@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-4.0.0-rc.0.tgz#c2677eb16cb0619b3a07b79102e303f4336c55c9"
integrity sha512-7jV8Ae5sZslfIDeR1L0atsJX+M2GR+JergWa7hz0f0tzWPCzKZhOCp3liNjrAqA0givXNkLZdUf3OlxZ0gr8rw==
"@storybook/node-logger@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-4.0.0-rc.1.tgz#655058bc388936bddc25fb5510c626123db9d507"
integrity sha512-66Z9yUm/97NnJOzTl+j3U/dAz+yuXmfcgbyiYnDp5Ed5Lm4Cr5mmVXOKxs8TP9fzQSA6kHUs6fTJvHGIkDgdBA==
dependencies:
"@babel/runtime" "^7.1.2"
npmlog "^4.1.2"
@ -1507,15 +1515,15 @@
webpack-hot-middleware "^2.22.1"
"@storybook/react@^4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/react/-/react-4.0.0-rc.0.tgz#b2345d787d7bc554d07947920ff347d08c32c119"
integrity sha512-aGDNqu1Y4mnQyU7adonHYI7yyHuIvjgxzSYz0kT9XeT+l/XG+N8r1uCrbnA4BxdSJV/B85kjmeV9ct0NuIRhpw==
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/react/-/react-4.0.0-rc.1.tgz#eecd82eb1b05499b8aae0ceff082cc9eb1787681"
integrity sha512-Za9HQdBErDCiSQOdRHcArPDwYZ7+iOXxZCXnedIdraihVuP3mnbfqnvMLLFIYAZwrDM8Bf3+FUB+vZKTlT8Kug==
dependencies:
"@babel/preset-flow" "^7.0.0"
"@babel/preset-react" "^7.0.0"
"@babel/runtime" "^7.1.2"
"@emotion/styled" "^0.10.6"
"@storybook/core" "4.0.0-rc.0"
"@storybook/core" "4.0.0-rc.1"
babel-plugin-react-docgen "^2.0.0"
common-tags "^1.8.0"
global "^4.3.2"
@ -1550,16 +1558,16 @@
react-split-pane "^0.1.77"
react-treebeard "^2.1.0"
"@storybook/ui@4.0.0-rc.0":
version "4.0.0-rc.0"
resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-4.0.0-rc.0.tgz#5a72cfbb42af9b74cb1e988d0e0d8a999de146f2"
integrity sha512-L5IiRqIRXv7tObLVJrO+J1zXdw/jsnCwq2hlGBa1dJ2w1N1sC00SxzekG7p4JmAln41lkvozlQNyRj6SpSFOig==
"@storybook/ui@4.0.0-rc.1":
version "4.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-4.0.0-rc.1.tgz#ca21412ccf9175b200ed1770972c8074e6aff32c"
integrity sha512-njHYoYm8TZ2wmtcMEoot1cUPhzLuoqk0QYr6C23KTMACVWCeoMF1i42dMcF2DBPSwbKALv0dSH4qDGouSjQH7g==
dependencies:
"@emotion/core" "^0.13.1"
"@emotion/provider" "^0.11.2"
"@emotion/styled" "^0.10.6"
"@storybook/components" "4.0.0-rc.0"
"@storybook/core-events" "4.0.0-rc.0"
"@storybook/components" "4.0.0-rc.1"
"@storybook/core-events" "4.0.0-rc.1"
"@storybook/mantra-core" "^1.7.2"
"@storybook/podda" "^1.2.3"
"@storybook/react-komposer" "^2.0.4"
@ -1858,9 +1866,9 @@ agent-base@4, agent-base@^4.1.0, agent-base@~4.2.0:
es6-promisify "^5.0.0"
agentkeepalive@^3.4.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.1.tgz#4eba75cf2ad258fc09efd506cdb8d8c2971d35a4"
integrity sha512-Cte/sTY9/XcygXjJ0q58v//SnEQ7ViWExKyJpLJlLqomDbQyMLh6Is4KuWJ/wmxzhiwkGRple7Gqv1zf6Syz5w==
version "3.5.2"
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67"
integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==
dependencies:
humanize-ms "^1.2.1"
@ -1976,11 +1984,6 @@ ansi-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
ansi-regex@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@ -2376,13 +2379,13 @@ autoprefixer@^7.2.6:
postcss "^6.0.17"
postcss-value-parser "^3.2.3"
autoprefixer@^9.0.0, autoprefixer@^9.2.0:
version "9.2.0"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.2.0.tgz#e46f893882b19a160370e7bcd3ec6bbeaace4d10"
integrity sha512-OuxUyTvzRe9EvKyouPqfr8QUkQ0pH400NOFzI1LFINO8zwgJr7ZTybLql03P//LjR0iWile2lCoy2vRTRSFpMw==
autoprefixer@^9.0.0, autoprefixer@^9.2.1:
version "9.2.1"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.2.1.tgz#1f2f1179ceed4711b7ab064dbd5c3f9e83d9dc62"
integrity sha512-qlK4GnZk8OXLK+8kBn9ttfzu2PkhRe8kVYoWcc9HsrZEMWiBkQuRYdXyJg9cIIKxfMzhh6UbvlJ1CsstMIzxwA==
dependencies:
browserslist "^4.2.1"
caniuse-lite "^1.0.30000890"
caniuse-lite "^1.0.30000892"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss "^7.0.5"
@ -2422,7 +2425,7 @@ babel-code-frame@6.26.0, babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
babel-core@^6.0.0, babel-core@^6.26.0, babel-core@^6.26.3:
babel-core@^6.0.0, babel-core@^6.26.0:
version "6.26.3"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
@ -4013,13 +4016,6 @@ brcast@^3.0.0:
resolved "https://registry.yarnpkg.com/brcast/-/brcast-3.0.1.tgz#6256a8349b20de9eed44257a9b24d71493cd48dd"
integrity sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==
breakword@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.3.tgz#71e091bbb78bb4ef003cf3ed2b2e062c6927f7dd"
integrity sha1-ceCRu7eLtO8APPPtKy4GLGkn990=
dependencies:
wcwidth "^1.0.1"
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@ -4230,7 +4226,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
buffer@^5.1.0:
buffer@^5.0.3, buffer@^5.1.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6"
integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==
@ -4294,9 +4290,9 @@ byline@^5.0.0:
integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
byte-size@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.3.tgz#b7c095efc68eadf82985fccd9a2df43a74fa2ccd"
integrity sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==
version "4.0.4"
resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23"
integrity sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==
bytes@3.0.0:
version "3.0.0"
@ -4445,14 +4441,14 @@ caniuse-api@^1.5.2:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639, caniuse-db@^1.0.30000889:
version "1.0.30000892"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000892.tgz#3a03ecec4283caa5dac49facf024d13113c4499f"
integrity sha512-as/DXjiFJg051+GSJLmkY0hckkVsmTB4nuDUPLwK1sMHk94XsYuocNJuU0wdOpobwI/3sqNeW5ETebvdPGvwBQ==
version "1.0.30000893"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000893.tgz#2781b8d2ce50d8dd9d091425461b528ca4556c07"
integrity sha512-JfGWsX2JtyXnjGAAjXMHiv4OEGFZvArB5pxdd5oa5xCuEYYN1rhBMwogMIKnKoUBi6lKRyO4JQAPJwqchv20Yg==
caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000890:
version "1.0.30000892"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000892.tgz#344d2b51ee3ff5977537da4aa449c90eec40b759"
integrity sha512-X9rxMaWZNbJB5qjkDqPtNv/yfViTeUL6ILk0QJNxLV3OhKC5Acn5vxsuUvllR6B48mog8lmS+whwHq/QIYSL9w==
caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000890, caniuse-lite@^1.0.30000892:
version "1.0.30000893"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000893.tgz#284b20932bd41b93e21626975f2050cb01561986"
integrity sha512-kOddHcTEef+NgN/fs0zmX2brHTNATVOWMEIhlZHCuwQRtXobjSw9pAECc44Op4bTBcavRjkLaPrGomknH7+Jvg==
capture-exit@^1.2.0:
version "1.2.0"
@ -4712,7 +4708,7 @@ cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
cli-table3@^0.5.0:
cli-table3@0.5.1, cli-table3@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202"
integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==
@ -4915,14 +4911,7 @@ columnify@~1.5.4:
strip-ansi "^3.0.0"
wcwidth "^1.0.0"
combined-stream@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
integrity sha1-cj599ugBrFYTETp+RFqbactjKBg=
dependencies:
delayed-stream "~1.0.0"
combined-stream@~1.0.6:
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
@ -5021,6 +5010,11 @@ compression@^1.5.2:
safe-buffer "5.1.2"
vary "~1.1.2"
compute-scroll-into-view@^1.0.9:
version "1.0.11"
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz#7ff0a57f9aeda6314132d8994cce7aeca794fecf"
integrity sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@ -5087,6 +5081,15 @@ connect-history-api-fallback@^1.3.0:
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
integrity sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=
connected-react-router@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-4.5.0.tgz#b6f021cc284a244fbee70e16e5ff0f2a4613e3d3"
integrity sha512-SBBmAZrtmw4y7Rkl2PCct8lN/DuCftl7QSAFLgFyjjuYkeJKAzAvQjzNNNE4R3j2+6a4TUiv8qselxQ4+6H5eA==
dependencies:
immutable "^3.8.1"
redux-seamless-immutable "^0.4.0"
seamless-immutable "^7.1.3"
console-browserify@1.1.x, console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
@ -5565,33 +5568,6 @@ csstype@^2.2.0:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.7.tgz#bf9235d5872141eccfb2d16d82993c6b149179ff"
integrity sha512-Nt5VDyOTIIV4/nRFswoCKps1R5CD1hkiyjBE9/thNaNZILLEviVw9yWQw15+O+CpNjQKB/uvdcxFFOrSflY3Yw==
csv-generate@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-2.2.2.tgz#c37808c5f3ead2deec940794073dd32d492adfd1"
integrity sha512-ETG8JGG0xOt2f1JzxrAcQONVc4+7srUdXeyLnow60ntBr+qiNCFTqi+ME6g0vZ4hMCbrwNrDPJPOYVznAeDDHQ==
csv-parse@^3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-3.1.3.tgz#b96227e85e308f685133cdb2b79ec9a03fde3c1c"
integrity sha512-fs+nzn0lU+e7uZHkY/SvEYiRT3PCvb746csfl238iUXh1D+gzzN4crzgZ7gkVDutoPWYwfrFSQaSAulSeynTlg==
csv-stringify@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-4.3.1.tgz#7bee36f746ef555dd481a735a9e2938965f8478b"
integrity sha512-VRjPYIUzex5kfbsOY7LaJcNE2qMWGQQAanb3/Vv85WbOgA+dAfDNfwntRvv335icJgGYrnTX403WxJxRVpLDFA==
dependencies:
lodash.get "~4.4.2"
csv@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/csv/-/csv-4.0.0.tgz#c7de44b9a0fd47f7a10db24064519f642a7ce92d"
integrity sha512-rj3+HMMIKskeiipg0VkFSx7o8FhrNSfIb1nLT6AkJ0gx7mdGU5JsJGv4tmk0vl1jV/h/TfWJOwh1tpbbhVqNKA==
dependencies:
csv-generate "^2.2.2"
csv-parse "^3.1.2"
csv-stringify "^4.3.1"
stream-transform "^1.0.7"
currency-symbol-map@~4.0.3:
version "4.0.4"
resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-4.0.4.tgz#3cfba625974dd3f86822d327ecbd10248695e95e"
@ -5694,7 +5670,7 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0:
dependencies:
ms "^2.1.1"
debuglog@*, debuglog@^1.0.1:
debuglog@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=
@ -6145,9 +6121,9 @@ dotenv@^6.0.0:
integrity sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw==
downshift@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/downshift/-/downshift-3.1.0.tgz#3a7b4fc26e9d563c745db3a5172437239e0bb8a8"
integrity sha512-lk6uBqobNfnumEitDp/GIAAgLK8ad2lHmieKpwZ8bvl7fDIXvJr/26P+CeI/vvQqrjo4YpBrijUNFr8Qqz1dxg==
version "3.1.1"
resolved "https://registry.yarnpkg.com/downshift/-/downshift-3.1.1.tgz#91e14d45d6ee3e239023cdfcc06248c7f5a1b2b2"
integrity sha512-teJ4ACfySJPC1+nOg6XqSMtCwjQkdXLfM2FlObr5FQAIR2r9TTFFDbXUTvzRA7mSJVf3FQZ/cx9i67Ox0iEy1Q==
dependencies:
"@babel/runtime" "^7.1.2"
compute-scroll-into-view "^1.0.9"
@ -6303,9 +6279,9 @@ electron-store@^2.0.0:
conf "^2.0.0"
electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.79:
version "1.3.79"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.79.tgz#774718f06284a4bf8f578ac67e74508fe659f13a"
integrity sha512-LQdY3j4PxuUl6xfxiFruTSlCniTrTrzAd8/HfsLEMi0PUpaQ0Iy+Pr4N4VllDYjs0Hyu2lkTbvzqlG+PX9NsNw==
version "1.3.80"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz#e99ec7efe64c2c6a269d3885ff411ea88852fa53"
integrity sha512-WClidEWEUNx7OfwXehB0qaxCuetjbKjev2SmXWgybWPLKAThBiMTF/2Pd8GSUDtoGOavxVzdkKwfFAPRSWlkLw==
electron-updater@^3.1.2:
version "3.1.2"
@ -6323,9 +6299,9 @@ electron-updater@^3.1.2:
source-map-support "^0.5.9"
electron@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/electron/-/electron-3.0.4.tgz#9b45a0171ac424d4c134721c9cf2a891b99e80f2"
integrity sha512-GuZ4xCmV8wNNfkUAOdmOmgkYYaTQj5LATzc2i/b3MGhoXghnjECCgxo5yW+G2BeKM+R30cg69KA03tRzmIFxxQ==
version "3.0.5"
resolved "https://registry.yarnpkg.com/electron/-/electron-3.0.5.tgz#5a6f105af3b6314636c7c27a25312602dd36eae6"
integrity sha512-rcHNbhSGfj80Av5p06LgIUxN8wQbrdx8yblikJamDezqxe0B11CJSEJuidz6TJoCRDZuWHt+P5xMAEhp92ZUcA==
dependencies:
"@types/node" "^8.0.24"
electron-download "^4.1.0"
@ -7305,7 +7281,7 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
fbjs@^0.8.1, fbjs@^0.8.12, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.9:
fbjs@^0.8.1, fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.9:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
@ -7617,12 +7593,12 @@ forever-agent@~0.6.1:
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=
version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
dependencies:
asynckit "^0.4.0"
combined-stream "1.0.6"
combined-stream "^1.0.6"
mime-types "^2.1.12"
format@^0.2.2:
@ -8778,7 +8754,7 @@ import-local@^2.0.0:
pkg-dir "^3.0.0"
resolve-cwd "^2.0.0"
imurmurhash@*, imurmurhash@^0.1.4:
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
@ -10511,11 +10487,6 @@ lodash-es@^4.17.5, lodash-es@^4.2.1:
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0"
integrity sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==
lodash._baseindexof@*:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
integrity sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=
lodash._baseuniq@~4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
@ -10524,29 +10495,12 @@ lodash._baseuniq@~4.6.0:
lodash._createset "~4.0.0"
lodash._root "~3.0.0"
lodash._bindcallback@*:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4=
lodash._cacheindexof@*:
version "3.0.2"
resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
integrity sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=
lodash._createcache@*:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
integrity sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=
dependencies:
lodash._getnative "^3.0.0"
lodash._createset@~4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=
lodash._getnative@*, lodash._getnative@^3.0.0:
lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
@ -10591,7 +10545,7 @@ lodash.flattendeep@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=
lodash.get@^4.4.2, lodash.get@~4.4.2:
lodash.get@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
@ -10655,11 +10609,6 @@ lodash.pick@4.4.0, lodash.pick@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
lodash.restparam@*:
version "3.6.1"
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=
lodash.snakecase@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
@ -12734,9 +12683,9 @@ pn@^1.1.0:
integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
portfinder@^1.0.9:
version "1.0.17"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.17.tgz#a8a1691143e46c4735edefcf4fbcccedad26456a"
integrity sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==
version "1.0.18"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.18.tgz#cf1106ff336fd4329b7ce32fda7d17d62c6bcf37"
integrity sha512-KanzLOERzKoX3En5yTiV8K/arnU1ykYVokmtEn0PgCzqKZG9489tqW8ifp9+v3/VJZ5YDjvDt/PAP5WaPgk7FA==
dependencies:
async "^1.5.2"
debug "^2.2.0"
@ -13280,9 +13229,9 @@ progress@^1.1.8:
integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
progress@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=
version "2.0.1"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==
promise-inflight@^1.0.1, promise-inflight@~1.0.1:
version "1.0.1"
@ -13887,6 +13836,11 @@ react-router-dom@^4.3.1:
react-router "^4.3.1"
warning "^4.0.1"
react-router-redux@^4.0.0:
version "4.0.8"
resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-4.0.8.tgz#227403596b5151e182377dab835b5d45f0f8054e"
integrity sha1-InQDWWtRUeGCN32rg1tdRfD4BU4=
react-router-redux@^5.0.0-alpha.9:
version "5.0.0-alpha.9"
resolved "https://registry.yarnpkg.com/react-router-redux/-/react-router-redux-5.0.0-alpha.9.tgz#825431516e0e6f1fd93b8807f6bd595e23ec3d10"
@ -14217,7 +14171,7 @@ readable-stream@~2.1.5:
string_decoder "~0.10.x"
util-deprecate "~1.0.1"
readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0:
readdir-scoped-modules@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c=
@ -14347,6 +14301,14 @@ redux-logger@^3.0.6:
dependencies:
deep-diff "^0.3.5"
redux-seamless-immutable@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/redux-seamless-immutable/-/redux-seamless-immutable-0.4.0.tgz#b50f8680ecc5ef04021551267f78fa1ffd3cf985"
integrity sha512-/oS3fhrize9D3RSHemgJxVllohybRrad5IjccotFy8Ni4IKAPTtX1mqszpiCIl12+7v0dNqBpq6ES6R236AliQ==
dependencies:
react-router-redux "^4.0.0"
seamless-immutable "^7.1.2"
redux-thunk@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
@ -15025,6 +14987,11 @@ scss-tokenizer@^0.2.3:
js-base64 "^2.1.8"
source-map "^0.4.2"
seamless-immutable@^7.1.2, seamless-immutable@^7.1.3:
version "7.1.4"
resolved "https://registry.yarnpkg.com/seamless-immutable/-/seamless-immutable-7.1.4.tgz#6e9536def083ddc4dea0207d722e0e80d0f372f8"
integrity sha512-XiUO1QP4ki4E2PHegiGAlu6r82o5A+6tRh7IkGGTVg/h+UoeX4nFBeCGPOhb4CYjvkqsfm/TUtvOMYC1xmV30A==
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
@ -15289,16 +15256,6 @@ smart-buffer@^4.0.1:
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3"
integrity sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==
smartwrap@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-1.0.9.tgz#7001aa8331482b6fc5021574d68ef04460bb21ca"
integrity sha1-cAGqgzFIK2/FAhV01o7wRGC7Ico=
dependencies:
breakword "^1.0.3"
merge "^1.2.0"
wcwidth "^1.0.1"
yargs "^8.0.1"
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@ -15718,11 +15675,6 @@ stream-shift@^1.0.0:
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
stream-transform@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-1.0.7.tgz#5135dd6c29941a1179212da6083be2cacdebc15a"
integrity sha512-bp27sM5lf75yOZAM0HfKgN7jub2FApKmXUVYnN/zuw4raqtinM3muxzd+ny262opnKvAg5PnMO66N4Eq928ayw==
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@ -15851,13 +15803,6 @@ strip-ansi@4.0.0, strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
strip-ansi@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f"
integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==
dependencies:
ansi-regex "^4.0.0"
strip-bom@3.0.0, strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@ -15946,9 +15891,9 @@ styled-components@^3.4.5:
supports-color "^3.2.3"
styled-components@^4.0.0-beta.10:
version "4.0.0"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.0.0.tgz#bd37d79408246302051cd63f52a3539f70aa3197"
integrity sha512-+SXoKjaXmApQHjQXNY5pxuRpnabR7vnL6J59Gtcj118ll8gsg9MM8gkjWu6Ahc0NB9kLjh3O9Ho2iun6uLunVA==
version "4.0.2"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-4.0.2.tgz#7d4409ada019cdd34c25ba68c4577ea95dbcf0c5"
integrity sha512-VTNCmBLNx0OS2GRaYk0yRAnQVDBCGnnxGkR6+BCmkKVv9VgICO7bEn3UDjlnwCw8hgIyecMzVLOPl+p1zqUxog==
dependencies:
"@emotion/is-prop-valid" "^0.6.8"
babel-plugin-styled-components ">= 1"
@ -16181,6 +16126,13 @@ symbol.prototype.description@^1.0.0:
dependencies:
has-symbols "^1.0.0"
system-components@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/system-components/-/system-components-3.0.1.tgz#a4e7d8a7b184aa0612245a4f1bd54b408132e0c0"
integrity sha512-9awqnq7esNnqgmOOqU4i0w/9/YsJFm+1IS9lAyuk6a52IrcdToFqH7vFJmnr56FNLsXjOFohonmeHs0QOmvWeQ==
dependencies:
styled-system "^3.0.1"
table@^4.0.2:
version "4.0.3"
resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc"
@ -16550,20 +16502,6 @@ tty-browserify@0.0.0:
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
tty-table@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-2.6.9.tgz#dd7960a158324b44ef114843a8ab529ebe395042"
integrity sha512-tO/PFBfELM6AciYPcQm10rqvw95Q0nkSQtcSIQOTcIdEAyLUsi8iN9nZDuCfWTJdD6bvCU0n4oIumGGbJ76hww==
dependencies:
babel-core "^6.26.3"
chalk "^2.4.1"
csv "^4.0.0"
merge "^1.2.0"
smartwrap "^1.0.9"
strip-ansi "^5.0.0"
wcwidth "^1.0.1"
yargs "^12.0.2"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@ -16597,9 +16535,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typeforce@^1.11.3, typeforce@^1.11.5:
version "1.14.0"
resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.14.0.tgz#99e55b60e315396854d448942397b7ccad0eea75"
integrity sha512-VHaLmvQ5etbJVytz5+J8vMSF5wcVgGoeJpU8hovXQY8wB/tnSigfyhwb5z447u+jJk4SGvQ8QHX3ugj4lVkX8w==
version "1.15.1"
resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.15.1.tgz#fe24533cb3dbff2b79a3556bb3a3d4854850b2a5"
integrity sha512-RYgFG+2GXx4V7guHOhW0cvryg/iWAoopbF/WlOI25YoV9rsOQ0E8bKfYAEZbJL0LJ8yVqcwp77tDG+oebBSNNw==
ua-parser-js@^0.7.18:
version "0.7.18"
@ -17165,7 +17103,7 @@ wbuf@^1.1.0, wbuf@^1.7.2:
dependencies:
minimalistic-assert "^1.0.0"
wcwidth@^1.0.0, wcwidth@^1.0.1:
wcwidth@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
@ -17361,9 +17299,9 @@ webpack@^3.11.0:
yargs "^8.0.2"
webpack@^4.20.2:
version "4.20.2"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.20.2.tgz#89f6486b6bb276a91b0823453d377501fc625b5a"
integrity sha512-75WFUMblcWYcocjSLlXCb71QuGyH7egdBZu50FtBGl2Nso8CK3Ej+J7bTZz2FPFq5l6fzCisD9modB7t30ikuA==
version "4.21.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.21.0.tgz#bd03605c0f48c0d4aaaef78ead2769485e5afd92"
integrity sha512-CGBeop4AYR0dcmk9Afl33qQULwTHQCXQPAIBTHMJoy9DpY8FPUDna/NUlAGTr5o5y9QC901Ww3wCY4wNo1X9Lw==
dependencies:
"@webassemblyjs/ast" "1.7.8"
"@webassemblyjs/helper-module-context" "1.7.8"
@ -17775,7 +17713,7 @@ yargs@^7.0.0:
y18n "^3.2.1"
yargs-parser "^5.0.0"
yargs@^8.0.1, yargs@^8.0.2:
yargs@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A=

Loading…
Cancel
Save