import React, { Component } from 'react'; import { connect } from 'react-redux'; import { Container, Button, Loader, Input, Message, Grid } from 'semantic-ui-react'; import MainMenu from '../../components/MainMenu'; import { fetchMemberPracticeSummaryReport } from '../../store/actions'; class MemberPracticeSummaryReport extends Component { constructor(props) { super(props); this.state = { year: new Date().getFullYear(), stateError: null, } } onGenerateReportClick = () => { const {fetchMemberPracticeSummaryReport} = this.props; const { year } = this.state; const currentYear = new Date().getFullYear(); const parsedYear = parseInt(year); if (!parsedYear || isNaN(parsedYear)){ this.setState({stateError: 'Year is not a number'}); return; } if (parsedYear > currentYear){ this.setState({stateError: 'Selected year cannot be greater than current year'}); return; } fetchMemberPracticeSummaryReport(year); }; onYearInputChange = (event, data) => { let newYear = parseInt(data.value) if (!newYear || isNaN(newYear)){ newYear = new Date().getFullYear(); } this.setState({year: newYear, stateError: null}) }; render () { const { pendingReport, fetchReportError } = this.props; const { year, stateError } = this.state; let error; error = stateError ? stateError : null; error = fetchReportError ? fetchReportError : error; return (

Member Practice Summary Report



{error && Error

{error}

}
); } } const mapStateToProps = (state) => ({ pendingReport: state.memberPracticeSummaryReport.pending, fetchReportError: state.memberPracticeSummaryReport.error, }); const mapDispatchToProps = (dispatch) => ({ fetchMemberPracticeSummaryReport: (year) => fetchMemberPracticeSummaryReport(dispatch, year), }); export default connect(mapStateToProps, mapDispatchToProps)(MemberPracticeSummaryReport);