Browse Source
Group component related file in a directory named after the component.renovate/lint-staged-8.x
Tom Kirkpatrick
6 years ago
103 changed files with 430 additions and 362 deletions
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import ActivityModal from './ActivityModal' |
|||
|
|||
export default ActivityModal |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
display: block; |
@ -0,0 +1,3 @@ |
|||
import Countdown from './Countdown' |
|||
|
|||
export default Countdown |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import InvoiceModal from './InvoiceModal' |
|||
|
|||
export default InvoiceModal |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import PaymentModal from './PaymentModal' |
|||
|
|||
export default PaymentModal |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import TransactionModal from './TransactionModal' |
|||
|
|||
export default TransactionModal |
@ -1,171 +0,0 @@ |
|||
import React, { Component } from 'react' |
|||
import PropTypes from 'prop-types' |
|||
import Isvg from 'react-inlinesvg' |
|||
|
|||
import x from 'icons/x.svg' |
|||
|
|||
import styles from './AddChannel.scss' |
|||
|
|||
class AddChannel extends Component { |
|||
constructor(props) { |
|||
super(props) |
|||
this.searchInput = React.createRef() |
|||
} |
|||
|
|||
componentDidMount() { |
|||
// Focus the search input field.
|
|||
this.searchInput.current.focus() |
|||
} |
|||
|
|||
render() { |
|||
const { |
|||
contactsform, |
|||
closeContactsForm, |
|||
openSubmitChannelForm, |
|||
updateContactFormSearchQuery, |
|||
updateManualFormSearchQuery, |
|||
setNode, |
|||
activeChannelPubkeys, |
|||
nonActiveChannelPubkeys, |
|||
pendingOpenChannelPubkeys, |
|||
filteredNetworkNodes, |
|||
loadingChannelPubkeys, |
|||
showManualForm, |
|||
openManualForm |
|||
} = this.props |
|||
const renderRightSide = node => { |
|||
if (loadingChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={styles.inactive}> |
|||
<div className={styles.loading}> |
|||
<div className={styles.spinner} /> |
|||
</div> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (activeChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={`${styles.online} ${styles.inactive}`}> |
|||
<span>Online</span> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (nonActiveChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={`${styles.offline} ${styles.inactive}`}> |
|||
<span>Offline</span> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (pendingOpenChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={`${styles.pending} ${styles.inactive}`}> |
|||
<span>Pending</span> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (!node.addresses.length) { |
|||
return <span className={`${styles.private} ${styles.inactive}`}>Private</span> |
|||
} |
|||
|
|||
return ( |
|||
<span |
|||
className={styles.connect} |
|||
onClick={() => { |
|||
// set the node public key for the submit form
|
|||
setNode(node) |
|||
// open the submit form
|
|||
openSubmitChannelForm() |
|||
}} |
|||
> |
|||
Connect |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
const searchUpdated = search => { |
|||
updateContactFormSearchQuery(search) |
|||
|
|||
if (search.includes('@') && search.split('@')[0].length === 66) { |
|||
updateManualFormSearchQuery(search) |
|||
} |
|||
} |
|||
|
|||
return ( |
|||
<div className={styles.container}> |
|||
<header className={styles.header}> |
|||
<input |
|||
type="text" |
|||
placeholder="Search the network..." |
|||
className={styles.searchInput} |
|||
value={contactsform.searchQuery} |
|||
onChange={event => searchUpdated(event.target.value)} |
|||
ref={this.searchInput} |
|||
/> |
|||
<span onClick={closeContactsForm} className={styles.closeIcon}> |
|||
<Isvg src={x} /> |
|||
</span> |
|||
</header> |
|||
|
|||
<section className={styles.nodes}> |
|||
<ul className={styles.networkResults}> |
|||
{filteredNetworkNodes.map(node => ( |
|||
<li key={node.pub_key}> |
|||
<section> |
|||
{node.alias.length > 0 ? ( |
|||
<h2> |
|||
<span>{node.alias.trim()}</span> |
|||
<span> |
|||
({node.pub_key.substr(0, 10)} |
|||
... |
|||
{node.pub_key.substr(node.pub_key.length - 10)}) |
|||
</span> |
|||
</h2> |
|||
) : ( |
|||
<h2> |
|||
<span>{node.pub_key}</span> |
|||
</h2> |
|||
)} |
|||
</section> |
|||
<section>{renderRightSide(node)}</section> |
|||
</li> |
|||
))} |
|||
</ul> |
|||
</section> |
|||
|
|||
{showManualForm && ( |
|||
<section className={styles.manualForm}> |
|||
<p> |
|||
Hm, looks like we can't see that node from here, wanna try to manually connect? |
|||
</p> |
|||
<div className={styles.manualConnectButton} onClick={openManualForm}> |
|||
Connect Manually |
|||
</div> |
|||
</section> |
|||
)} |
|||
</div> |
|||
) |
|||
} |
|||
} |
|||
|
|||
AddChannel.propTypes = { |
|||
contactsform: PropTypes.object.isRequired, |
|||
closeContactsForm: PropTypes.func.isRequired, |
|||
openSubmitChannelForm: PropTypes.func.isRequired, |
|||
updateContactFormSearchQuery: PropTypes.func.isRequired, |
|||
updateManualFormSearchQuery: PropTypes.func.isRequired, |
|||
setNode: PropTypes.func.isRequired, |
|||
activeChannelPubkeys: PropTypes.array.isRequired, |
|||
nonActiveChannelPubkeys: PropTypes.array.isRequired, |
|||
pendingOpenChannelPubkeys: PropTypes.array.isRequired, |
|||
filteredNetworkNodes: PropTypes.array.isRequired, |
|||
loadingChannelPubkeys: PropTypes.array.isRequired, |
|||
showManualForm: PropTypes.bool.isRequired, |
|||
openManualForm: PropTypes.func.isRequired |
|||
} |
|||
|
|||
export default AddChannel |
@ -0,0 +1,158 @@ |
|||
import React from 'react' |
|||
import PropTypes from 'prop-types' |
|||
import Isvg from 'react-inlinesvg' |
|||
|
|||
import x from 'icons/x.svg' |
|||
|
|||
import styles from './AddChannel.scss' |
|||
|
|||
const AddChannel = ({ |
|||
contactsform, |
|||
closeContactsForm, |
|||
openSubmitChannelForm, |
|||
updateContactFormSearchQuery, |
|||
updateManualFormSearchQuery, |
|||
setNode, |
|||
activeChannelPubkeys, |
|||
nonActiveChannelPubkeys, |
|||
pendingOpenChannelPubkeys, |
|||
filteredNetworkNodes, |
|||
loadingChannelPubkeys, |
|||
showManualForm, |
|||
openManualForm |
|||
}) => { |
|||
const renderRightSide = node => { |
|||
if (loadingChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={styles.inactive}> |
|||
<div className={styles.loading}> |
|||
<div className={styles.spinner} /> |
|||
</div> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (activeChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={`${styles.online} ${styles.inactive}`}> |
|||
<span>Online</span> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (nonActiveChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={`${styles.offline} ${styles.inactive}`}> |
|||
<span>Offline</span> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (pendingOpenChannelPubkeys.includes(node.pub_key)) { |
|||
return ( |
|||
<span className={`${styles.pending} ${styles.inactive}`}> |
|||
<span>Pending</span> |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
if (!node.addresses.length) { |
|||
return <span className={`${styles.private} ${styles.inactive}`}>Private</span> |
|||
} |
|||
|
|||
return ( |
|||
<span |
|||
className={styles.connect} |
|||
onClick={() => { |
|||
// set the node public key for the submit form
|
|||
setNode(node) |
|||
// open the submit form
|
|||
openSubmitChannelForm() |
|||
}} |
|||
> |
|||
Connect |
|||
</span> |
|||
) |
|||
} |
|||
|
|||
const searchUpdated = search => { |
|||
updateContactFormSearchQuery(search) |
|||
|
|||
if (search.includes('@') && search.split('@')[0].length === 66) { |
|||
updateManualFormSearchQuery(search) |
|||
} |
|||
} |
|||
|
|||
return ( |
|||
<div className={styles.container}> |
|||
<header className={styles.header}> |
|||
<input |
|||
type="text" |
|||
placeholder="Search the network..." |
|||
className={styles.searchInput} |
|||
value={contactsform.searchQuery} |
|||
onChange={event => searchUpdated(event.target.value)} |
|||
// ref={input => input && input.focus()}
|
|||
/> |
|||
<span onClick={closeContactsForm} className={styles.closeIcon}> |
|||
<Isvg src={x} /> |
|||
</span> |
|||
</header> |
|||
|
|||
<section className={styles.nodes}> |
|||
<ul className={styles.networkResults}> |
|||
{filteredNetworkNodes.map(node => ( |
|||
<li key={node.pub_key}> |
|||
<section> |
|||
{node.alias.length > 0 ? ( |
|||
<h2> |
|||
<span>{node.alias.trim()}</span> |
|||
<span> |
|||
({node.pub_key.substr(0, 10)} |
|||
... |
|||
{node.pub_key.substr(node.pub_key.length - 10)}) |
|||
</span> |
|||
</h2> |
|||
) : ( |
|||
<h2> |
|||
<span>{node.pub_key}</span> |
|||
</h2> |
|||
)} |
|||
</section> |
|||
<section>{renderRightSide(node)}</section> |
|||
</li> |
|||
))} |
|||
</ul> |
|||
</section> |
|||
|
|||
{showManualForm && ( |
|||
<section className={styles.manualForm}> |
|||
<p> |
|||
Hm, looks like we can't see that node from here, wanna try to manually connect? |
|||
</p> |
|||
<div className={styles.manualConnectButton} onClick={openManualForm}> |
|||
Connect Manually |
|||
</div> |
|||
</section> |
|||
)} |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
AddChannel.propTypes = { |
|||
contactsform: PropTypes.object.isRequired, |
|||
closeContactsForm: PropTypes.func.isRequired, |
|||
openSubmitChannelForm: PropTypes.func.isRequired, |
|||
updateContactFormSearchQuery: PropTypes.func.isRequired, |
|||
updateManualFormSearchQuery: PropTypes.func.isRequired, |
|||
setNode: PropTypes.func.isRequired, |
|||
activeChannelPubkeys: PropTypes.array.isRequired, |
|||
nonActiveChannelPubkeys: PropTypes.array.isRequired, |
|||
pendingOpenChannelPubkeys: PropTypes.array.isRequired, |
|||
filteredNetworkNodes: PropTypes.array.isRequired, |
|||
loadingChannelPubkeys: PropTypes.array.isRequired, |
|||
showManualForm: PropTypes.bool.isRequired, |
|||
openManualForm: PropTypes.func.isRequired |
|||
} |
|||
|
|||
export default AddChannel |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import AddChannel from './AddChannel' |
|||
|
|||
export default AddChannel |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: absolute; |
@ -0,0 +1,3 @@ |
|||
import ChannelForm from './ChannelForm' |
|||
|
|||
export default ChannelForm |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: absolute; |
@ -0,0 +1,3 @@ |
|||
import ConnectManually from './ConnectManually' |
|||
|
|||
export default ConnectManually |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.header { |
|||
display: flex; |
@ -0,0 +1,3 @@ |
|||
import ContactModal from './ContactModal' |
|||
|
|||
export default ContactModal |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.modal { |
|||
position: absolute; |
@ -0,0 +1,3 @@ |
|||
import ContactsForm from './ContactsForm' |
|||
|
|||
export default ContactsForm |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.network { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import Network from './Network' |
|||
|
|||
export default Network |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.content { |
|||
padding: 0 40px; |
@ -0,0 +1,3 @@ |
|||
import SubmitChannelForm from './SubmitChannelForm' |
|||
|
|||
export default SubmitChannelForm |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import SuggestedNodes from './SuggestedNodes' |
|||
|
|||
export default SuggestedNodes |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
padding: 0 40px; |
@ -0,0 +1,3 @@ |
|||
import Pay from './Pay' |
|||
|
|||
export default Pay |
@ -1,149 +0,0 @@ |
|||
import React, { Component } from 'react' |
|||
import PropTypes from 'prop-types' |
|||
|
|||
import Isvg from 'react-inlinesvg' |
|||
import hand from 'icons/hand.svg' |
|||
import FaAngleDown from 'react-icons/lib/fa/angle-down' |
|||
|
|||
import { btc } from 'lib/utils' |
|||
import AmountInput from 'components/AmountInput' |
|||
import styles from './Request.scss' |
|||
|
|||
class Request extends Component { |
|||
constructor(props) { |
|||
super(props) |
|||
this.amountInput = React.createRef() |
|||
} |
|||
|
|||
componentDidMount() { |
|||
const { setRequestMemo, setRequestAmount } = this.props |
|||
|
|||
// Clear the form of any previous data.
|
|||
setRequestMemo('') |
|||
setRequestAmount('') |
|||
|
|||
// Focus the amount input field.
|
|||
this.amountInput.current.focusTextInput() |
|||
} |
|||
|
|||
render() { |
|||
const { |
|||
requestform: { amount, memo, showCurrencyFilters }, |
|||
ticker, |
|||
|
|||
setRequestAmount, |
|||
setRequestMemo, |
|||
setCurrency, |
|||
setRequestCurrencyFilters, |
|||
currencyName, |
|||
requestFiatAmount, |
|||
|
|||
currentCurrencyFilters, |
|||
|
|||
onRequestSubmit |
|||
} = this.props |
|||
|
|||
const onCurrencyFilterClick = currency => { |
|||
// change the input amount
|
|||
setRequestAmount(btc.convert(ticker.currency, currency, amount)) |
|||
|
|||
setCurrency(currency) |
|||
setRequestCurrencyFilters(false) |
|||
} |
|||
|
|||
return ( |
|||
<div className={styles.container}> |
|||
<header className={styles.header}> |
|||
<Isvg src={hand} /> |
|||
<h1>Request Payment</h1> |
|||
</header> |
|||
|
|||
<div className={styles.content}> |
|||
<section className={styles.amount}> |
|||
<div className={styles.top}> |
|||
<label htmlFor="amount">Amount</label> |
|||
<span /> |
|||
</div> |
|||
<div className={styles.bottom}> |
|||
<AmountInput |
|||
id="amount" |
|||
amount={amount} |
|||
currency={ticker.currency} |
|||
onChangeEvent={setRequestAmount} |
|||
ref={this.amountInput} |
|||
/> |
|||
<div className={styles.currency}> |
|||
<section |
|||
className={styles.currentCurrency} |
|||
onClick={() => setRequestCurrencyFilters(!showCurrencyFilters)} |
|||
> |
|||
<span>{currencyName}</span> |
|||
<span> |
|||
<FaAngleDown /> |
|||
</span> |
|||
</section> |
|||
<ul className={showCurrencyFilters ? styles.active : undefined}> |
|||
{currentCurrencyFilters.map(filter => ( |
|||
<li key={filter.key} onClick={() => onCurrencyFilterClick(filter.key)}> |
|||
{filter.name} |
|||
</li> |
|||
))} |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
|
|||
<div className={styles.fiatAmount}>{`≈ ${requestFiatAmount || 0} ${ |
|||
ticker.fiatTicker |
|||
}`}</div>
|
|||
</section> |
|||
|
|||
<section className={styles.memo}> |
|||
<div className={styles.top}> |
|||
<label htmlFor="memo">Memo</label> |
|||
</div> |
|||
<div className={styles.bottom}> |
|||
<input |
|||
type="text" |
|||
placeholder="Details about the request" |
|||
value={memo} |
|||
onChange={event => setRequestMemo(event.target.value)} |
|||
id="memo" |
|||
/> |
|||
</div> |
|||
</section> |
|||
|
|||
<section className={styles.submit}> |
|||
<div |
|||
className={`${styles.button} ${amount > 0 ? styles.active : undefined}`} |
|||
onClick={onRequestSubmit} |
|||
> |
|||
Request |
|||
</div> |
|||
</section> |
|||
</div> |
|||
</div> |
|||
) |
|||
} |
|||
} |
|||
|
|||
Request.propTypes = { |
|||
requestform: PropTypes.shape({ |
|||
amount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), |
|||
memo: PropTypes.string |
|||
}).isRequired, |
|||
|
|||
requestFiatAmount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), |
|||
currencyName: PropTypes.string.isRequired, |
|||
|
|||
currentCurrencyFilters: PropTypes.array.isRequired, |
|||
|
|||
setRequestAmount: PropTypes.func.isRequired, |
|||
setRequestMemo: PropTypes.func.isRequired, |
|||
onRequestSubmit: PropTypes.func.isRequired, |
|||
setCurrency: PropTypes.func.isRequired, |
|||
setRequestCurrencyFilters: PropTypes.func.isRequired, |
|||
|
|||
ticker: PropTypes.object.isRequired |
|||
} |
|||
|
|||
export default Request |
@ -0,0 +1,128 @@ |
|||
import React from 'react' |
|||
import PropTypes from 'prop-types' |
|||
|
|||
import Isvg from 'react-inlinesvg' |
|||
import hand from 'icons/hand.svg' |
|||
import FaAngleDown from 'react-icons/lib/fa/angle-down' |
|||
|
|||
import { btc } from 'lib/utils' |
|||
import AmountInput from 'components/AmountInput' |
|||
import styles from './Request.scss' |
|||
|
|||
const Request = ({ |
|||
requestform: { amount, memo, showCurrencyFilters }, |
|||
ticker, |
|||
|
|||
setRequestAmount, |
|||
setRequestMemo, |
|||
setCurrency, |
|||
setRequestCurrencyFilters, |
|||
currencyName, |
|||
requestFiatAmount, |
|||
|
|||
currentCurrencyFilters, |
|||
|
|||
onRequestSubmit |
|||
}) => { |
|||
const onCurrencyFilterClick = currency => { |
|||
// change the input amount
|
|||
setRequestAmount(btc.convert(ticker.currency, currency, amount)) |
|||
|
|||
setCurrency(currency) |
|||
setRequestCurrencyFilters(false) |
|||
} |
|||
|
|||
return ( |
|||
<div className={styles.container}> |
|||
<header className={styles.header}> |
|||
<Isvg src={hand} /> |
|||
<h1>Request Payment</h1> |
|||
</header> |
|||
|
|||
<div className={styles.content}> |
|||
<section className={styles.amount}> |
|||
<div className={styles.top}> |
|||
<label htmlFor="amount">Amount</label> |
|||
<span /> |
|||
</div> |
|||
<div className={styles.bottom}> |
|||
<AmountInput |
|||
id="amount" |
|||
amount={amount} |
|||
currency={ticker.currency} |
|||
onChangeEvent={setRequestAmount} |
|||
/> |
|||
<div className={styles.currency}> |
|||
<section |
|||
className={styles.currentCurrency} |
|||
onClick={() => setRequestCurrencyFilters(!showCurrencyFilters)} |
|||
> |
|||
<span>{currencyName}</span> |
|||
<span> |
|||
<FaAngleDown /> |
|||
</span> |
|||
</section> |
|||
<ul className={showCurrencyFilters ? styles.active : undefined}> |
|||
{currentCurrencyFilters.map(filter => ( |
|||
<li key={filter.key} onClick={() => onCurrencyFilterClick(filter.key)}> |
|||
{filter.name} |
|||
</li> |
|||
))} |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
|
|||
<div className={styles.fiatAmount}>{`≈ ${requestFiatAmount || 0} ${ |
|||
ticker.fiatTicker |
|||
}`}</div>
|
|||
</section> |
|||
|
|||
<section className={styles.memo}> |
|||
<div className={styles.top}> |
|||
<label htmlFor="memo">Memo</label> |
|||
</div> |
|||
<div className={styles.bottom}> |
|||
<input |
|||
type="text" |
|||
placeholder="Details about the request" |
|||
value={memo} |
|||
onChange={event => setRequestMemo(event.target.value)} |
|||
id="memo" |
|||
/> |
|||
</div> |
|||
</section> |
|||
|
|||
<section className={styles.submit}> |
|||
<div |
|||
className={`${styles.button} ${amount > 0 ? styles.active : undefined}`} |
|||
onClick={onRequestSubmit} |
|||
> |
|||
Request |
|||
</div> |
|||
</section> |
|||
</div> |
|||
</div> |
|||
) |
|||
} |
|||
|
|||
Request.propTypes = { |
|||
requestform: PropTypes.shape({ |
|||
amount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), |
|||
memo: PropTypes.string |
|||
}).isRequired, |
|||
|
|||
requestFiatAmount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), |
|||
currencyName: PropTypes.string.isRequired, |
|||
|
|||
currentCurrencyFilters: PropTypes.array.isRequired, |
|||
|
|||
setRequestAmount: PropTypes.func.isRequired, |
|||
setRequestMemo: PropTypes.func.isRequired, |
|||
onRequestSubmit: PropTypes.func.isRequired, |
|||
setCurrency: PropTypes.func.isRequired, |
|||
setRequestCurrencyFilters: PropTypes.func.isRequired, |
|||
|
|||
ticker: PropTypes.object.isRequired |
|||
} |
|||
|
|||
export default Request |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
padding: 0 40px; |
@ -0,0 +1,3 @@ |
|||
import Request from './Request' |
|||
|
|||
export default Request |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.alias { |
|||
background: transparent; |
@ -0,0 +1,3 @@ |
|||
import Alias from './Alias' |
|||
|
|||
export default Alias |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import Autopilot from './Autopilot' |
|||
|
|||
export default Autopilot |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import BtcPayServer from './BtcPayServer' |
|||
|
|||
export default BtcPayServer |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import ConnectionConfirm from './ConnectionConfirm' |
|||
|
|||
export default ConnectionConfirm |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import ConnectionDetails from './ConnectionDetails' |
|||
|
|||
export default ConnectionDetails |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import ConnectionType from './ConnectionType' |
|||
|
|||
export default ConnectionType |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import FormContainer from './FormContainer' |
|||
|
|||
export default FormContainer |
@ -1,7 +1,7 @@ |
|||
import React from 'react' |
|||
import PropTypes from 'prop-types' |
|||
import Login from './Login' |
|||
import Signup from './Signup' |
|||
import Signup from 'components/Onboarding/Signup' |
|||
import Login from 'components/Onboarding/Login' |
|||
import styles from './InitWallet.scss' |
|||
|
|||
const InitWallet = ({ hasSeed, loginProps, signupProps }) => ( |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import InitWallet from './InitWallet' |
|||
|
|||
export default InitWallet |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import Login from './Login' |
|||
|
|||
export default Login |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.input:nth-child(2) { |
|||
margin-top: 30px; |
@ -0,0 +1,3 @@ |
|||
import NewWalletPassword from './NewWalletPassword' |
|||
|
|||
export default NewWalletPassword |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
font-size: 14px; |
@ -0,0 +1,3 @@ |
|||
import NewWalletSeed from './NewWalletSeed' |
|||
|
|||
export default NewWalletSeed |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.seedContainer { |
|||
display: flex; |
@ -0,0 +1,3 @@ |
|||
import ReEnterSeed from './ReEnterSeed' |
|||
|
|||
export default ReEnterSeed |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.seedContainer { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import RecoverForm from './RecoverForm' |
|||
|
|||
export default RecoverForm |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
color: $white; |
@ -0,0 +1,3 @@ |
|||
import Signup from './Signup' |
|||
|
|||
export default Signup |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.container { |
|||
position: relative; |
@ -0,0 +1,3 @@ |
|||
import Syncing from './Syncing' |
|||
|
|||
export default Syncing |
@ -1,4 +1,4 @@ |
|||
@import '../../styles/variables.scss'; |
|||
@import '../../../styles/variables.scss'; |
|||
|
|||
.submenuHeader { |
|||
padding: 20px; |
@ -0,0 +1,3 @@ |
|||
import Fiat from './Fiat' |
|||
|
|||
export default Fiat |
@ -0,0 +1,3 @@ |
|||
import Menu from './Menu' |
|||
|
|||
export default Menu |
@ -0,0 +1,3 @@ |
|||
import Settings from './Settings' |
|||
|
|||
export default Settings |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue