2019-06-28 19:00:29 +02:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import {
|
|
|
|
makeSelectTitleForUri,
|
|
|
|
makeSelectThumbnailForUri,
|
|
|
|
makeSelectCoverForUri,
|
|
|
|
makeSelectMetadataItemForUri,
|
|
|
|
doUpdateChannel,
|
2020-06-29 21:54:07 +02:00
|
|
|
doCreateChannel,
|
2019-06-28 19:00:29 +02:00
|
|
|
makeSelectAmountForUri,
|
2019-08-15 13:36:03 +02:00
|
|
|
makeSelectClaimForUri,
|
2020-06-21 18:51:06 +02:00
|
|
|
selectUpdateChannelError,
|
2020-06-22 17:19:55 +02:00
|
|
|
selectUpdatingChannel,
|
2020-06-29 21:54:07 +02:00
|
|
|
selectCreateChannelError,
|
|
|
|
selectCreatingChannel,
|
|
|
|
selectBalance,
|
2020-07-03 00:14:40 +02:00
|
|
|
doClearChannelErrors,
|
2019-06-28 19:00:29 +02:00
|
|
|
} from 'lbry-redux';
|
2020-06-29 21:54:07 +02:00
|
|
|
import { doOpenModal } from 'redux/actions/app';
|
2021-03-02 22:22:25 +01:00
|
|
|
import { doUpdateBlockListForPublishedChannel } from 'redux/actions/comments';
|
2019-06-28 19:00:29 +02:00
|
|
|
import ChannelPage from './view';
|
|
|
|
|
|
|
|
const select = (state, props) => ({
|
2020-06-29 21:54:07 +02:00
|
|
|
claim: makeSelectClaimForUri(props.uri)(state),
|
2019-06-28 19:00:29 +02:00
|
|
|
title: makeSelectTitleForUri(props.uri)(state),
|
2020-07-02 19:39:29 +02:00
|
|
|
thumbnailUrl: makeSelectThumbnailForUri(props.uri)(state),
|
|
|
|
coverUrl: makeSelectCoverForUri(props.uri)(state),
|
2019-06-28 19:00:29 +02:00
|
|
|
description: makeSelectMetadataItemForUri(props.uri, 'description')(state),
|
|
|
|
website: makeSelectMetadataItemForUri(props.uri, 'website_url')(state),
|
|
|
|
email: makeSelectMetadataItemForUri(props.uri, 'email')(state),
|
|
|
|
tags: makeSelectMetadataItemForUri(props.uri, 'tags')(state),
|
|
|
|
locations: makeSelectMetadataItemForUri(props.uri, 'locations')(state),
|
|
|
|
languages: makeSelectMetadataItemForUri(props.uri, 'languages')(state),
|
|
|
|
amount: makeSelectAmountForUri(props.uri)(state),
|
2020-06-21 18:51:06 +02:00
|
|
|
updateError: selectUpdateChannelError(state),
|
2020-06-22 17:19:55 +02:00
|
|
|
updatingChannel: selectUpdatingChannel(state),
|
2020-06-29 21:54:07 +02:00
|
|
|
createError: selectCreateChannelError(state),
|
|
|
|
creatingChannel: selectCreatingChannel(state),
|
|
|
|
balance: selectBalance(state),
|
2019-06-28 19:00:29 +02:00
|
|
|
});
|
|
|
|
|
2021-03-02 22:22:25 +01:00
|
|
|
const perform = (dispatch) => ({
|
2020-06-29 21:54:07 +02:00
|
|
|
openModal: (modal, props) => dispatch(doOpenModal(modal, props)),
|
2021-03-02 22:22:25 +01:00
|
|
|
updateChannel: (params) => dispatch(doUpdateChannel(params)),
|
|
|
|
createChannel: (params) => {
|
2020-06-29 21:54:07 +02:00
|
|
|
const { name, amount, ...optionalParams } = params;
|
2021-03-02 22:22:25 +01:00
|
|
|
return dispatch(
|
|
|
|
doCreateChannel('@' + name, amount, optionalParams, (channelClaim) => {
|
|
|
|
dispatch(doUpdateBlockListForPublishedChannel(channelClaim));
|
|
|
|
})
|
|
|
|
);
|
2020-06-29 21:54:07 +02:00
|
|
|
},
|
2020-07-03 00:14:40 +02:00
|
|
|
clearChannelErrors: () => dispatch(doClearChannelErrors()),
|
2019-06-28 19:00:29 +02:00
|
|
|
});
|
|
|
|
|
2020-03-13 23:15:37 +01:00
|
|
|
export default connect(select, perform)(ChannelPage);
|