import React from 'react/index'; import AssetPreview from 'components/AssetPreview/index'; import request from 'utils/request'; class ChannelClaimsDisplay extends React.Component { constructor (props) { super(props); this.state = { error: null, }; this.updateClaimsData = this.updateClaimsData.bind(this); this.showPreviousResultsPage = this.showPreviousResultsPage.bind(this); this.showNextResultsPage = this.showNextResultsPage.bind(this); } componentDidMount () { const name = this.props.name; const longId = this.props.longId; this.updateClaimsData(name, longId, 1); } componentWillReceiveProps (nextProps) { if (nextProps.name !== this.props.name || nextProps.longId !== this.props.longId) { this.updateClaimsData(nextProps.name, nextProps.longId, 1); } } updateClaimsData (name, longId, page) { const url = `/api/channel-claims/${name}/${longId}/${page}`; const that = this; return request(url) .then(({ success, message, data }) => { console.log('api/channel-claims response:', data); if (!success) { return that.setState({error: message}); } that.setState({error: null}); // move this error to redux state that.props.onChannelClaimsDataUpdate(data.claims, data.currentPage, data.totalPages, data.totalResults); }) .catch((error) => { that.setState({error: error.message}); }); } componentWillUnmount () { this.props.onChannelClaimsDataClear(); } showPreviousResultsPage () { const previousPage = parseInt(this.props.currentPage) - 1; this.updateClaimsData(this.props.name, this.props.longId, previousPage); } showNextResultsPage () { const nextPage = parseInt(this.props.currentPage) + 1; this.updateClaimsData(this.props.name, this.props.longId, nextPage); } render () { return (
{this.state.error ? (

{this.state.error}

) : (
{this.props.claims &&
{this.props.claims.map((claim, index) => )}
{(this.props.currentPage > 1) && } {(this.props.currentPage < this.props.totalPages) && }
}
)}
); } }; // PropTypes // name // id export default ChannelClaimsDisplay;