2017-12-21 22:08:54 +01:00
|
|
|
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 {
|
2018-04-02 15:53:29 +02:00
|
|
|
doResetThumbnailStatus,
|
2018-05-25 20:05:30 +02:00
|
|
|
doClearPublish,
|
|
|
|
doUpdatePublishForm,
|
|
|
|
doPublish,
|
|
|
|
doPrepareEdit,
|
|
|
|
} from 'redux/actions/publish';
|
2017-12-21 22:08:54 +01:00
|
|
|
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];
|
2018-06-13 05:28:06 +02:00
|
|
|
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()),
|
2017-06-12 10:01:22 +02:00
|
|
|
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)),
|
2018-06-13 05:28:06 +02:00
|
|
|
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);
|