import React from 'react'; import Icon from 'component/icon'; import Link from 'component/link'; import lbryuri from 'lbryuri'; import classnames from 'classnames'; class UriIndicator extends React.PureComponent { componentWillMount() { this.resolve(this.props); } componentWillReceiveProps(nextProps) { this.resolve(nextProps); } resolve(props) { const { isResolvingUri, resolveUri, claim, uri } = props; if (!isResolvingUri && claim === undefined && uri) { resolveUri(uri); } } render() { const { claim, link, uri, isResolvingUri, smallCard, span } = this.props; if (isResolvingUri && !claim) { return Validating...; } if (!claim) { return Unused; } const { channel_name: channelName, has_signature: hasSignature, signature_is_valid: signatureIsValid, value, } = claim; const channelClaimId = value && value.publisherSignature && value.publisherSignature.certificateId; if (!hasSignature || !channelName) { return Anonymous; } let icon, channelLink, modifier; if (signatureIsValid) { modifier = 'valid'; channelLink = link ? lbryuri.build({ channelName, claimId: channelClaimId }, false) : false; } else { icon = 'icon-times-circle'; modifier = 'invalid'; } const inner = ( {channelName} {' '} {!signatureIsValid ? ( ) : ( '' )} ); if (!channelLink) { return inner; } return ( {inner} ); } } export default UriIndicator;