import React from 'react' import PropTypes from 'prop-types' import FaExclamationCircle from 'react-icons/lib/fa/exclamation-circle' import { AmountInput, Button, Dropdown } from 'components/UI' import { FormattedNumber, FormattedMessage } from 'react-intl' import messages from './messages' import styles from './SubmitChannelForm.scss' class SubmitChannelForm extends React.Component { constructor(props) { super(props) this.amountInput = React.createRef() } componentDidMount() { // Clear and Focus the amount input field. this.amountInput.current.focusTextInput() } render() { const { closeChannelForm, closeContactsForm, node, contactCapacity, updateContactCapacity, openChannel, fiatTicker, dupeChanInfo, ticker, toggleCurrencyProps: { currencyFilters, onCurrencyFilterClick, contactFormFiatAmount } } = this.props const renderTitle = () => { // if the node has an alias set we will show that with the pubkey in parens // if not, just show the pubkey (would look ugly with rando parens) if (node.alias && node.alias.length) { return `${node.alias} (${node.pub_key})` } return node.pub_key } const renderWarning = dupeChanInfo => { const { alias, activeChannels, capacity, currencyName } = dupeChanInfo const aliasMsg = alias ? {alias} : 'this_node' return (

{' '} {capacity} {currencyName}.

) } const formSubmitted = () => { // dont submit to LND if they havent set channel capacity amount if (contactCapacity <= 0) { return } // submit the channel to LND openChannel({ pubkey: node.pub_key, host: node.addresses[0].addr, local_amt: contactCapacity }) // close the ChannelForm component closeChannelForm() // close the AddChannel component closeContactsForm() } return (

{renderTitle()}

{dupeChanInfo && (
{renderWarning(dupeChanInfo)}
)}
{'≈ '}
) } } SubmitChannelForm.propTypes = { closeChannelForm: PropTypes.func.isRequired, closeContactsForm: PropTypes.func.isRequired, node: PropTypes.object.isRequired, contactCapacity: PropTypes.PropTypes.oneOfType([PropTypes.number, PropTypes.string]), updateContactCapacity: PropTypes.func.isRequired, openChannel: PropTypes.func.isRequired, fiatTicker: PropTypes.string.isRequired, dupeChanInfo: PropTypes.object, ticker: PropTypes.object.isRequired, toggleCurrencyProps: PropTypes.object.isRequired } export default SubmitChannelForm