import React from 'react';
import ShowLite from 'components/ShowLite';
import ShowDetails from 'components/ShowDetails';
import ShowChannel from 'components/ShowChannel';
import lbryUri from 'utils/lbryUri';
class ShowPage extends React.Component {
constructor (props) {
super(props);
this.state = {
isChannel : null,
channelName : null,
channelClaimId: null,
claimId : null,
claimName : null,
isServeRequest: null,
};
}
componentDidMount () {
const identifier = this.props.match.params.identifier;
const claim = this.props.match.params.claim;
// handle case of identifier and claim
if (identifier) {
let isChannel, channelName, channelClaimId, claimId, claimName, isServeRequest;
try {
({ isChannel, channelName, channelClaimId, claimId } = lbryUri.parseIdentifier(identifier));
({ claimName, isServeRequest } = lbryUri.parseName(claim));
} catch (error) {
return console.log('error:', error);
}
// set state
return this.setState({
isChannel,
channelName,
channelClaimId,
claimId,
claimName,
isServeRequest,
});
}
// handle case of just claim (asset or channel)
let isChannel, channelName, channelClaimId;
try {
({ isChannel, channelName, channelClaimId } = lbryUri.parseIdentifier(claim));
} catch (error) {
console.log('error:', error);
}
if (isChannel) {
return this.setState({
isChannel,
channelName,
channelClaimId,
});
}
let claimName, isServeRequest;
try {
({claimName, isServeRequest} = lbryUri.parseName(claim));
} catch (error) {
console.log('error:', error);
}
this.setState({
claimName,
isServeRequest,
});
}
render () {
const identifier = this.props.match.params.identifier;
console.log('rendering component');
if (!identifier && this.state.isChannel) {
return (
);
}
if (this.state.isServeRequest) {
return (
);
}
return (
);
}
};
export default ShowPage;