Merge pull request #58 from lbryio/non-winning-claims
Add better feedback for non-winning claims on Publish page
This commit is contained in:
commit
ef1cc62c26
2 changed files with 39 additions and 30 deletions
|
@ -296,7 +296,7 @@ lbry.formatCredits = function(amount, precision)
|
||||||
|
|
||||||
lbry.formatName = function(name) {
|
lbry.formatName = function(name) {
|
||||||
// Converts LBRY name to standard format (all lower case, no special characters)
|
// Converts LBRY name to standard format (all lower case, no special characters)
|
||||||
return name.toLowerCase().replace(/[^a-z0-9\-]/, '');
|
return name.toLowerCase().replace(/[^a-z0-9\-]/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
lbry.loadJs = function(src, type, onload)
|
lbry.loadJs = function(src, type, onload)
|
||||||
|
|
|
@ -18,7 +18,7 @@ var PublishPage = React.createClass({
|
||||||
});
|
});
|
||||||
|
|
||||||
var checkFields = this._requiredFields.slice();
|
var checkFields = this._requiredFields.slice();
|
||||||
if (!this.state.nameIsMine) {
|
if (!this.state.myClaimExists) {
|
||||||
checkFields.push('file');
|
checkFields.push('file');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ var PublishPage = React.createClass({
|
||||||
|
|
||||||
if (this.state.nameIsMine) {
|
if (this.state.nameIsMine) {
|
||||||
// Pre-populate with existing metadata
|
// Pre-populate with existing metadata
|
||||||
var metadata = Object.assign({}, this.state.claimMetadata);
|
var metadata = Object.assign({}, this.state.myClaimMetadata);
|
||||||
if (this.refs.file.getValue() !== '') {
|
if (this.refs.file.getValue() !== '') {
|
||||||
delete metadata.sources;
|
delete metadata.sources;
|
||||||
}
|
}
|
||||||
|
@ -111,9 +111,10 @@ var PublishPage = React.createClass({
|
||||||
feeAmount: '',
|
feeAmount: '',
|
||||||
feeCurrency: 'USD',
|
feeCurrency: 'USD',
|
||||||
nameResolved: false,
|
nameResolved: false,
|
||||||
nameIsMine: false,
|
topClaimValue: 0.0,
|
||||||
claimValue: 0.0,
|
myClaimValue: 0.0,
|
||||||
claimMetadata: null,
|
myClaimMetadata: null,
|
||||||
|
myClaimExists: null,
|
||||||
fileInfo: null,
|
fileInfo: null,
|
||||||
copyrightNotice: '',
|
copyrightNotice: '',
|
||||||
otherLicenseDescription: '',
|
otherLicenseDescription: '',
|
||||||
|
@ -159,28 +160,34 @@ var PublishPage = React.createClass({
|
||||||
nameResolved: false,
|
nameResolved: false,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
lbry.getMyClaim(name, (myClaimInfo) => {
|
||||||
lbry.getClaimInfo(name, (claimInfo) => {
|
lbry.getClaimInfo(name, (claimInfo) => {
|
||||||
if (name != this.refs.name.getValue()) {
|
if (name != this.refs.name.getValue()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var topClaimIsMine = (myClaimInfo && myClaimInfo.amount >= claimInfo.amount);
|
||||||
|
|
||||||
var newState = {
|
var newState = {
|
||||||
name: name,
|
name: name,
|
||||||
nameResolved: true,
|
nameResolved: true,
|
||||||
nameIsMine: claimInfo.is_mine,
|
topClaimValue: parseFloat(claimInfo.amount),
|
||||||
claimValue: parseFloat(claimInfo.amount),
|
myClaimExists: !!myClaimInfo,
|
||||||
claimMetadata: claimInfo.value,
|
myClaimValue: parseFloat(myClaimInfo.amount),
|
||||||
|
myClaimMetadata: myClaimInfo.value,
|
||||||
|
topClaimIsMine: topClaimIsMine,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (claimInfo.is_mine) {
|
if (topClaimIsMine) {
|
||||||
newState.bid = claimInfo.amount;
|
newState.bid = myClaimInfo.amount;
|
||||||
} else if (this.state.nameIsMine && !claimInfo.name_is_mine) {
|
} else if (this.state.myClaimMetadata) {
|
||||||
// Just changed away from a name we control, so clear pre-fill
|
// Just changed away from a name we have a claim on, so clear pre-fill
|
||||||
newState.bid = '';
|
newState.bid = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState(newState);
|
this.setState(newState);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -320,8 +327,8 @@ var PublishPage = React.createClass({
|
||||||
{
|
{
|
||||||
(!this.state.name ? '' :
|
(!this.state.name ? '' :
|
||||||
(! this.state.nameResolved ? <em> The name <strong>{this.state.name}</strong> is available.</em>
|
(! this.state.nameResolved ? <em> The name <strong>{this.state.name}</strong> is available.</em>
|
||||||
: (this.state.nameIsMine ? <em> You already control the name <strong>{this.state.name}</strong>. You can use this page to update your claim.</em>
|
: (this.state.myClaimExists ? <em> You already have a claim on the name <strong>{this.state.name}</strong>. You can use this page to update your claim.</em>
|
||||||
: <em> The name {this.state.name} is currently claimed for <strong>{lbry.formatCredits(this.state.claimValue)}</strong> credits.</em>)))
|
: <em> The name <strong>{this.state.name}</strong> is currently claimed for <strong>{lbry.formatCredits(this.state.topClaimValue)}</strong> credits.</em>)))
|
||||||
}
|
}
|
||||||
<div className="help">What LBRY name would you like to claim for this file?</div>
|
<div className="help">What LBRY name would you like to claim for this file?</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -338,17 +345,19 @@ var PublishPage = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
: <div>File ready for publishing!</div>) }
|
: <div>File ready for publishing!</div>) }
|
||||||
</form>
|
</form>
|
||||||
{ this.state.nameIsMine ? <div className="help">If you don't choose a file, the file from your existing claim will be used.</div> : null }
|
{ this.state.myClaimExists ? <div className="help">If you don't choose a file, the file from your existing claim will be used.</div> : null }
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className="card">
|
<section className="card">
|
||||||
<h4>Bid Amount</h4>
|
<h4>Bid Amount</h4>
|
||||||
<div className="form-row">
|
<div className="form-row">
|
||||||
Credits <FormField ref="bid" style={publishNumberStyle} type="text" onChange={this.handleBidChange} value={this.state.bid} placeholder={this.state.nameResolved ? lbry.formatCredits(this.state.claimValue + 10) : 100} />
|
Credits <FormField ref="bid" style={publishNumberStyle} type="text" onChange={this.handleBidChange} value={this.state.bid} placeholder={this.state.nameResolved ? lbry.formatCredits(this.state.topClaimValue + 10) : 100} />
|
||||||
<div className="help">How much would you like to bid for this name?
|
<div className="help">How much would you like to bid for this name?
|
||||||
{ !this.state.nameResolved ? <span> Since this name is not currently resolved, you may bid as low as you want, but higher bids help prevent others from claiming your name.</span>
|
{ !this.state.nameResolved ? <span> Since this name is not currently resolved, you may bid as low as you want, but higher bids help prevent others from claiming your name.</span>
|
||||||
: (this.state.nameIsMine ? <span> Your current bid is <strong>{lbry.formatCredits(this.state.claimValue)}</strong> credits.</span>
|
: (this.state.topClaimIsMine ? <span> You currently control this name with a bid of <strong>{lbry.formatCredits(this.state.myClaimValue)}</strong> credits.</span>
|
||||||
: <span> You must bid over <strong>{lbry.formatCredits(this.state.claimValue)}</strong> credits to claim this name.</span>) }
|
: (this.state.myClaimExists ? <span> You have a non-winning bid on this name for <strong>{lbry.formatCredits(this.state.myClaimValue)}</strong> credits.
|
||||||
|
To control this name, you'll need to increase your bid to at least <strong>{lbry.formatCredits(this.state.myClaimValue)}</strong> credits.</span>
|
||||||
|
: <span> You must bid over <strong>{lbry.formatCredits(this.state.topClaimValue)}</strong> credits to claim this name.</span>)) }
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
Loading…
Reference in a new issue