/ embark-ui / src / containers / EnsContainer.js
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