6d217dbc50
* Exclude default homepage data at compile time The youtuber IDs alone is pretty huge, and is unused in the `CUSTOM_HOMEPAGE=true` configuration. * Remove Desktop items and other cleanup - Moved constants out of the component. - Remove SIMPLE_SITE check. - Remove Desktop-only items * Sidebar: limit subscription and tag section ## Issue Too slow for huge lists ## Change Limit to 10 initially, and load everything on "Show more" * Fix makeSelectThumbnailForUri - Fix memo - Expose function to extract directly from claim if client already have it.
55 lines
2.4 KiB
JavaScript
55 lines
2.4 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import {
|
|
makeSelectTitleForUri,
|
|
selectThumbnailForUri,
|
|
makeSelectMetadataItemForUri,
|
|
makeSelectAmountForUri,
|
|
makeSelectClaimForUri,
|
|
selectUpdateCollectionError,
|
|
selectUpdatingCollection,
|
|
selectCreateCollectionError,
|
|
selectCreatingCollection,
|
|
} from 'redux/selectors/claims';
|
|
import {
|
|
makeSelectCollectionForId,
|
|
makeSelectUrlsForCollectionId,
|
|
makeSelectClaimIdsForCollectionId,
|
|
} from 'redux/selectors/collections';
|
|
import { doCollectionPublish, doCollectionPublishUpdate } from 'redux/actions/claims';
|
|
import { selectBalance } from 'redux/selectors/wallet';
|
|
import * as ACTIONS from 'constants/action_types';
|
|
|
|
import CollectionForm from './view';
|
|
import { selectActiveChannelClaim, selectIncognito } from 'redux/selectors/app';
|
|
import { doSetActiveChannel, doSetIncognito } from 'redux/actions/app';
|
|
|
|
const select = (state, props) => ({
|
|
claim: makeSelectClaimForUri(props.uri)(state),
|
|
title: makeSelectTitleForUri(props.uri)(state),
|
|
thumbnailUrl: selectThumbnailForUri(state, props.uri),
|
|
description: makeSelectMetadataItemForUri(props.uri, 'description')(state),
|
|
tags: makeSelectMetadataItemForUri(props.uri, 'tags')(state),
|
|
locations: makeSelectMetadataItemForUri(props.uri, 'locations')(state),
|
|
languages: makeSelectMetadataItemForUri(props.uri, 'languages')(state),
|
|
amount: makeSelectAmountForUri(props.uri)(state),
|
|
updateError: selectUpdateCollectionError(state),
|
|
updatingCollection: selectUpdatingCollection(state),
|
|
createError: selectCreateCollectionError(state),
|
|
creatingCollection: selectCreatingCollection(state),
|
|
balance: selectBalance(state),
|
|
activeChannelClaim: selectActiveChannelClaim(state),
|
|
incognito: selectIncognito(state),
|
|
collection: makeSelectCollectionForId(props.collectionId)(state),
|
|
collectionUrls: makeSelectUrlsForCollectionId(props.collectionId)(state),
|
|
collectionClaimIds: makeSelectClaimIdsForCollectionId(props.collectionId)(state),
|
|
});
|
|
|
|
const perform = (dispatch) => ({
|
|
publishCollectionUpdate: (params) => dispatch(doCollectionPublishUpdate(params)),
|
|
publishCollection: (params, collectionId) => dispatch(doCollectionPublish(params, collectionId)),
|
|
clearCollectionErrors: () => dispatch({ type: ACTIONS.CLEAR_COLLECTION_ERRORS }),
|
|
setActiveChannel: (claimId) => dispatch(doSetActiveChannel(claimId)),
|
|
setIncognito: (incognito) => dispatch(doSetIncognito(incognito)),
|
|
});
|
|
|
|
export default connect(select, perform)(CollectionForm);
|