diff --git a/src/actions/statistics.js b/src/actions/statistics.js index f52e6ff6d33173bda30f6a71af9107b663d30c03..17aab14915e672deb567e26291cf1c2cf8706b77 100644 --- a/src/actions/statistics.js +++ b/src/actions/statistics.js @@ -8,6 +8,7 @@ import { WRITE_EVENT, ADD_EVENT, DELETE_EVENT, + GET_TRAINEE_BY_ID, } from './types'; export const getEvents = () => ( @@ -38,6 +39,20 @@ export const getEventById = id => ( } ); +export const getTraineeById = id => ( + async (dispatch) => { + try { + const response = await axios.get(`/api/v1/profiles/${id}`); + dispatch({ + type: GET_TRAINEE_BY_ID, + payload: response.data, + }); + } catch (e) { + console.log(e); + } + } +); + export const getTrainees = () => ( async (dispatch) => { try { diff --git a/src/components/Main.js b/src/components/Main.js index 8f917c698f0801312f9870b569a30b4a5b83a1d1..0ddccfce750efe40cc8e07f29b791e9613989708 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -10,6 +10,7 @@ import Statistics from './pages/Statistics'; import Groups from './pages/Groups'; import News from './pages/News'; import EventDetail from './pages/EventDetail'; +import TraineeDetail from './pages/TraineeDetail'; const Main = () => ( <Switch> @@ -22,6 +23,7 @@ const Main = () => ( <Route path='/statistics' component={Statistics} /> <Route path='/groups' component={Groups} /> <Route path='/events/:id' component={EventDetail} /> + <Route path='/trainees/:id' component={TraineeDetail} /> <Route component={NotFound} /> </Switch> ); diff --git a/src/components/pages/TraineeDetail.js b/src/components/pages/TraineeDetail.js new file mode 100644 index 0000000000000000000000000000000000000000..acd5a02d6ca809cc7ef426977ce1cff21a9be9a5 --- /dev/null +++ b/src/components/pages/TraineeDetail.js @@ -0,0 +1,57 @@ +import React, { Component } from 'react'; +import { + Container, + Item, + Button, + Comment, + Form, + Header, + Table, + Icon, + Checkbox, +} from 'semantic-ui-react'; +import { connect } from 'react-redux'; +import moment from 'moment'; +import { getEvents, getTraineeById } from '../../actions/statistics'; + +class TraineeDetail extends Component { + + componentWillMount() { + this.props.getTraineeById(this.props.match.params.id); + //this.props.getNotesByTrainee(this.props.match.params.id); + this.props.getEvents(); + } + + renderTrainee() { + const { full_name, nick } = this.props.selectedTrainee; + return ( + <Item> + <Item.Header as='h2'>{full_name}</Item.Header> + <Item.Header as='h3'>{nick}</Item.Header> + </Item> + ); + } + + render() { + return ( + <Container> + <Container textAlign='center'> + { this.props.selectedTrainee ? + this.renderTrainee() + : + '' + } + </Container> + <Container + style={{ + padding: '80px', + }} + /> + </Container> + ); + } +} + +const mapStateToProps = ({ events: { events }, trainees: { selectedTrainee } }) => ( { events, selectedTrainee }); + +export default connect(mapStateToProps, { getEvents, getTraineeById })(TraineeDetail);