/ embark-ui / src / containers / ContractDebuggerContainer.js
ContractDebuggerContainer.js
 1  import React, {Component} from 'react';
 2  import {connect} from 'react-redux';
 3  import PropTypes from 'prop-types';
 4  import {startDebug, debugJumpBack, debugJumpForward, debugStepOverForward, debugStepOverBackward, debugStepIntoForward, debugStepIntoBackward} from '../actions';
 5  
 6  import ContractDebugger from '../components/ContractDebugger';
 7  import DataWrapper from "../components/DataWrapper";
 8  import {getContractLogsByContract, debuggerInfo} from "../reducers/selectors";
 9  
10  class ContractDebuggerContainer extends Component {
11    render() {
12      return (
13        <DataWrapper shouldRender={this.props.contractLogs !== undefined } {...this.props} render={() => (
14          <ContractDebugger contract={this.props.contract} startDebug={this.props.startDebug}
15                            debugJumpBack={this.props.debugJumpBack} debugJumpForward={this.props.debugJumpForward}
16                            debugStepOverForward={this.props.debugStepOverForward}
17                            debugStepOverBackward={this.props.debugStepOverBackward}
18                            debugStepIntoForward={this.props.debugStepIntoForward}
19                            debugStepIntoBackward={this.props.debugStepIntoBackward}
20                            debuggerInfo={this.props.debuggerInfo}
21          />
22        )} />
23      );
24    }
25  }
26  
27  function mapStateToProps(state, props) {
28    return {
29      contractLogs: getContractLogsByContract(state, props.contract.className),
30      debuggerInfo: debuggerInfo(state)
31    };
32  }
33  
34  ContractDebuggerContainer.propTypes = {
35    contractLogs: PropTypes.array,
36    fetchContractLogs: PropTypes.func,
37    listenToContractLogs: PropTypes.func,
38    match: PropTypes.object,
39    contract: PropTypes.object,
40    startDebug: PropTypes.func,
41    debugJumpBack: PropTypes.func,
42    debugJumpForward: PropTypes.func,
43    debugStepOverBackward: PropTypes.func,
44    debugStepIntoForward: PropTypes.func,
45    debugStepIntoBackward: PropTypes.func,
46    debugStepOverForward: PropTypes.func,
47    debuggerInfo: PropTypes.object
48  };
49  
50  export default connect(
51    mapStateToProps,
52    {
53      startDebug: startDebug.request,
54      debugJumpBack: debugJumpBack.request,
55      debugJumpForward: debugJumpForward.request,
56      debugStepOverForward: debugStepOverForward.request,
57      debugStepOverBackward: debugStepOverBackward.request,
58      debugStepIntoForward: debugStepIntoForward.request,
59      debugStepIntoBackward: debugStepIntoBackward.request
60    }
61  )(ContractDebuggerContainer);
62