src/components/Customers/index.js (27 lines of code) (raw):

import React, { Component } from 'react'; import PropTypes from "prop-types" import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; import classnames from 'classnames'; import './style.css'; import CustomersList from '../CustomersList'; import * as customerActions from '../../actions/customerActions'; import { withTransaction } from '@elastic/apm-rum-react' class Customers extends Component { componentDidMount() { this.props.actions.loadCustomers(); } componentWillUnmount() { this.props.actions.unloadCustomers(); } render() { const { className } = this.props; return ( <div className={classnames('Customers', className)}> <div className="ui vertical stripe segment"> <div className="ui container"> <h1 className="ui header">All customers</h1> <CustomersList customers={this.props.customers} /> </div> </div> </div> ); } } Customers.propTypes = { customers: PropTypes.object.isRequired }; function mapStateToProps(state, ownProps) { return { customers: state.customers }; } function mapDispatchToProps(dispatch) { return {actions: bindActionCreators(customerActions, dispatch)} } export default withTransaction('Customers', 'Component')(connect(mapStateToProps, mapDispatchToProps)(Customers));