6e34282cdc
As of this commit, only the Channel Page is fetching the data through the new API, which has the viewer count correctly populated. For both "0" and "undefined", continue to show as "LIVE".
45 lines
1.9 KiB
JavaScript
45 lines
1.9 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import {
|
|
makeSelectClaimForUri,
|
|
selectIsUriResolving,
|
|
selectTitleForUri,
|
|
selectDateForUri,
|
|
} from 'redux/selectors/claims';
|
|
import { doFileGet } from 'redux/actions/file';
|
|
import { doResolveUri } from 'redux/actions/claims';
|
|
import { selectViewCountForUri, selectBanStateForUri } from 'lbryinc';
|
|
import { selectIsActiveLivestreamForUri, selectViewersForId } from 'redux/selectors/livestream';
|
|
import { selectShowMatureContent } from 'redux/selectors/settings';
|
|
import { isClaimNsfw, isStreamPlaceholderClaim, getThumbnailFromClaim } from 'util/claim';
|
|
import ClaimPreviewTile from './view';
|
|
import formatMediaDuration from 'util/formatMediaDuration';
|
|
|
|
const select = (state, props) => {
|
|
const claim = props.uri && makeSelectClaimForUri(props.uri)(state);
|
|
const media = claim && claim.value && (claim.value.video || claim.value.audio);
|
|
const mediaDuration = media && media.duration && formatMediaDuration(media.duration, { screenReader: true });
|
|
const isLivestream = isStreamPlaceholderClaim(claim);
|
|
|
|
return {
|
|
claim,
|
|
mediaDuration,
|
|
date: props.uri && selectDateForUri(state, props.uri),
|
|
isResolvingUri: props.uri && selectIsUriResolving(state, props.uri),
|
|
thumbnail: getThumbnailFromClaim(claim),
|
|
title: props.uri && selectTitleForUri(state, props.uri),
|
|
banState: selectBanStateForUri(state, props.uri),
|
|
showMature: selectShowMatureContent(state),
|
|
isMature: claim ? isClaimNsfw(claim) : false,
|
|
isLivestream,
|
|
isLivestreamActive: isLivestream && selectIsActiveLivestreamForUri(state, props.uri),
|
|
livestreamViewerCount: isLivestream && claim ? selectViewersForId(state, claim.claim_id) : undefined,
|
|
viewCount: selectViewCountForUri(state, props.uri),
|
|
};
|
|
};
|
|
|
|
const perform = (dispatch) => ({
|
|
resolveUri: (uri) => dispatch(doResolveUri(uri)),
|
|
getFile: (uri) => dispatch(doFileGet(uri, false)),
|
|
});
|
|
|
|
export default connect(select, perform)(ClaimPreviewTile);
|