2017-10-27 10:51:48 +13:00
|
|
|
|
|
|
|
|
import React from 'react'
|
|
|
|
|
import { Link } from 'react-router'
|
|
|
|
|
|
|
|
|
|
export default class URILink extends React.Component{
|
|
|
|
|
|
|
|
|
|
constructor(props){
|
|
|
|
|
super(props);
|
|
|
|
|
}
|
|
|
|
|
|
2018-01-02 16:06:09 +13:00
|
|
|
handleContextMenu(e){
|
|
|
|
|
if (this.props.onContextMenu){
|
|
|
|
|
this.props.onContextMenu(e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-10-27 10:51:48 +13:00
|
|
|
render(){
|
|
|
|
|
var to = null;
|
|
|
|
|
var uri = encodeURIComponent(this.props.uri);
|
|
|
|
|
|
|
|
|
|
switch (this.props.type){
|
|
|
|
|
|
|
|
|
|
case 'playlist':
|
|
|
|
|
to = global.baseURL+'playlist/'+uri;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'artist':
|
|
|
|
|
to = global.baseURL+'artist/'+uri;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'album':
|
|
|
|
|
to = global.baseURL+'album/'+uri;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'track':
|
|
|
|
|
to = global.baseURL+'track/'+uri;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'user':
|
|
|
|
|
to = global.baseURL+'user/'+uri;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 'recommendations':
|
|
|
|
|
to = global.baseURL+'discover/recommendations/'+uri;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
2017-11-04 14:03:59 +13:00
|
|
|
to = null;
|
2017-10-27 10:51:48 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<Link
|
|
|
|
|
className={this.props.className ? this.props.className : null}
|
2018-01-02 16:06:09 +13:00
|
|
|
to={to}
|
|
|
|
|
onContextMenu={e => this.handleContextMenu(e)}>
|
2017-10-27 10:51:48 +13:00
|
|
|
{this.props.children}
|
|
|
|
|
</Link>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|