2017-05-23 15:45:35 +02:00
|
|
|
|
|
|
|
import React from 'react'
|
|
|
|
import {connect} from 'react-redux'
|
|
|
|
|
2018-10-03 20:01:25 +02:00
|
|
|
import {resolveCommunities} from './utils'
|
|
|
|
|
2017-05-23 15:45:35 +02:00
|
|
|
class NoExportReason extends React.Component {
|
|
|
|
render() {
|
|
|
|
const route = this.props.route;
|
2018-10-03 20:01:25 +02:00
|
|
|
|
2018-10-03 17:17:18 +02:00
|
|
|
if (!this.props.noexportReasons || !route || !route.bgp ||
|
2017-05-23 15:45:35 +02:00
|
|
|
!route.bgp.large_communities) {
|
|
|
|
return null;
|
|
|
|
}
|
2018-10-03 20:01:25 +02:00
|
|
|
|
|
|
|
const reasons = resolveCommunities(
|
|
|
|
this.props.noexportReasons, route.bgp.large_communities,
|
2017-05-23 15:45:35 +02:00
|
|
|
);
|
2018-10-03 20:01:25 +02:00
|
|
|
|
|
|
|
const reasonsView = reasons.map(([community, reason], key) => {
|
|
|
|
const cls = `noexport-reason noexport-reason-${community[2]}`;
|
|
|
|
return (
|
|
|
|
<p key={key} className={cls}>
|
|
|
|
<a href={`http://irrexplorer.nlnog.net/search/${route.network}`}
|
|
|
|
target="_blank" >{reason}</a>
|
|
|
|
</p>
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
return (<div className="reject-reasons">{reasonsView}</div>);
|
2017-05-23 15:45:35 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default connect(
|
|
|
|
state => {
|
|
|
|
return {
|
2018-10-03 17:17:18 +02:00
|
|
|
noexportReasons: state.routeservers.noexportReasons,
|
2017-05-23 15:45:35 +02:00
|
|
|
}
|
2018-08-03 15:57:30 +02:00
|
|
|
}
|
2017-05-23 15:45:35 +02:00
|
|
|
)(NoExportReason);
|
2018-10-03 20:01:25 +02:00
|
|
|
|