58 lines
2.1 KiB
JavaScript
58 lines
2.1 KiB
JavaScript
|
import { connect } from 'react-redux';
|
||
|
|
||
|
import { withRouter } from 'react-router-dom';
|
||
|
import CollectionPage from './view';
|
||
|
import {
|
||
|
doFetchItemsInCollection,
|
||
|
makeSelectCollectionForId,
|
||
|
makeSelectUrlsForCollectionId,
|
||
|
makeSelectIsResolvingCollectionForId,
|
||
|
makeSelectTitleForUri,
|
||
|
makeSelectThumbnailForUri,
|
||
|
makeSelectClaimIsMine,
|
||
|
makeSelectClaimIsPending,
|
||
|
makeSelectClaimForClaimId,
|
||
|
makeSelectCollectionIsMine,
|
||
|
doLocalCollectionDelete,
|
||
|
doCollectionEdit,
|
||
|
makeSelectChannelForClaimUri,
|
||
|
makeSelectCountForCollectionId,
|
||
|
makeSelectEditedCollectionForId,
|
||
|
} from 'lbry-redux';
|
||
|
import { selectUser } from 'redux/selectors/user';
|
||
|
|
||
|
const select = (state, props) => {
|
||
|
const { match } = props;
|
||
|
const { params } = match;
|
||
|
const { collectionId } = params;
|
||
|
|
||
|
const claim = collectionId && makeSelectClaimForClaimId(collectionId)(state);
|
||
|
const uri = (claim && (claim.canonical_url || claim.permanent_url)) || null;
|
||
|
|
||
|
return {
|
||
|
collectionId,
|
||
|
claim,
|
||
|
collection: makeSelectCollectionForId(collectionId)(state),
|
||
|
collectionUrls: makeSelectUrlsForCollectionId(collectionId)(state),
|
||
|
collectionCount: makeSelectCountForCollectionId(collectionId)(state),
|
||
|
isResolvingCollection: makeSelectIsResolvingCollectionForId(collectionId)(state),
|
||
|
title: makeSelectTitleForUri(uri)(state),
|
||
|
thumbnail: makeSelectThumbnailForUri(uri)(state),
|
||
|
isMyClaim: makeSelectClaimIsMine(uri)(state), // or collection is mine?
|
||
|
isMyCollection: makeSelectCollectionIsMine(collectionId)(state),
|
||
|
claimIsPending: makeSelectClaimIsPending(uri)(state),
|
||
|
collectionHasEdits: Boolean(makeSelectEditedCollectionForId(collectionId)(state)),
|
||
|
uri,
|
||
|
user: selectUser(state),
|
||
|
channel: uri && makeSelectChannelForClaimUri(uri)(state),
|
||
|
};
|
||
|
};
|
||
|
|
||
|
const perform = (dispatch) => ({
|
||
|
fetchCollectionItems: (claimId, cb) => dispatch(doFetchItemsInCollection({ collectionId: claimId }, cb)), // if this collection is not resolved, resolve it
|
||
|
deleteCollection: (id) => dispatch(doLocalCollectionDelete(id)),
|
||
|
editCollection: (id, params) => dispatch(doCollectionEdit(id, params)),
|
||
|
});
|
||
|
|
||
|
export default withRouter(connect(select, perform)(CollectionPage));
|