const { Component } = require('inferno'); const { cacheComponent } = require('../util/cache'); class RecentPosts extends Component { render() { const { title, thumbnail, posts } = this.props; return
{posts.map(post => { const categories = []; post.categories.forEach((category, i) => { categories.push({category.name}); if (i < post.categories.length - 1) { categories.push('/'); } }); return ; })}
; } } module.exports = cacheComponent(RecentPosts, 'widget.recentposts', props => { const { site, config, helper } = props; const { get_thumbnail, url_for, __, date_xml, date } = helper; if (!site.posts.length) { return null; } const thumbnail = config.article && config.article.thumbnail; const posts = site.posts.sort('date', -1).limit(5).map(post => ({ url: url_for(post.link || post.path), title: post.title, date: date(post.date), dateXml: date_xml(post.date), thumbnail: thumbnail ? get_thumbnail(post) : null, // TODO: check if categories work categories: post.categories.map(category => ({ name: category.name, url: url_for(category.path) })) })); return { posts, thumbnail, title: __('widget.recents') }; });