Livestream page prop optimization

- Remove unused prop.
- Use primitives whenever possible, since object references could change.
This commit is contained in:
infinite-persistence 2021-12-09 17:23:23 +08:00
parent a9be97108c
commit d8dd860e04
No known key found for this signature in database
GPG key ID: B9C3252EDC3D0AA0
2 changed files with 6 additions and 9 deletions

View file

@ -1,22 +1,19 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { makeSelectTagInClaimOrChannelForUri, makeSelectClaimForUri } from 'redux/selectors/claims'; import { makeSelectTagInClaimOrChannelForUri, selectClaimForUri } from 'redux/selectors/claims';
import { doResolveUri } from 'redux/actions/claims';
import { doSetPlayingUri } from 'redux/actions/content'; import { doSetPlayingUri } from 'redux/actions/content';
import { doUserSetReferrer } from 'redux/actions/user'; import { doUserSetReferrer } from 'redux/actions/user';
import { selectUserVerifiedEmail } from 'redux/selectors/user'; import { selectUserVerifiedEmail } from 'redux/selectors/user';
import { selectHasUnclaimedRefereeReward } from 'redux/selectors/rewards';
import { DISABLE_COMMENTS_TAG } from 'constants/tags'; import { DISABLE_COMMENTS_TAG } from 'constants/tags';
import { getChannelIdFromClaim } from 'util/claim';
import LivestreamPage from './view'; import LivestreamPage from './view';
const select = (state, props) => ({ const select = (state, props) => ({
hasUnclaimedRefereeReward: selectHasUnclaimedRefereeReward(state),
isAuthenticated: selectUserVerifiedEmail(state), isAuthenticated: selectUserVerifiedEmail(state),
channelClaim: makeSelectClaimForUri(props.uri)(state), channelClaimId: getChannelIdFromClaim(selectClaimForUri(state, props.uri)),
chatDisabled: makeSelectTagInClaimOrChannelForUri(props.uri, DISABLE_COMMENTS_TAG)(state), chatDisabled: makeSelectTagInClaimOrChannelForUri(props.uri, DISABLE_COMMENTS_TAG)(state),
}); });
export default connect(select, { export default connect(select, {
doSetPlayingUri, doSetPlayingUri,
doResolveUri,
doUserSetReferrer, doUserSetReferrer,
})(LivestreamPage); })(LivestreamPage);

View file

@ -14,14 +14,14 @@ type Props = {
doSetPlayingUri: ({ uri: ?string }) => void, doSetPlayingUri: ({ uri: ?string }) => void,
isAuthenticated: boolean, isAuthenticated: boolean,
doUserSetReferrer: (string) => void, doUserSetReferrer: (string) => void,
channelClaim: ChannelClaim, channelClaimId: ?string,
chatDisabled: boolean, chatDisabled: boolean,
}; };
export default function LivestreamPage(props: Props) { export default function LivestreamPage(props: Props) {
const { uri, claim, doSetPlayingUri, isAuthenticated, doUserSetReferrer, channelClaim, chatDisabled } = props; const { uri, claim, doSetPlayingUri, isAuthenticated, doUserSetReferrer, channelClaimId, chatDisabled } = props;
const [isLive, setIsLive] = React.useState('pending'); const [isLive, setIsLive] = React.useState('pending');
const livestreamChannelId = channelClaim && channelClaim.signing_channel && channelClaim.signing_channel.claim_id; const livestreamChannelId = channelClaimId;
React.useEffect(() => { React.useEffect(() => {
// TODO: This should not be needed one we unify the livestream player (?) // TODO: This should not be needed one we unify the livestream player (?)