EnsContainer.js
1 import PropTypes from "prop-types"; 2 import React, {Component} from 'react'; 3 import connect from "react-redux/es/connect/connect"; 4 import {Alert, Row, Col} from 'reactstrap'; 5 import {ensRecord, ensRecords} from "../actions"; 6 import EnsRegister from "../components/EnsRegister"; 7 import EnsLookup from "../components/EnsLookup"; 8 import EnsResolve from "../components/EnsResolve"; 9 import {getEnsRecords, isEnsEnabled, getEnsErrors} from "../reducers/selectors"; 10 11 class EnsContainer extends Component { 12 13 showEns() { 14 return ( 15 <Row className="justify-content-md-center"> 16 <Col xs="12" sm="9" lg="6"> 17 <EnsLookup lookup={this.props.lookup} ensRecords={this.props.ensRecords}/> 18 <EnsResolve resolve={this.props.resolve} ensRecords={this.props.ensRecords}/> 19 <EnsRegister register={this.props.register} ensRecords={this.props.ensRecords} ensErrors={this.props.ensErrors}/> 20 </Col> 21 </Row> 22 ); 23 } 24 25 showWarning() { 26 return <Alert color="warning">Please enable Ens in Embark first</Alert>; 27 } 28 29 render() { 30 return ( 31 <React.Fragment> 32 {this.props.isEnsEnabled ? this.showEns() : this.showWarning()} 33 </React.Fragment> 34 ); 35 } 36 } 37 38 EnsContainer.propTypes = { 39 ensRecords: PropTypes.array, 40 resolve: PropTypes.func, 41 lookup: PropTypes.func, 42 register: PropTypes.func, 43 isEnsEnabled: PropTypes.bool, 44 ensErrors: PropTypes.string 45 }; 46 47 function mapStateToProps(state) { 48 return { 49 ensRecords: getEnsRecords(state), 50 ensErrors: getEnsErrors(state), 51 isEnsEnabled: isEnsEnabled(state) 52 }; 53 } 54 55 export default connect( 56 mapStateToProps, 57 { 58 resolve: ensRecord.resolve, 59 lookup: ensRecord.lookup, 60 register: ensRecords.post 61 } 62 )(EnsContainer); 63