69de63c436
This reverts commit b3c4ce05fa
.
The suggested 2-list approach broke the search bar because the bar is part of the list, so it gets unmounted while the user is typing. Oops.
48 lines
2.2 KiB
JavaScript
48 lines
2.2 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import { PAGE_SIZE } from 'constants/claim';
|
|
import {
|
|
makeSelectClaimsInChannelForPage,
|
|
makeSelectFetchingChannelClaims,
|
|
selectClaimIsMine,
|
|
makeSelectTotalPagesInChannelSearch,
|
|
selectClaimForUri,
|
|
} from 'redux/selectors/claims';
|
|
import { doResolveUris } from 'redux/actions/claims';
|
|
import * as SETTINGS from 'constants/settings';
|
|
import { makeSelectChannelIsMuted } from 'redux/selectors/blocked';
|
|
import { withRouter } from 'react-router';
|
|
import { selectUserVerifiedEmail } from 'redux/selectors/user';
|
|
import { selectClientSetting, selectShowMatureContent } from 'redux/selectors/settings';
|
|
import { doFetchChannelLiveStatus } from 'redux/actions/livestream';
|
|
import { selectActiveLivestreamForChannel, selectActiveLivestreamInitialized } from 'redux/selectors/livestream';
|
|
import { getChannelIdFromClaim } from 'util/claim';
|
|
import ChannelContent from './view';
|
|
|
|
const select = (state, props) => {
|
|
const { search } = props.location;
|
|
const urlParams = new URLSearchParams(search);
|
|
const page = urlParams.get('page') || 0;
|
|
const claim = props.uri && selectClaimForUri(state, props.uri);
|
|
const channelClaimId = getChannelIdFromClaim(claim);
|
|
|
|
return {
|
|
pageOfClaimsInChannel: makeSelectClaimsInChannelForPage(props.uri, page)(state),
|
|
fetching: makeSelectFetchingChannelClaims(props.uri)(state),
|
|
totalPages: makeSelectTotalPagesInChannelSearch(props.uri, PAGE_SIZE)(state),
|
|
channelIsMine: selectClaimIsMine(state, claim),
|
|
channelIsBlocked: makeSelectChannelIsMuted(props.uri)(state),
|
|
claim,
|
|
isAuthenticated: selectUserVerifiedEmail(state),
|
|
showMature: selectShowMatureContent(state),
|
|
tileLayout: selectClientSetting(state, SETTINGS.TILE_LAYOUT),
|
|
activeLivestreamForChannel: selectActiveLivestreamForChannel(state, channelClaimId),
|
|
activeLivestreamInitialized: selectActiveLivestreamInitialized(state),
|
|
};
|
|
};
|
|
|
|
const perform = (dispatch) => ({
|
|
doResolveUris: (uris, returnCachedUris) => dispatch(doResolveUris(uris, returnCachedUris)),
|
|
doFetchChannelLiveStatus: (channelID) => dispatch(doFetchChannelLiveStatus(channelID)),
|
|
});
|
|
|
|
export default withRouter(connect(select, perform)(ChannelContent));
|