fix infinite resolve, add valid uri check
This commit is contained in:
parent
950f3183cf
commit
c823ccd056
4 changed files with 31 additions and 7 deletions
|
@ -86,6 +86,7 @@ class FileTile extends React.Component {
|
||||||
|
|
||||||
const uri = lbryuri.normalize(this.props.uri);
|
const uri = lbryuri.normalize(this.props.uri);
|
||||||
const isClaimed = !!claim;
|
const isClaimed = !!claim;
|
||||||
|
const isClaimable = lbryuri.isClaimable(uri)
|
||||||
const title = isClaimed && metadata && metadata.title ? metadata.title : uri;
|
const title = isClaimed && metadata && metadata.title ? metadata.title : uri;
|
||||||
const obscureNsfw = this.props.obscureNsfw && metadata && metadata.nsfw;
|
const obscureNsfw = this.props.obscureNsfw && metadata && metadata.nsfw;
|
||||||
let onClick = () => navigate('/show', { uri })
|
let onClick = () => navigate('/show', { uri })
|
||||||
|
@ -97,7 +98,10 @@ class FileTile extends React.Component {
|
||||||
description = "Loading..."
|
description = "Loading..."
|
||||||
} else if (showEmpty === FileTile.SHOW_EMPTY_PUBLISH) {
|
} else if (showEmpty === FileTile.SHOW_EMPTY_PUBLISH) {
|
||||||
onClick = () => navigate('/publish')
|
onClick = () => navigate('/publish')
|
||||||
description = <span className="empty">This location is unclaimed - <span className="button-text">put something here</span>!</span>
|
description = <span className="empty">
|
||||||
|
This location is unused. { ' ' }
|
||||||
|
{ isClaimable && <span className="button-text">Put something here!</span> }
|
||||||
|
</span>
|
||||||
} else if (showEmpty === FileTile.SHOW_EMPTY_PENDING) {
|
} else if (showEmpty === FileTile.SHOW_EMPTY_PENDING) {
|
||||||
description = <span className="empty">This file is pending confirmation.</span>
|
description = <span className="empty">This file is pending confirmation.</span>
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,5 +165,25 @@ lbryuri.normalize= function(uri) {
|
||||||
return lbryuri.build({name, path, claimSequence, bidPosition, claimId});
|
return lbryuri.build({name, path, claimSequence, bidPosition, claimId});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lbryuri.isValid = function(uri) {
|
||||||
|
let parts
|
||||||
|
try {
|
||||||
|
parts = lbryuri.parse(lbryuri.normalize(uri))
|
||||||
|
} catch (error) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return parts && parts.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
lbryuri.isClaimable = function(uri) {
|
||||||
|
let parts
|
||||||
|
try {
|
||||||
|
parts = lbryuri.parse(lbryuri.normalize(uri))
|
||||||
|
} catch (error) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return parts && parts.name && !parts.claimId && !parts.bidPosition && !parts.claimSequence && !parts.isChannel && !parts.path;
|
||||||
|
}
|
||||||
|
|
||||||
window.lbryuri = lbryuri;
|
window.lbryuri = lbryuri;
|
||||||
export default lbryuri;
|
export default lbryuri;
|
||||||
|
|
|
@ -8,14 +8,13 @@ import {BusyMessage} from 'component/common.js';
|
||||||
|
|
||||||
class SearchPage extends React.Component{
|
class SearchPage extends React.Component{
|
||||||
render() {
|
render() {
|
||||||
const isValidUri = (query) => true //FIXME
|
|
||||||
const {
|
const {
|
||||||
query,
|
query,
|
||||||
} = this.props
|
} = this.props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="main--single-column">
|
<main className="main--single-column">
|
||||||
{ isValidUri(query) ?
|
{ lbryuri.isValid(query) ?
|
||||||
<section className="section-spaced">
|
<section className="section-spaced">
|
||||||
<h3 className="card-row__header">
|
<h3 className="card-row__header">
|
||||||
Exact URL <ToolTip label="?" body="This is the resolution of a LBRY URL and not controlled by LBRY Inc."
|
Exact URL <ToolTip label="?" body="This is the resolution of a LBRY URL and not controlled by LBRY Inc."
|
||||||
|
|
|
@ -21,7 +21,7 @@ class ShowPage extends React.Component{
|
||||||
uri,
|
uri,
|
||||||
} = props
|
} = props
|
||||||
|
|
||||||
if(!isResolvingUri && !claim && uri) {
|
if(!isResolvingUri && claim === undefined && uri) {
|
||||||
resolveUri(uri)
|
resolveUri(uri)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,15 +35,16 @@ class ShowPage extends React.Component{
|
||||||
|
|
||||||
let innerContent = "";
|
let innerContent = "";
|
||||||
|
|
||||||
if (isResolvingUri) {
|
if (isResolvingUri || claim === null) {
|
||||||
innerContent = <section className="card">
|
innerContent = <section className="card">
|
||||||
<div className="card__inner">
|
<div className="card__inner">
|
||||||
<div className="card__title-identity"><h1>{uri}</h1></div>
|
<div className="card__title-identity"><h1>{uri}</h1></div>
|
||||||
</div>
|
</div>
|
||||||
<div className="card__content">
|
<div className="card__content">
|
||||||
<BusyMessage message="Loading magic decentralized data..." />
|
{ isResolvingUri && <BusyMessage message="Loading magic decentralized data..." /> }
|
||||||
|
{ claim === null && <span className="empty">There's nothing at this location.</span> }
|
||||||
</div>
|
</div>
|
||||||
</section>;
|
</section>
|
||||||
}
|
}
|
||||||
else if (claim && claim.whatever) {
|
else if (claim && claim.whatever) {
|
||||||
innerContent = "channel"
|
innerContent = "channel"
|
||||||
|
|
Loading…
Add table
Reference in a new issue