import React from 'react'; import classNames from 'classnames'; import PropTypes from 'prop-types'; const exGrades = [ { "assignment_type":"Exam", "total_possible":6.0, "total_earned":3.0 }, { "assignment_type":"Homework", "total_possible":5.0, }, { "assignment_type":"Homework", "total_possible":11.0, "total_earned":0.0 } ]; class GradeTable extends React.Component { constructor(props) { super(props); } getTableGroup(type, groupIndex) { const {grades} = this.props; const groupData = grades.filter(value => { if (value['assignment_type'] === type) { return value; } }); const multipleAssignments = groupData.length > 1; const rows = groupData.map(({assignment_type, total_possible, total_earned, passing_grade}, index) => { const label = multipleAssignments ? `${assignment_type} ${index + 1}` : assignment_type; return ( {label} {passing_grade}/{total_possible} {total_earned}/{total_possible} ); }); return rows.length ? {rows} : false; } render() { const {assignmentTypes, passingGrade, percentGrade} = this.props; return ( {assignmentTypes.map((type, index) => this.getTableGroup(type, index))}
Assignment Passing You
Total {passingGrade}% *{percentGrade}%
) } }; GradeTable.propTypes = { assignmentTypes: PropTypes.array.isRequired, grades: PropTypes.array.isRequired, passingGrade: PropTypes.number.isRequired, percentGrade: PropTypes.number.isRequired } export default GradeTable;