5204bb366e
As long as the input parameters are the same, the selector will return the cached value so that we don't construct the list twice, which involves blocklist filtering.
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import { MAX_LIVESTREAM_COMMENTS } from 'constants/livestream';
|
|
import { doResolveUris } from 'redux/actions/claims';
|
|
import { selectClaimForUri, selectMyClaimIdsRaw } from 'redux/selectors/claims';
|
|
import { doCommentSocketConnect, doCommentSocketDisconnect } from 'redux/actions/websocket';
|
|
import { doCommentList, doSuperChatList } from 'redux/actions/comments';
|
|
import {
|
|
selectTopLevelCommentsForUri,
|
|
selectIsFetchingComments,
|
|
selectSuperChatsForUri,
|
|
selectSuperChatTotalAmountForUri,
|
|
selectPinnedCommentsForUri,
|
|
} from 'redux/selectors/comments';
|
|
|
|
import LivestreamComments from './view';
|
|
|
|
const select = (state, props) => ({
|
|
claim: selectClaimForUri(state, props.uri),
|
|
comments: selectTopLevelCommentsForUri(state, props.uri, MAX_LIVESTREAM_COMMENTS),
|
|
pinnedComments: selectPinnedCommentsForUri(state, props.uri),
|
|
fetchingComments: selectIsFetchingComments(state),
|
|
superChats: selectSuperChatsForUri(state, props.uri),
|
|
superChatsTotalAmount: selectSuperChatTotalAmountForUri(state, props.uri),
|
|
myChannelIds: selectMyClaimIdsRaw(state),
|
|
});
|
|
|
|
export default connect(select, {
|
|
doCommentSocketConnect,
|
|
doCommentSocketDisconnect,
|
|
doCommentList,
|
|
doSuperChatList,
|
|
doResolveUris,
|
|
})(LivestreamComments);
|