2019-12-22 22:23:49 +00:00
|
|
|
const { URL } = require('url');
|
|
|
|
const { Component } = require('inferno');
|
|
|
|
const { cacheComponent } = require('../util/cache');
|
|
|
|
|
|
|
|
class Links extends Component {
|
|
|
|
render() {
|
|
|
|
const { title, links } = this.props;
|
2019-12-24 05:36:39 +00:00
|
|
|
return <div class="card widget">
|
|
|
|
<div class="card-content">
|
|
|
|
<div class="menu">
|
|
|
|
<h3 class="menu-label">{title}</h3>
|
|
|
|
<ul class="menu-list">
|
2019-12-22 22:23:49 +00:00
|
|
|
{Object.keys(links).map(i => {
|
|
|
|
let hostname = links[i];
|
|
|
|
try {
|
|
|
|
hostname = new URL(hostname).hostname;
|
|
|
|
} catch (e) { }
|
|
|
|
return <li>
|
2019-12-24 05:36:39 +00:00
|
|
|
<a class="level is-mobile" href="<%- links[i] %>" target="_blank" rel="noopener">
|
|
|
|
<span class="level-left">
|
|
|
|
<span class="level-item">{i}</span>
|
2019-12-22 22:23:49 +00:00
|
|
|
</span>
|
2019-12-24 05:36:39 +00:00
|
|
|
<span class="level-right">
|
|
|
|
<span class="level-item tag">{hostname}</span>
|
2019-12-22 22:23:49 +00:00
|
|
|
</span>
|
|
|
|
</a>
|
|
|
|
</li>;
|
|
|
|
})}
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = cacheComponent(Links, 'widget.links', props => {
|
2019-12-23 06:49:48 +00:00
|
|
|
const { helper, widget } = props;
|
|
|
|
if (!Object.keys(widget.links).length) {
|
2019-12-22 22:23:49 +00:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
return {
|
2019-12-23 06:49:48 +00:00
|
|
|
title: helper.__('widget.links'),
|
|
|
|
links: widget.links
|
2019-12-22 22:23:49 +00:00
|
|
|
};
|
|
|
|
});
|