lbry-desktop/src/ui/modal/modalRevokeClaim/view.jsx

82 lines
2.3 KiB
React
Raw Normal View History

2018-09-26 19:48:07 +02:00
// @flow
import React from 'react';
import { Modal } from 'modal/modal';
import * as txnTypes from 'constants/transaction_types';
2017-10-27 21:42:54 +02:00
2018-09-26 19:48:07 +02:00
type Props = {
closeModal: () => void,
abandonClaim: (string, number) => void,
txid: string,
nout: number,
transactionItems: Array<Transaction>,
2018-09-26 19:48:07 +02:00
};
2017-10-27 21:42:54 +02:00
2018-09-26 19:48:07 +02:00
class ModalRevokeClaim extends React.PureComponent<Props> {
constructor() {
super();
2017-10-30 17:25:56 +01:00
2018-09-26 19:48:07 +02:00
(this: any).revokeClaim = this.revokeClaim.bind(this);
2017-11-01 21:23:30 +01:00
}
getButtonLabel(type: string) {
2018-09-26 19:48:07 +02:00
if (type === txnTypes.TIP) {
return 'Confirm Tip Unlock';
2017-11-01 21:23:30 +01:00
}
return 'Confirm Claim Revoke';
2017-11-01 21:23:30 +01:00
}
getMsgBody(type: string) {
2018-09-26 19:48:07 +02:00
if (type === txnTypes.TIP) {
2017-11-01 21:23:30 +01:00
return (
2018-09-26 19:48:07 +02:00
<React.Fragment>
<p>{__('Are you sure you want to unlock these credits?')}</p>
2017-11-01 21:23:30 +01:00
<p>
{__(
2018-09-26 19:48:07 +02:00
'These credits are permanently yours and can be unlocked at any time. Unlocking them allows you to spend them, but can hurt the performance of your content in lookups and search results. It is recommended you leave tips locked until you need or want to spend them.'
2017-11-01 21:23:30 +01:00
)}
</p>
2018-09-26 19:48:07 +02:00
</React.Fragment>
2017-11-01 21:23:30 +01:00
);
}
return (
2018-09-26 19:48:07 +02:00
<React.Fragment>
<p>{__('Are you sure want to revoke this claim?')}</p>
<p>
{__(
2018-09-26 19:48:07 +02:00
'This will prevent others from resolving and accessing the content you published. It will return the LBC to your spendable balance, less a small transaction fee.'
)}
</p>
2018-09-26 19:48:07 +02:00
</React.Fragment>
);
2017-10-27 21:42:54 +02:00
}
2018-09-26 19:48:07 +02:00
revokeClaim() {
const { txid, nout } = this.props;
this.props.closeModal();
this.props.abandonClaim(txid, nout);
}
2017-10-27 21:42:54 +02:00
render() {
2017-11-01 21:23:30 +01:00
const { transactionItems, txid, nout, closeModal } = this.props;
const { type } =
transactionItems.find(claim => claim.txid === txid && claim.nout === nout) || {};
2017-10-27 21:42:54 +02:00
return (
<Modal
isOpen
2018-09-26 19:48:07 +02:00
title={type === txnTypes.TIP ? __('Confirm Tip Unlock') : __('Confirm Claim Revoke')}
contentLabel={__('Confirm Claim Revoke')}
2017-10-27 21:42:54 +02:00
type="confirm"
2017-11-01 21:23:30 +01:00
confirmButtonLabel={this.getButtonLabel(type)}
2018-09-26 19:48:07 +02:00
onConfirmed={this.revokeClaim}
2017-10-27 21:42:54 +02:00
onAborted={closeModal}
>
2018-09-26 19:48:07 +02:00
<section className="card__content">{this.getMsgBody(type)}</section>
2017-10-27 21:42:54 +02:00
</Modal>
);
}
}
export default ModalRevokeClaim;