// @flow import React from 'react'; import { ActivityIndicator, Text, View } from 'react-native'; import { navigateBack } from 'utils/helper'; import Colors from 'styles/colors'; import Button from 'component/button'; import FileList from 'component/fileList'; import PageHeader from 'component/pageHeader'; import SubscribeButton from 'component/subscribeButton'; import UriBar from 'component/uriBar'; import channelPageStyle from 'styles/channelPage'; class ChannelPage extends React.PureComponent { state = { page: 1, showPageButtons: false }; componentDidMount() { const { uri, page, claimsInChannel, fetchClaims, fetchClaimCount } = this.props; if (!claimsInChannel || !claimsInChannel.length) { fetchClaims(uri, page || this.state.page); fetchClaimCount(uri); } } handlePreviousPage = () => { const { uri, fetchClaims } = this.props; if (this.state.page > 1) { this.setState({ page: this.state.page - 1, showPageButtons: false }, () => { fetchClaims(uri, this.state.page); }); } } handleNextPage = () => { const { uri, fetchClaims, totalPages } = this.props; if (this.state.page < totalPages) { this.setState({ page: this.state.page + 1, showPageButtons: false }, () => { fetchClaims(uri, this.state.page); }); } } render() { const { fetching, claimsInChannel, claim, navigation, totalPages, uri, drawerStack, popDrawerStack } = this.props; const { name, permanent_url: permanentUrl } = claim; let contentList; if (fetching) { contentList = ( Fetching content... ); } else { contentList = claimsInChannel && claimsInChannel.length ? ( this.setState({ showPageButtons: true })} /> ) : ( No content found. ); } return ( {name} {contentList} {(totalPages > 1) && this.state.showPageButtons && {(this.state.page > 1) &&