lbry-desktop/src/renderer/page/publish/index.js

70 lines
2.2 KiB
JavaScript
Raw Normal View History

import { connect } from 'react-redux';
2018-06-12 07:11:17 +02:00
import { doResolveUri, selectClaimsByUri, selectResolvingUris, selectBalance } from 'lbry-redux';
2018-03-26 23:32:43 +02:00
import { doNavigate } from 'redux/actions/navigation';
2018-06-12 07:11:17 +02:00
import {
selectPublishFormValues,
selectIsStillEditing,
selectMyClaimForUri,
} from 'redux/selectors/publish';
2018-05-25 20:05:30 +02:00
import {
doResetThumbnailStatus,
2018-05-25 20:05:30 +02:00
doClearPublish,
doUpdatePublishForm,
doPublish,
doPrepareEdit,
} from 'redux/actions/publish';
import PublishPage from './view';
2017-05-02 10:21:00 +02:00
2018-06-12 07:11:17 +02:00
const select = state => {
const isStillEditing = selectIsStillEditing(state);
const myClaimForUri = selectMyClaimForUri(state);
2018-03-26 23:32:43 +02:00
const publishState = selectPublishFormValues(state);
2018-06-12 07:11:17 +02:00
const { uri } = publishState;
2018-03-26 23:32:43 +02:00
const resolvingUris = selectResolvingUris(state);
let isResolvingUri = false;
if (uri) {
isResolvingUri = resolvingUris.includes(uri);
}
2018-06-12 07:11:17 +02:00
let claimForUri;
2018-03-26 23:32:43 +02:00
let winningBidForClaimUri;
2018-06-12 07:11:17 +02:00
if (!myClaimForUri) {
// if the uri isn't from a users claim, find the winning bid needed for the vanity url
// in the future we may want to display this on users claims
// ex: "you own this, for 5 more lbc you will win this claim"
const claimsByUri = selectClaimsByUri(state);
claimForUri = claimsByUri[uri];
winningBidForClaimUri = claimForUri ? claimForUri.effective_amount : null;
2018-03-26 23:32:43 +02:00
}
return {
...publishState,
isResolvingUri,
2018-06-12 07:11:17 +02:00
// The winning claim for a short lbry uri
2018-03-26 23:32:43 +02:00
claimForUri,
winningBidForClaimUri,
2018-06-12 07:11:17 +02:00
// My previously published claims under this short lbry uri
2018-03-26 23:32:43 +02:00
myClaimForUri,
2018-06-12 07:11:17 +02:00
// If I clicked the "edit" button, have I changed the uri?
// Need this to make it easier to find the source on previously published content
isStillEditing,
2018-03-26 23:32:43 +02:00
balance: selectBalance(state),
};
};
2017-05-02 10:21:00 +02:00
2017-06-06 06:21:55 +02:00
const perform = dispatch => ({
2018-03-26 23:32:43 +02:00
updatePublishForm: value => dispatch(doUpdatePublishForm(value)),
clearPublish: () => dispatch(doClearPublish()),
resolveUri: uri => dispatch(doResolveUri(uri)),
2017-06-17 19:59:18 +02:00
publish: params => dispatch(doPublish(params)),
2018-03-26 23:32:43 +02:00
navigate: path => dispatch(doNavigate(path)),
prepareEdit: (claim, uri) => dispatch(doPrepareEdit(claim, uri)),
2018-04-02 15:55:36 +02:00
resetThumbnailStatus: () => dispatch(doResetThumbnailStatus()),
2017-06-06 06:21:55 +02:00
});
2017-05-02 10:21:00 +02:00
2018-06-12 07:11:17 +02:00
export default connect(
select,
perform
)(PublishPage);