// @flow import * as React from 'react'; import CardMedia from 'component/cardMedia'; import TruncatedText from 'component/common/truncated-text'; import classnames from 'classnames'; import SubscribeButton from 'component/subscribeButton'; import { withRouter } from 'react-router-dom'; import { formatLbryUriForWeb } from 'util/uri'; type Props = { uri: string, isResolvingUri: boolean, totalItems: number, size: string, claim: ?ChannelClaim, resolveUri: string => void, history: { push: string => void }, }; class ChannelTile extends React.PureComponent { static defaultProps = { size: 'regular', }; componentDidMount() { const { uri, resolveUri } = this.props; resolveUri(uri); } componentWillReceiveProps(nextProps: Props) { const { uri, resolveUri } = this.props; if (nextProps.uri !== uri) { resolveUri(uri); } } render() { const { claim, isResolvingUri, totalItems, uri, size, history } = this.props; let channelName; let subscriptionUri; if (claim) { channelName = claim.name; subscriptionUri = claim.permanent_url; } const onClick = () => history.push(formatLbryUriForWeb(uri)); return (
{isResolvingUri &&
{__('Loading...')}
} {!isResolvingUri && (
{totalItems > 0 && ( {totalItems} {totalItems === 1 ? 'publish' : 'publishes'} )} {!isResolvingUri && !totalItems && This is an empty channel.}
)} {subscriptionUri && (
)}
); } } export default withRouter(ChannelTile);