import React, { Component } from "react"; import { connect } from "react-redux"; import { Redirect, Link } from "react-router-dom"; import { Button, Container, Header, Item, Segment, Pagination, Loader } from "semantic-ui-react"; import { getCShiftsRequest } from "../../../actions/cShift/saga.actions"; class ClientShifts extends Component { constructor(props) { super(props); this.state = { page: 1, pageSize: 10 // client can't control this, but set here just in case }; } componentWillMount = () => { this.props.dispatch( getCShiftsRequest({ page: this.state.page, page_size: this.state.pageSize }) ); }; handlePaginationChange = (event, { activePage }) => { this.props.dispatch( getCShiftsRequest({ page: activePage, page_size: this.state.pageSize }) ); this.setState({ page: activePage }); }; render() { const { isSendingCShiftRequest, cShiftRequestSuccess, selfUser } = this.props; const { page, pageSize } = this.state; if (selfUser.client) { return ( ); } else { return ; } } } function mapStateToProps(state) { return { ...state.cShift, selfUser: state.user.selfUser }; } const ClientShiftsView = ({ isSendingCShiftRequest, cShiftRequestSuccess, user, page, pageSize, handlePaginationChange }) => { const { count = 0, results = [] } = cShiftRequestSuccess; return (
Shifts
{!!isSendingCShiftRequest && } {!isSendingCShiftRequest && results.length > 0 && ( {results.map(result => ( {JSON.stringify(result, null, 2)} ))} )}
); }; export default connect(mapStateToProps)(ClientShifts);