spolnik/JAlgoArena-UI

View on GitHub
src/client/ranking/pages/teamRanking.tsx

Summary

Maintainability
B
6 hrs
Test Coverage
import * as React from 'react';
import {Grid, Col, PageHeader} from 'react-bootstrap';
import {connect} from 'react-redux';
 
import {fetchRanking} from "../actions/index";
import {TeamRankingTable} from '../components/TeamRankingTable';
import {RankingEntry} from "../domain/RankingEntry";
import {AppState} from "../../common/reducers/index";
import {Dispatch} from "redux";
 
interface TeamRankingProps {
ranking: Array<RankingEntry>
onLoad: () => void
}
 
Similar blocks of code found in 2 locations. Consider refactoring.
class TeamRanking extends React.Component<TeamRankingProps, {}> {
 
componentDidMount() {
this.props.onLoad();
}
 
render() {
 
let ranking = this.props.ranking.map ? this.props.ranking : [];
 
return (
<Grid>
<Col mdOffset={2} md={8}>
<PageHeader>Team Ranking</PageHeader>
<TeamRankingTable ranking={ranking} />
</Col>
</Grid>
);
}
}
 
const mapStateToProps = (state: AppState) => {
return {
ranking: state.ranking.general
};
};
 
Identical blocks of code found in 2 locations. Consider refactoring.
const mapDispatchToProps = (dispatch: Dispatch<any>) => {
return {
onLoad: () => {
dispatch<any>(fetchRanking());
}
}
};
 
const TeamRankingPage = connect(
mapStateToProps,
mapDispatchToProps
)(TeamRanking);
 
export {TeamRankingPage};