import { connect } from 'react-redux'; import { doCollectionEdit, makeSelectClaimForUri, makeSelectClaimIsMine, makeSelectCollectionForIdHasClaimUrl, makeSelectNameForCollectionId, makeSelectCollectionIsMine, COLLECTIONS_CONSTS, } from 'lbry-redux'; import { makeSelectChannelIsMuted } from 'redux/selectors/blocked'; import { doToggleMuteChannel } from 'redux/actions/blocked'; import { doCommentModBlock, doCommentModUnBlock } from 'redux/actions/comments'; import { makeSelectChannelIsBlocked } from 'redux/selectors/comments'; import { doOpenModal } from 'redux/actions/app'; import { doToast } from 'redux/actions/notifications'; import { makeSelectUserPropForProp } from 'redux/selectors/user'; import ClaimPreview from './view'; import * as USER from 'constants/user'; const select = (state, props) => { const claim = makeSelectClaimForUri(props.uri)(state); const permanentUri = claim && claim.permanent_url; return { claim, claimIsMine: props.channelIsMine ? props.isRepost ? makeSelectClaimIsMine(props.uri)(state) : true : makeSelectClaimIsMine(props.uri)(state), hasClaimInWatchLater: makeSelectCollectionForIdHasClaimUrl(COLLECTIONS_CONSTS.WATCH_LATER_ID, permanentUri)(state), channelIsMuted: makeSelectChannelIsMuted(props.uri)(state), channelIsBlocked: makeSelectChannelIsBlocked(props.uri)(state), claimInCollection: makeSelectCollectionForIdHasClaimUrl(props.collectionId, permanentUri)(state), collectionName: makeSelectNameForCollectionId(props.collectionId)(state), isMyCollection: makeSelectCollectionIsMine(props.collectionId)(state), hasExperimentalUi: makeSelectUserPropForProp(USER.EXPERIMENTAL_UI)(state), }; }; export default connect(select, { doToggleMuteChannel, doCommentModBlock, doCommentModUnBlock, doCollectionEdit, doOpenModal, doToast, })(ClaimPreview);